本页介绍了如何在 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 客户端 (
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 文件未遵循此格式,请在上传前重命名该文件。点击下一步。
在相应字段中输入驱动程序的名称、类名称和版本。
点击 Finish。
在打开的添加连接窗口中,点击 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 中)。