使用 Data Catalog 管理资源

本页面介绍了如何使用 Data Catalog 搜索和管理 Spanner 资源。

Data Catalog 是 Dataplex 中的一项可伸缩的全代管式元数据管理服务。它会自动为有关 Spanner 实例、数据库、表、列和视图的以下元数据编制目录:

  • 名称和完全限定名称
  • 位置(区域)
  • 创建日期和最后修改日期
  • 架构(适用于表和视图)
  • 说明

Spanner 元数据会定期(通常是每隔几小时)自动同步到 Data Catalog。您可以使用 Data Catalog 发现和了解 Spanner 元数据。您可以借助 Data Catalog 执行以下活动:

  • 分析,包括依赖项和用例适宜性
  • 变更管理
  • 数据移动(流水线)
  • 架构演变

使用 Data Catalog,您可以通过将标记附加到 Spanner 元数据条目来挑选元数据。每个代码都可以具有多个元数据字段,并且可以根据预定义或自定义代码模板创建。

例如,您可以将以下代码附加到包含社会保障号(即个人身份信息 [PII])的列:

pii:true
pii_type:SSN

移动使用标记的实例时,标记不会自动迁移到目标实例。不过,您需要先从源实例导出标记,然后再移动实例,然后再将标记导入目标实例。如需了解详情,请参阅导出和导入代码

如需详细了解 Data Catalog,请参阅什么是 Data Catalog

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  5. 确保您的 Google Cloud 项目已启用结算功能

  6. 为项目启用 Data Catalog API。

    启用 Data Catalog API

  7. 请检查权限。

    您需要具有特定 Identity and Access Management (IAM) 角色和权限才能搜索标记并将其附加到 Spanner 资产。如需了解详情,请参阅 Data Catalog 所需的 IAM 角色和权限

创建标记模板

标记模板是可用于快速创建新标记的可重复使用结构。模板可帮助您避免重复性工作和未完成的标记。根据需要创建任意数量的代码模板。

如需了解详情,请参阅代码和代码模板

将标记附加到 Spanner 资源

通过将标记附加到 Spanner 资产,您可以执行以下操作:

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

如需了解详情,请参阅代码和代码模板

搜索 Spanner 资源

使用 Google Cloud 控制台中的 Dataplex 搜索页面搜索 Spanner 资产。

  1. 转到 Dataplex 搜索页面。

    进入 Dataplex

  2. 过滤条件面板的系统下,选择 Spanner

    Dataplex 显示所有已知的 Spanner 资产。

  3. 可选:执行以下任一操作来缩小搜索范围:

    • 搜索页面上使用分面搜索。选中数据类型项目标记下的复选框。

    • 在搜索字段中,在 system=cloud_spanner 后附加搜索参数。用空格分隔参数。

    例如,如需仅查看数据库,请在搜索字段中输入以下文本,然后按 Enter

     system=cloud_spanner type=database
    

    您还可以对复杂表达式使用圆括号以及逻辑运算符 andor。如需详细了解可在搜索字段中使用的表达式,请参阅 Data Catalog 搜索语法

  4. 在结果表中,点击资产的名称以查看该资产的元数据。

  5. 可选:您可以执行以下任一操作:

    • 点击添加概览,为素材资源添加富文本说明。
    • 点击添加标记以向资源添加标记。
    • 对于表格,请点击 SCHEMA 标签页以查看表格列。
    • 对于实例 (SERVICE),如需查看成员数据库,请点击条目列表标签页,然后点击查看搜索结果中的子条目。(如果条目列表标签页未显示,则表示实例没有数据库。)

示例工作流 - 从实例展开细目到列

