从 PostgreSQL 数据库读取数据

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

准备工作

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

所需角色

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

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

在 Cloud Data Fusion 中打开实例

  1. 在 Google Cloud 控制台中,前往 Cloud Data Fusion 页面。

  2. 如需在 Cloud Data Fusion Studio 中打开实例,请点击实例,然后点击查看实例。

    转到实例

将 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 中)。