从 PostgreSQL 导入元数据

本文档介绍了如何使用 Knowledge Catalog 连接器将元数据从 PostgreSQL 导入 Knowledge Catalog(以前称为 Dataplex Universal Catalog)。

此连接器支持托管在本地、Cloud SQL 或其他云环境中的 PostgreSQL 实例。

准备工作

在从 PostgreSQL 导入元数据之前,请完成以下任务:

  1. 授予所需的角色和权限
  2. 启用 Knowledge Catalog 和 BigQuery Data Transfer Service API
  3. 满足 PostgreSQL 前提条件
  4. 满足网络前提条件

IAM 角色和权限

如需创建和管理知识目录连接器作业,您需要拥有 Identity and Access Management (IAM) 角色,该角色可授予知识目录和 BigQuery Data Transfer Service 的权限。

如需获得配置 PostgreSQL 连接器所需的权限,请让管理员为您授予以下 IAM 角色:

  • 如需创建和管理条目组,您需要拥有项目的 Dataplex Catalog Admin (roles/dataplex.catalogAdmin)、Dataplex Catalog Editor (roles/dataplex.catalogEditor) 或 Dataplex Entry Group Owner (roles/dataplex.entryGroupOwner) 角色。
  • 如需创建和管理 BigQuery Data Transfer Service 转移作业,您需要拥有项目的 BigQuery Admin (roles/bigquery.admin) 角色。
  • 如需在 Cloud Logging 中查看日志,请为项目授予 Logs Viewer (roles/logging.viewer) 角色。

此外,您还必须向 BigQuery Data Transfer Service 服务代理 (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) 授予 dataplex.entryGroups.import 权限或 Dataplex Entry Group Importer (roles/dataplex.entryGroupImporter) 角色。您可以在项目级层或条目组级层授予此角色。

如需详细了解如何授予角色,请参阅管理访问权限

启用 API

启用 Knowledge Catalog API 和 BigQuery Data Transfer Service API。

启用 API

PostgreSQL 前提条件

确保您满足 PostgreSQL 迁移的前提条件。如需了解详情,请参阅 BigQuery Data Transfer Service 文档中的 PostgreSQL 前提条件

除了 BigQuery Data Transfer Service 的前提条件之外,您的 PostgreSQL 数据库还必须满足以下元数据提取要求:

  • 最低版本:PostgreSQL 版本 15 或更高版本。
  • 最低必需权限:提取工具需要特定权限才能成功收集元数据。

如需授予这些权限,请运行以下 SQL 语句:

  1. 授予数据库连接权限:

    GRANT CONNECT ON DATABASE DATABASE_NAME TO USERNAME;
    
  2. 授予对架构的使用权限:

    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USERNAME;
    
  3. 向用户授予所需的读取角色:

    GRANT pg_read_all_data TO USERNAME;
    GRANT pg_read_all_settings TO USERNAME;
    GRANT pg_read_all_stats TO USERNAME;
    

替换以下内容:

  • DATABASE_NAME:您要访问的 PostgreSQL 数据库的名称。
  • USERNAME:要配置的数据库用户。
  • SCHEMA_NAME:您要访问的架构的名称。

网络前提条件

通过 Private Service Connect 进行连接时,需要使用网络连接,以便在专用网络中使用专用 IP 地址安全地连接到外部数据库或第三方云数据源,从而允许 BigQuery Data Transfer Service 访问您的数据库。

如果您使用公共 IP 地址连接到本地环境或云托管实例,则不需要网络连接。

配置 PostgreSQL 连接器

使用 Google Cloud 控制台或 API 配置 PostgreSQL 连接器。

控制台

  1. 在 Google Cloud 控制台中,前往 Knowledge Catalog 页面。

    前往 Knowledge Catalog

  1. 在导航菜单中的管理部分,点击连接器
  2. 点击添加连接
  3. 连接器列表中,选择 PostgreSQL 卡片。
  4. 数据源详细信息部分,提供 PostgreSQL 实例的连接详细信息:
    • 对于网络连接,请根据需要选择现有网络连接或创建一个。
    • 输入主机端口数据库名称用户名密码
    • 如果使用 TLS,请选择 TLS 模式并提供受信任的 PEM 证书
    • 对于要导入的 PostgreSQL 元数据对象,请点击浏览以选择对象。
  5. 目标设置部分中:
    • 点击浏览,然后选择一个现有的知识目录条目组来存储导入的元数据,或点击创建新条目组
    • 选择是立即还是稍后设置条目组权限。 建议您设置权限,以便用户可以查看导入的元数据。如果您未在项目级层面向 BigQuery Data Transfer Service 服务代理 (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) 授予 Dataplex Entry Group Importer (roles/dataplex.entryGroupImporter) 角色或 dataplex.entryGroups.import 权限,则必须在条目组级层面向其授予这些角色或权限。
  6. 连接器配置名称部分的显示名称中,输入元数据导入作业的名称。
  7. 时间表选项部分,配置元数据导入作业的频率。如果您选择按需,则作业仅在您手动触发时运行。
  8. 可选:在通知选项部分中,为作业失败配置电子邮件或 Pub/Sub 通知。
  9. 可选:在高级选项部分中,配置加密设置。如果您选择客户管理的加密密钥 (CMEK),请注意,该密钥用于加密在开始 Knowledge Catalog 元数据导入作业之前暂存的任何临时数据。它不用于加密目标 Knowledge Catalog 条目组中的元数据。
  10. 点击保存

REST

使用 projects.locations.transferConfigs.create 方法。在 TransferConfig 资源中,配置以下字段:

  • dataSourceId 字段设置为 "postgresql"
  • metadataDestination 字段中,使用目标 Knowledge Catalog 条目组的资源路径填充 dataplexConfiguration 对象:projects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/entryGroups/<var>ENTRY_GROUP_ID</var>

创建作业后,Knowledge Catalog 会根据您的配置安排首次运行,您也可以手动启动作业。

后续步骤