从 PostgreSQL 数据库读取数据

本页面介绍如何从 Cloud Data Fusion 实例中的 PostgreSQL 数据库读取数据。

准备工作

  • 创建 Cloud Data Fusion 实例
  • 启用 PostgreSQL 数据库,以接受来自 Cloud Data Fusion 的连接。为了安全地执行此操作,我们建议您使用私有 Cloud Data Fusion 实例。

所需的角色

如需获取连接到 PostgreSQL 数据库所需的权限,请让管理员向您授予以下 IAM 角色:

  • 包含集群的项目中 Dataproc 服务帐号的 Dataproc 工作器 (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 中打开实例

  1. 在 Google Cloud 控制台中,转到 Cloud Data Fusion 页面。

  2. 如需在 Cloud Data Fusion 网页界面中打开实例,请点击实例,然后点击查看实例

    转到实例

将 PostgreSQL 密码存储为安全密钥

输入您的 PostgreSQL 密码作为要在 Cloud Data Fusion 实例中加密的安全密钥。如需详细了解密钥,请参阅 Cloud KMS

  1. 在 Cloud Data Fusion 界面中,点击系统管理员 > 配置

  2. 点击进行 HTTP 调用

    配置。

  3. 在下拉菜单中,选择 PUT

  4. 在路径字段中,输入 namespaces/default/securekeys/pg_password

  5. 正文字段中,输入 {"data":"POSTGRESQL_PASSWORD"}。 将 POSTGRESQL_PASSWORD 替换为您的 PostgreSQL 密码。

  6. 点击发送

    密码。

如果有任何错误,响应字段会通知您。

连接到 Cloud SQL for PostgreSQL

  1. 在 Cloud Data Fusion 界面中,点击菜单并转到 Wrangler 页面。

  2. 点击添加连接

  3. 选择数据库作为要连接的来源类型。

    添加连接。

  4. Google Cloud SQL for PostgreSQL 下,点击上传

    选择来源。

  5. 上传包含 PostgreSQL 驱动程序的 JAR 文件。您的 JAR 文件必须采用 NAME-VERSION.jar 格式。如果 JAR 文件未遵循此格式,请在上传前重命名该文件。

  6. 点击下一步

  7. 在相应字段中输入驱动程序的名称、类名称和版本。

  8. 点击完成

  9. 在打开的添加连接窗口中,点击 Google Cloud SQL for PostgreSQL。您的 JAR 名称应该显示在 Google Cloud SQL for PostgreSQL 下。

    JAR 文件已上传。

  10. 填写必填的连接字段。在密码字段中,选择您之前存储的安全密钥。 这可确保使用 Cloud KMS 检索您的密码。

    设置密码。

  11. 连接字符串字段中,输入以下连接字符串:

    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
    

  12. 启用 Cloud SQL Admin API。

  13. 点击测试连接以确保可以与数据库建立连接。

  14. 点击添加连接

连接 PostgreSQL 数据库后,您可以将转换应用于您的数据(在 Wrangler 中)、创建流水线,以及将输出写入接收器(在 Studio 中)。