本页面介绍了如何在 Cloud Data Fusion 实例中读取 PostgreSQL 数据库中的数据。
准备工作
- 创建 Cloud Data Fusion 实例。
- 启用 PostgreSQL 数据库以接受来自 Cloud Data Fusion 的连接。为了安全地执行此操作,我们建议您使用专用 Cloud Data Fusion 实例。
所需角色
如需获得连接到 PostgreSQL 数据库所需的权限,请让您的管理员为您授予以下 IAM 角色:
- 项目中包含集群的 Dataproc 服务帐号的 Dataproc Worker (
roles/dataproc.worker) - 项目中包含集群的 Dataproc 服务帐号的
Cloud Data Fusion Runner (
roles/datafusion.runner) -
如需在不使用 Cloud SQL Auth 代理的情况下使用 Cloud SQL,请在包含 Cloud SQL 实例的项目中授予
Cloud SQL Client (
roles/cloudsql.client)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
在 Cloud Data Fusion 中打开实例
在 Google Cloud 控制台中,前往 Cloud Data Fusion 页面。
如需在 Cloud Data Fusion Studio 中打开实例,请点击实例,然后点击查看实例。
将 PostgreSQL 密码存储为安全密钥
输入 PostgreSQL 密码作为安全密钥,以在 Cloud Data Fusion 实例中加密。如需详细了解密钥,请参阅 Cloud KMS。
在 Cloud Data Fusion 界面中,点击系统管理员 > 配置。
点击进行 HTTP 调用 。
在下拉菜单中,选择 PUT。
在路径字段中,输入
namespaces/default/securekeys/pg_password。在正文 字段中,输入
{"data":"POSTGRESQL_PASSWORD"}。 将POSTGRESQL_PASSWORD替换为您的 PostgreSQL 密码。点击发送 。
响应 字段会通知您任何错误。
连接到 Cloud SQL for PostgreSQL
在 Cloud Data Fusion 界面中,点击菜单 menu 并转到 Wrangler 页面。
点击添加连接 。
选择数据库 作为要连接的来源类型。
在 Google Cloud SQL for PostgreSQL 下,点击 上传。
上传包含 PostgreSQL 驱动程序的 JAR 文件。您的 JAR 文件必须采用
NAME-VERSION.jar格式。如果 JAR 文件未遵循此格式,请在上传前重命名该文件。点击下一步 。
在相应字段中输入驱动程序的名称、类名称和版本。
点击完成 。
在打开的添加连接 窗口中,点击 Google Cloud SQL for PostgreSQL 。您的 JAR 名称应该显示在 Google Cloud SQL for PostgreSQL 下。
填写必填的连接字段。在密码字段中,选择您之前存储的安全密钥。 这可确保使用 Cloud KMS 检索您的密码。
在连接字符串字段中,输入以下连接字符串:
jdbc:postgresql://google/DATABASE_NAME?cloudSqlInstance=INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
替换以下内容:
DATABASE_NAME:实例详情页面的数据库标签页中列出的 Cloud SQL 数据库名称。INSTANCE_CONNECTION_NAME:实例详情页面的概览标签页中显示的 Cloud SQL 实例连接名称。
例如:
jdbc:postgresql://google/postgres?cloudSqlInstance=dis-demo:us-central1:pgsql-1&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
启用 Cloud SQL Admin API。
点击测试连接 以确保可以与数据库建立连接。
点击添加连接。
连接 PostgreSQL 数据库后,您可以将转换应用于 您的数据(在 Wrangler 中)、创建流水线, 以及将输出写入接收器(在 Studio 中)。