使用 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

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

    Go to project selector

  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

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

后续步骤