Superset 连接到私有数据库

Posted

技术标签:

【中文标题】Superset 连接到私有数据库【英文标题】:Superset Connect to a private database 【发布时间】:2020-12-03 21:00:24 【问题描述】:

我有一个在私有 VPC 中运行的数据库。该数据库不可公开访问。超集是否支持通过 SSH 隧道连接到数据库?如果有的话,有任何文档链接吗?

【问题讨论】:

【参考方案1】:

我在文档中找不到它,但是使用 SSH 隧道,您基本上需要将 DB 主机更改为 127.0.0.1不是 localhost,因为这是为连接保留的关键字使用 mysql 套接字),其他一切都应该相同。

例如,我使用在host.example.com 上运行的 MySQL 数据库进行了测试。我首先创建了一个隧道,将我的本地端口 3336 重定向到 MySQL 的端口 3306(我这样做是因为我已经在 3306 上本地运行了 MySQL):

ssh -N -L 3336:127.0.0.1:3306 host.example.com

然后我可以使用这个 SQLAlchemy URI 将它添加到 Superset:

mysql://username:password@127.0.0.1:3336/dbname

【讨论】:

-N 标志是干什么用的?运行$ssh时我没有在使用列表中得到它 在 Mac OS 上:“-N 不执行远程命令。这对于仅转发端口很有用。”【参考方案2】:

这对我有用:

ssh -i /path/key-pair_instance1.pem username_of_instance1@i-0123456789abcdefa -L 9090:ec2-198-51-100-2.compute-1.amazonaws.com:3306

这里是source,还有进一步的解释。

【讨论】:

以上是关于Superset 连接到私有数据库的主要内容,如果未能解决你的问题,请参考以下文章

Superset 是不是支持后台异步数据源刷新?

有没有办法为Superset提供apache Solr后端?

如何连接到 Redshift 中的私有集群?

在使用私有 IP 连接到云 sql 的云构建上运行数据库迁移

如何使用 mySQL 工作台连接到 AWS 私有子网 VPC 中的 RDS

从具有私有和公共 IP 的虚拟机连接到私有 IP 上的 Google Cloud SQL 实例失败