本页面介绍了如何使用 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。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
为项目启用 Data Catalog API。
-
请检查权限。
您需要具有特定 Identity and Access Management (IAM) 角色和权限才能搜索标记并将其附加到 Spanner 资产。如需了解详情,请参阅 Data Catalog 所需的 IAM 角色和权限。
创建标记模板
标记模板是可用于快速创建新标记的可重复使用结构。模板可帮助您避免重复性工作和未完成的标记。根据需要创建任意数量的代码模板。
如需了解详情,请参阅代码和代码模板。
将标记附加到 Spanner 资源
通过将标记附加到 Spanner 资产,您可以执行以下操作:
- 将资产元数据添加到资产。
- 按业务元数据和其他自定义元数据搜索资产。
如需了解详情,请参阅代码和代码模板。
搜索 Spanner 资源
使用 Google Cloud 控制台中的 Dataplex 搜索页面搜索 Spanner 资产。
转到 Dataplex 搜索页面。
在过滤条件面板的系统下,选择 Spanner。
Dataplex 显示所有已知的 Spanner 资产。
可选:执行以下任一操作来缩小搜索范围:
在搜索页面上使用分面搜索。选中数据类型、项目和标记下的复选框。
在搜索字段中,在
system=cloud_spanner
后附加搜索参数。用空格分隔参数。
例如,如需仅查看数据库,请在搜索字段中输入以下文本,然后按
Enter
。system=cloud_spanner type=database
您还可以对复杂表达式使用圆括号以及逻辑运算符
and
和or
。如需详细了解可在搜索字段中使用的表达式,请参阅 Data Catalog 搜索语法。在结果表中,点击资产的名称以查看该资产的元数据。
可选:您可以执行以下任一操作:
- 点击添加概览,为素材资源添加富文本说明。
- 点击添加标记以向资源添加标记。
- 对于表格,请点击 SCHEMA 标签页以查看表格列。
- 对于实例 (SERVICE),如需查看成员数据库,请点击条目列表标签页,然后点击查看搜索结果中的子条目。(如果条目列表标签页未显示,则表示实例没有数据库。)
示例工作流 - 从实例展开细目到列
在此示例工作流中,首先搜索 Spanner 实例,然后查看成员数据库,接着查看该数据库中的表,然后查看表中的列。
转到 Dataplex 搜索页面。
在过滤条件面板的系统下,选择 Spanner。
如需在 Data Catalog 中查看所有 Spanner 实例,请选中数据类型下的服务复选框,或者在搜索字段中输入以下文本,然后按
Enter
。system=cloud_spanner type=service
选择实例名称。
在 Spanner 服务详细信息页面上,点击条目列表标签页,然后点击查看搜索结果中的儿童条目。
Dataplex 显示实例中的数据库。
在 Spanner 数据库详细信息页面上,点击条目列表标签页,然后点击在搜索结果中查看儿童条目。
Dataplex 会显示数据库中的表。
选择表名称,然后在 Spanner 表详细信息页面上,点击 SCHEMA 以查看表列。
可选:如需为列添加标记,请点击列标记下的加号。
导出和导入代码
移动 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
如需了解详情,请参阅预定义角色。