使用 Dataplex Universal Catalog 管理 AlloyDB 资源

您可以使用 Dataplex Universal Catalog 搜索和管理 AlloyDB for PostgreSQL 资源。Dataplex Universal Catalog 是一个可用于存储、管理和访问元数据的平台。您可以使用 Dataplex Universal Catalog 来发现和了解 AlloyDB 元数据。使用 Dataplex Universal Catalog 可帮助您完成以下任务:

  • 分析,包括依赖关系和针对应用场景的适用性
  • 变更管理
  • 架构演变

Dataplex Universal Catalog 会自动从 AlloyDB 中检索以下元数据:

资源类型 已检索元数据
集群、数据库和实例
  • 名称
  • 位置(区域)
架构、列、表、视图
  • 名称
  • 位置(区域)
  • 说明
  • 架构

元数据发现类型

在 Dataplex Universal Catalog 的上下文中,元数据发现是指 Dataplex Universal Catalog 扫描已连接的数据源(例如 AlloyDB)以识别数据资产(例如表、视图和数据库),并将其技术元数据(例如架构、说明和位置)提取到其目录中的自动化过程。

此进程会定期运行,以使目录与源系统保持同步。对于 AlloyDB,系统默认会发现集群和实例元数据,而只有在您为集群启用集成后,才会发现数据库、架构、表和视图元数据。

Dataplex Universal Catalog 支持关键字搜索和自然语言搜索。

  • 借助关键字搜索,您可以使用特定关键字、过滤条件和定义的语法来查找资源。例如,您可以输入 system=AlloyDB AND type=Database 以查看所有 AlloyDB 数据库。
  • 自然语言搜索(预览版)使用 AI 来理解语义查询。借助它,您可以使用日常语言查找资源,无需使用复杂的语法。例如,您可以输入 List all AlloyDB tables related to sales 等查询内容。

如需了解详情,请参阅 Dataplex Universal Catalog 的搜索语法

示例:发现 AlloyDB 数据库架构

为了解元数据发现过程,不妨考虑一个名为 user-data-cluster 且已启用 Dataplex Universal Catalog 集成的 AlloyDB 集群示例。在此集群的主实例中,您有一个名为 profiles 的数据库,其中包含一个表 customersidemailsignup_date)和一个视图 active_usersidemail)。

AlloyDB 会定期与 Dataplex Universal Catalog 同步,因此以下资源可供使用:

  • 集群
  • 数据库
  • 实例
  • 表格
  • 视图

发现完成后,您可以在 Google Cloud 控制台的 Dataplex Universal Catalog 页面中或使用 API 搜索这些资产(customers 表和 active_users),查看其架构,并使用其他业务或运营元数据丰富这些资产。

使用切面丰富元数据

切面类型是可重复使用的资源,可用作切面的模板。切面类型可帮助您避免重复性工作和不完整的切面。您可以使用 Dataplex Universal Catalog 创建所需的切面类型。

创建自定义切面类型后,您可以将切面关联到 AlloyDB 资产。通过将切面关联到 AlloyDB 资产,您可以执行以下操作:

  • 将业务元数据添加到资产
  • 按业务元数据和其他自定义元数据搜索资产

如需详细了解如何创建切面类型并将切面附加到 AlloyDB,请参阅管理切面并丰富元数据

元数据发现工作流

