为 Apache Superset 提供 Unix Socket 连接信息

为 Apache Superset 提供 Unix Socket 连接信息

我有一个在 Google Cloud Run 中运行的 Apache Superset docker 映像。我已将其配置为使用我们的 Cloud SQL 主机作为其元数据数据库。由于您将 Cloud Run 连接到 Cloud SQL 的方式,这需要使用 SQL Alchemy 中的 unix 套接字样式连接字符串来进行连接(按照说明这里.). Postgres 是正在使用的数据库(尽管我怀疑这并不重要)。

我对自己很满意(因为我对 Docker/Cloud Run 的了解很少),而且它运行良好 - 但后来我去添加一些数据源。当然,DB 连接信息的配置对话框只允许您输入主机和 IP:

超集数据库配置

走到这一步却被 UI 限制所阻碍,这真是令人失望。我想要连接的主机与它用于元数据数据库的主机是同一个主机 - 所以显然它可以连接到它。...我只是没有办法向它表达如何连接到它。

我可以做些什么来为数据源(而不是元数据,它已经起作用了)的目标数据库配置带有 unix 套接字连接字符串的 Superset?

我看到它甚至允许我提供额外的参数,即指定 unix 套接字的地方 - 但由于主机 IP 和端口是必填字段并且它对它们进行测试,所以它不会接受它。

我想避免 VPC 的额外成本(而且我不知道如何设置,因为我不是管理员,而且 IDE 之外发生的任何事情都会让我患上创伤后应激障碍)。

如果我无法解决这个问题,我将不得不将其部署到我们的 K8s 集群,我们正在尝试用无服务器选项(Cloud Run、GAE 等)替换它。

答案1

该问题与 Apache Superset UI 有关,我建议您按照GitHub 问题来解决这个问题。

目前,按如下方式配置您的无服务器环境将有助于解决该问题:

  1. 配置Cloud SQL 实例的专用 IP
  2. 设置VPC 无服务器访问连接器
  3. 配置云运行使用连接器
  4. 最后连接使用私有 IP 和端口

所提供的步骤在文档中有很好的解释,并且易于执行。

相关内容