在此示例工作流中,首先搜索 Spanner 实例,然后查看成员数据库,接着查看该数据库中的表,然后查看表中的列。

  1. 转到 Dataplex 搜索页面。

    进入 Dataplex

  2. 过滤条件面板的系统下,选择 Spanner

  3. 如需在 Data Catalog 中查看所有 Spanner 实例,请选中数据类型下的服务复选框,或者在搜索字段中输入以下文本,然后按 Enter

    system=cloud_spanner type=service
    
  4. 选择实例名称。

  5. Spanner 服务详细信息页面上,点击条目列表标签页,然后点击查看搜索结果中的儿童条目

    Dataplex 显示实例中的数据库。

  6. Spanner 数据库详细信息页面上,点击条目列表标签页,然后点击在搜索结果中查看儿童条目

    Dataplex 会显示数据库中的表。

  7. 选择表名称,然后在 Spanner 表详细信息页面上,点击 SCHEMA 以查看表列。

  8. 可选:如需为列添加标记,请点击列标记下的加号。

导出和导入代码

移动 Spanner 实例时,移动过程会删除您在 Data Catalog 中创建的实例标记。要保留您的代码,您需要执行以下操作:

  • 查询与实例关联的标记。
  • 复制代码的详细信息。
  • 在移动的实例上创建标记。

Spanner 每 6 小时同步一次数据。对实例、数据库、表、视图或列等 Spanner 资产所做的任何更改都可能需要大约 6 小时才能传播到 Data Catalog。

从源实例配置中导出标记

如需列出实例(条目或条目组)的标记,请使用 Google Cloud CLI gcloud data-catalog tags list 命令,如下所示:

curl \
'https://datacatalog.googleapis.com/v1/projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/tags?key=API_KEY' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --compressed

替换以下内容:

  • PROJECT:包含标记的项目。
  • LOCATION:代码的位置。
  • API_KEY:允许您访问 API 的唯一字符串。
  • ACCESS_TOKEN:您的应用用于向服务进行身份验证的访问令牌。

将代码导入到目标配置中

在完成此过程之前,请执行以下操作:

如需复制标记,请使用 gcloud data-catalog tags create 命令在移动的实例上创建标记,如下所示:

curl --request POST \
'https://datacatalog.googleapis.com/v1/entries:lookup?fullyQualifiedName=FQN&location=LOCATION&project=PROJECT&key=API_KEY' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"column":"myColumnName","name":"myTagName","template":"myTemplateName","fields":{"myDoubleField":{"doubleValue":0}}}' \
  --compressed

替换以下内容:

  • FQN:资源的完全限定名称 (FQN)。FQN 有两种形式:

    对于非区域化资源:{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}

    对于区域化资源:{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}

    DPMS 表示例:

    dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}

  • LOCATION:执行查询的位置。

  • PROJECT:执行查询的项目。

  • API_KEY:允许您访问 API 的唯一字符串。

  • ACCESS_TOKEN:您的应用用于向服务进行身份验证的访问令牌。

Data Catalog 所需的 IAM 角色和权限

下表显示了各种 Data Catalog 操作所需的 IAM 角色和权限。

Data Catalog 操作 Spanner 资源 所需的角色或权限
创建标记模板 不适用 roles/datacatalog.tagTemplateCreator
搜索 Spanner 资源 实例 spanner.instances.get
数据库 spanner.databases.get
表格 spanner.databases.get
视图 spanner.databases.get
查看公开标记 实例 spanner.instances.get
数据库 spanner.databases.get
表格 spanner.databases.get
视图 spanner.databases.get
查看不公开标记 实例 datacatalog.tagTemplates.getTag + spanner.instances.get
数据库 datacatalog.tagTemplates.getTag + spanner.databases.get
datacatalog.tagTemplates.getTag + spanner.databases.get
视图 datacatalog.tagTemplates.getTag + spanner.databases.get
使用标记模板将标记附加到 Spanner 资源 实例 datacatalog.tagTemplates.use + spanner.instances.updateTag
数据库 datacatalog.tagTemplates.use + spanner.databases.updateTag
datacatalog.tagTemplates.use + spanner.databases.updateTag
视图 datacatalog.tagTemplates.use + spanner.databases.updateTag

以下角色拥有 spanner.instances.UpdateTag 权限:

  • roles/spanner.admin

以下角色拥有 spanner.databases.UpdateTag 权限:

  • roles/spanner.admin
  • roles/spanner.databaseAdmin
  • roles/spanner.databaseUser

如需了解详情,请参阅预定义角色

后续步骤