默认情况下,集群和实例资源会被注入并可供发现。如果您想提取和发现数据库、架构、表和视图资源,只需为 AlloyDB 集群启用 Dataplex Universal Catalog 集成即可。

  1. 如需发现 AlloyDB 数据库、架构、表和视图资源,您必须在创建新集群或更新现有集群时,使用 AlloyDB API 为 AlloyDB 集群启用 Dataplex Universal Catalog 集成。如需了解详情,请参阅创建集群及其主实例

  2. 使用 Google Cloud 控制台中的 Dataplex Universal Catalog 搜索页面搜索 AlloyDB 资产。如需了解详情,请参阅在 Dataplex Universal Catalog 中搜索资源

  3. 如需为 AlloyDB 资产添加更多上下文,您可以将切面附加到资产。切面是自定义元数据条目,有助于进行数据治理和分析。例如,您可以使用切面来标记包含个人身份信息 (PII) 的列。如需了解详情,请参阅管理切面并丰富元数据

  4. 您现在可以按照以下层次结构浏览 AlloyDB 资源:集群 > 数据库 > 架构 > 表或视图 > 列。这样可以详细了解您的数据格局。如需了解详情,请参阅在 Dataplex Universal Catalog 中搜索资源

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. 为项目启用 Dataplex API。

    启用 Dataplex API

  7. 请检查权限。

    您需要特定的 Identity and Access Management (IAM) 角色和权限才能搜索条目并将其关联到 AlloyDB 资产。如需了解详情,请参阅 Dataplex Universal Catalog 所需的 IAM 角色和权限

  8. 所需 IAM 角色

    本部分介绍搜索资源和访问搜索结果所需的角色和权限。

    访问搜索结果所需的角色

    如需在 Dataplex Universal Catalog 中搜索和查看 AlloyDB 元数据,主账号必须拥有查看 AlloyDB 资源的权限,包括 dataplex.projects.search 权限。

    如需向主账号(例如用户、组或服务账号)授予这些权限,请向其分配包含 AlloyDB 资源的项目的 AlloyDB Viewer (roles/alloydb.viewer) IAM 角色。

    Dataplex Universal Catalog 操作 AlloyDB 资源 所需的角色或权限
    搜索 AlloyDB 资源 集群 alloydb.clusters.get
    alloydb.databases.get
    实例 alloydb.instances.get
    数据库 alloydb.databases.get
    表格 alloydb.databases.get
    视图 alloydb.databases.get

    如果您不想使用预定义的 AlloyDB Viewer 角色,则可以分配包含 alloydb.clusters.getalloydb.instances.getalloydb.databases.get 权限的自定义角色。

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

    搜索条目所需的角色

    要搜索条目,您需要在用于搜索的项目中至少拥有下列一个 IAM 角色

    搜索结果的权限检查独立于所选项目。如需了解详情,请参阅使用 Dataplex Universal Catalog 搜索数据资产

    在 AlloyDB 集群上启用 Dataplex Universal Catalog 集成

    默认情况下,集群和实例资源会被注入并可供发现。如果您想提取和发现数据库、架构、表和视图资源,只需为 AlloyDB 集群启用 Dataplex Universal Catalog 集成即可。

    如需注入数据库、架构、表和视图资源并使其可被发现,请使用 AlloyDB API 创建或更新集群。启用此集成后,系统会同步数据库、架构、表和视图资源等数据平面元数据。

    如需与 Dataplex Universal Catalog 集成,您可以使用集群级 dataplexConfig 标志。如需查看次要集群的数据,您必须单独启用此标志。如需启用 AlloyDB 元数据(例如数据库、架构和表)导出到 Cloud Storage 存储桶的功能,请将 enabled 设置为 true。然后,Dataplex Universal Catalog 即可使用此数据。此功能仅适用于主实例。

    在创建集群时启用 Dataplex Universal Catalog 集成

    如需创建已启用 Dataplex Universal Catalog 集成的 AlloyDB 集群,请使用 POST 方法和以下网址。如需查看此调用的完整参数列表,请参阅方法:projects.locations.clusters.create。如需了解集群设置,请参阅查看集群和实例设置

    请勿在集群 ID 中包含敏感信息或个人身份信息 (PII),因为它可供外部用户查看。无需在集群名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

    如需发送请求,请将请求正文保存在名为 cluster_request.json 的文件中:

    {
      "databaseVersion": "DATABASE_VERSION",
      "initialUser": {
        "user": "INITIAL_USERNAME",
        "password": "INITIAL_USER_PASSWORD"
      },
      "labels": {
        "test": "alloydb-cluster-full"
      },
      "dataplexConfig" : {
        "enabled" : true
      }
    }
    

    进行以下替换:

    • DATABASE_VERSION:数据库版本的枚举字符串,例如 POSTGRES_16
    • INITIAL_USERNAME:您用于默认 postgres 用户的用户名。
    • INITIAL_USER_PASSWORD:您用于默认 postgres 用户的密码。

    使用以下 HTTP 方法和网址:

    POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID
    

    进行以下替换:

    • PROJECT_ID:包含集群的 Google Cloud 项目的 ID 或项目编号
    • LOCATION_ID:集群区域的 ID。
    • CLUSTER_ID:您创建的集群的 ID。集群 ID 必须以小写字母开头,可以包含小写字母、数字和连字符。

    如需发送您的请求,请使用以下方式之一:

    curl(Linux、macOS 或 Cloud Shell)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

        curl -X POST \
             -H "Authorization: Bearer $(gcloud auth print-access-token)" \
             -H "Content-Type: application/json; charset=utf-8" \
             -d @request.json \
            "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID"
          

    PowerShell (Windows)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }
    
    Invoke-WebRequest `
        -Method POST `
        -Headers $headers `
        -ContentType: "application/json; charset=utf-8" `
        -InFile request.json `
        -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID"| Select-Object -Expand Content
    

    您会收到类似以下内容的 JSON 响应:

    响应

    {
      "kind": "alloydb#operation",
      "targetLink": "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "CLUSTER_ID",
      "selfLink": "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }

    为 AlloyDB 集群启用 Dataplex Universal Catalog 集成

    如需更新现有集群的特定字段,请对 projects.locations.clusters resource 使用 PATCH 方法。

    使用以下 HTTP 方法和网址:

    PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID
    

    进行以下替换:

    • PROJECT_ID:包含集群的 Google Cloud 项目的 ID 或项目编号
    • CLUSTER_ID:集群的名称。

    请求 JSON 正文:

    {
      "dataplexConfig": {
        "enabled": true
      }
    }
    

    如需发送您的请求,请使用以下方式之一:

    curl(Linux、macOS 或 Cloud Shell)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

        curl -X PATCH \
             -H "Authorization: Bearer $(gcloud auth print-access-token)" \
             -H "Content-Type: application/json; charset=utf-8" \
             -d @request.json \
            "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID"
          

    PowerShell (Windows)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }
    
    Invoke-WebRequest `
        -Method PATCH `
        -Headers $headers `
        -ContentType: "application/json; charset=utf-8" `
        -InFile request.json `
        -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID"| Select-Object -Expand Content
    

    您会收到类似以下内容的 JSON 响应:

    响应

    {
      "kind": "alloydb#operation",
      "targetLink": "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-09-25T22:19:33.735Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "CLUSTER_ID",
      "selfLink": "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }

    验证 AlloyDB 集群上的 Dataplex Universal Catalog 集成

    如需验证现有集群上是否已启用 Dataplex Universal Catalog 集成,请使用 GET 方法。

    使用以下 HTTP 方法和网址:

    GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID
    

    进行以下替换:

    • PROJECT_ID:包含集群的 Google Cloud 项目的 ID 或项目编号
    • CLUSTER_ID:集群 ID。

    如需发送您的请求,请使用以下方式之一:

    curl(Linux、macOS 或 Cloud Shell)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    curl -X GET \
         -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID"
          

    PowerShell (Windows)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }
    
    Invoke-WebRequest `
        -Method GET `
        -Headers $headers `
        -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID"| Select-Object -Expand Content
    

    您会收到整个 Cluster proto 的 JSON 响应。在 proto 中查找 dataplexConfig 消息:

    {
    "dataplexConfig":
      {
      "enabled": true
      }
    }

    在 AlloyDB 集群上停用 Dataplex Universal Catalog 集成

    使用以下示例停用集成。停用此功能后,只有集群和实例元数据可用。

    使用以下 HTTP 方法和网址:

    PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID
    

    进行以下替换:

    • PROJECT_ID:包含集群的 Google Cloud 项目的 ID 或项目编号
    • CLUSTER_ID:集群 ID。

    请求 JSON 正文:

    {
      "dataplexConfig": {
        "enabled": false
      }
    }
    

    如需发送您的请求,请展开以下选项之一:

    curl(Linux、macOS 或 Cloud Shell)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    curl -X PATCH \
         -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         -H "Content-Type: application/json; charset=utf-8" \
         -d @request.json \
         "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID"
          

    PowerShell (Windows)

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }
    
    Invoke-WebRequest `
        -Method PATCH `
        -Headers $headers `
        -ContentType: "application/json; charset=utf-8" `
        -InFile request.json `
        -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID"| Select-Object -Expand Content
    

    您会收到类似以下内容的 JSON 响应:

    响应

    {
      "kind": "alloydb#operation",
      "targetLink": "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/clusters/CLUSTER_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "CLUSTER_ID",
      "selfLink": "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }

    通过切面丰富 AlloyDB 资产

    切面类型是可重复使用的资源,可用作切面的模板。切面类型可帮助您避免重复性工作和不完整的切面。 您可以使用 Dataplex Universal Catalog 创建所需的切面类型。

    创建自定义切面类型后,您可以将切面关联到 AlloyDB 资产。通过将切面关联到 AlloyDB 资产,您可以执行以下操作:

    • 将业务元数据添加到资产
    • 按业务元数据和其他自定义元数据搜索资产

    如需详细了解如何创建切面类型并将切面附加到 AlloyDB,请参阅管理切面并丰富元数据

    搜索 AlloyDB 资产

    使用 Google Cloud 控制台中的 Dataplex Universal Catalog 搜索页面可搜索 AlloyDB 资产。

    1. 前往 Dataplex Universal Catalog 搜索页面。

      转到搜索

    2. 选择搜索平台中,选择 Dataplex Universal Catalog

    3. 过滤条件面板中,点击系统,然后选择 AlloyDB

    4. 可选。在类型别名中,您可以通过选择以下一种或多种类型别名,将搜索结果过滤为特定类型的 AlloyDB 资产:

      • 数据库
      • 数据库架构
      • 集群
      • 实例
      • 服务
      • 表格
      • 查看

    您可以使用 Dataplex Universal Catalog 中的搜索字段执行关键字搜索查询。例如,您可以输入 system=AlloyDB AND type=Database 以查看所有 AlloyDB 数据库。

    如需了解详情,请参阅 Dataplex Universal Catalog 的搜索语法

    如需查看所有 AlloyDB 资产,请输入 system=AlloyDB

    然后,您可以输入特定关键字。例如,如需查看所有 AlloyDB 数据库,请输入以下查询:

    system=AlloyDB AND type=Database
    

    如需查看所有 AlloyDB 表,请输入以下查询:

    system=AlloyDB AND type=Table
    

    您还可以使用复杂的括号和逻辑运算符 ANDOR 来表示复杂表达式。如需详细了解可在搜索字段中使用的表达式,请参阅 Dataplex Universal Catalog 的搜索语法

    您可以直接在搜索字段中输入用于特定 AlloyDB 资产的搜索查询。查询字符串的格式如下:

    type="projects/dataplex-types/locations/global/entryTypes/QUERY_STRING"

    替换以下内容:

    • QUERY_STRING:请使用以下列表根据您要查询的 AlloyDB 资产类型来确定查询字符串:

      • alloydb-database
      • alloydb-cluster
      • alloydb-instance
      • alloydb-table
      • alloydb-schema
      • alloydb-view

    示例查询可能如下所示:

    type="projects/1234567890/locations/global/entryTypes/alloydb-cluster"
    

    按切面类型搜索

    Dataplex Universal Catalog 包含一些内置的切面类型,您可以使用这些切面类型执行搜索。

    如需按方面类型进行搜索,请按以下步骤操作:

    1. 切面面板中,点击添加更多切面类型菜单。
    2. 可选。选择 AlloyDB 访问权限以按 AlloyDB 方言过滤结果。
    3. 选择一个或多个以下切面类型,以将搜索结果限制为该类型。
      • AlloyDB 数据库
      • AlloyDB 集群
      • AlloyDB 实例
      • AlloyDB 视图
      • AlloyDB 架构
      • AlloyDB 表
    4. 点击确定
    5. 在结果表中,点击资产的名称以查看该资产的元数据。
    6. 可选:优化或查看资产。您可以执行以下任一操作:
      • 如需添加资产的富文本说明,请在概览中点击添加
      • 如需将某个切面附加到资产,请在切面中点击添加
      • 如需查看实例的成员数据库,请点击条目列表标签页,然后点击在搜索结果中显示所有子条目。如果条目列表标签页未显示,则表示该集群没有数据库。
      • 条目详情中,查看资产的完整详情。点击条目名称可展开细目至其他条目。

    AlloyDB 中的自然语言搜索

    自然语言搜索(预览版)使用 AI 来理解语义查询。借助它,您可以使用日常语言查找资源,无需使用复杂的语法。例如,您可以输入 List all AlloyDB tables related to sales 等查询内容。

    如需了解详情,请参阅 Dataplex Universal Catalog 的搜索语法

    AlloyDB 中的语法搜索

    借助关键字搜索,您可以使用特定关键字、过滤条件和定义的语法来查找资源。例如,您可以输入 system=AlloyDB AND type=Database 以查看所有 AlloyDB 数据库。

    如需了解详情,请参阅 Dataplex Universal Catalog 的搜索语法

    示例工作流 - 从集群展开细目至列

    如需从集群下钻到列,请按以下步骤操作:

    1. 前往 Dataplex Universal Catalog 搜索页面。

      转到搜索

    2. 对于选择搜索平台选项,选择 Dataplex Universal Catalog

    3. 过滤条件面板中,选择系统,然后选择 AlloyDB。或者,在搜索字段中输入 system=AlloyDB

    4. 选择集群名称。

    5. AlloyDB 详情页面上,点击条目列表标签页,然后点击在搜索结果中显示所有子条目。Dataplex Universal Catalog 会显示集群中的数据库。

    6. AlloyDB 数据库详情页面上,点击条目列表标签页,然后点击查看搜索结果中的子条目。Dataplex Universal Catalog 会显示集群中的表。

    7. 选择表名称,然后在 AlloyDB 表详情页面上,点击架构以查看表列。

    8. 可选:如需向列添加某个切面类型,请点击添加切面按钮。

    价格

    在 Dataplex Universal Catalog 中存储 AlloyDB 技术元数据无需付费。对于 API 调用和额外的业务元数据丰富化,适用标准 Dataplex Universal Catalog 价格。如需了解详情,请参阅 Dataplex Universal Catalog 价格页面

    资源使用情况

    Dataplex Universal Catalog 会定期从您的集群中提取数据。提取过程需要占用一定量的 CPU。具有较小机器类型的集群(例如共享较大架构 [10,000 个或更多表] 的机器)在提取过程中可能会占用少量 CPU。

    限制

    • 每个数据库最多允许 100 万个表。
    • 数据库更新最多可能需要 48 小时才能反映在 Dataplex Universal Catalog 中。
    • 提取过程通常需要几分钟,但完成时间取决于 CPU 大小和表数量。
    • 如果实例不存在或未运行,则可能需要 7 天才能删除元数据。

    后续步骤