本页面介绍了如何使用 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。
准备工作
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
为项目启用 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 搜索语法。在结果表中,点击资产的名称以查看该资产的元数据。
可选:您可以执行以下任一操作:
- 点击添加概览,为素材资源添加富文本说明。
- 点击添加标记以向资源添加标记。
- 对于表,请点击架构标签页以查看表列。
- 对于实例(服务),如需查看成员数据库,请点击条目列表标签页,然后点击查看搜索结果中的子条目。(如果条目列表标签页未显示,则表示相应实例没有数据库。)
示例工作流 - 从实例展开细目至列
在此示例工作流中,您首先搜索 Spanner 实例,然后查看成员数据库,再查看该数据库中的一个表,最后查看该表中的列。
转到 Dataplex 搜索页面。
在过滤条件面板的系统下,选择 Spanner。
如需在 Data Catalog 中查看所有 Spanner 实例,请选中数据类型下的服务复选框,或在搜索字段中输入以下文本并按
Enter
。system=cloud_spanner type=service
选择实例名称。
在 Spanner 服务详情页面上,点击条目列表标签页,然后点击查看搜索结果中的子条目。
Dataplex 会显示实例中的数据库。
在 Spanner 数据库详情页面上,点击条目列表标签页,然后点击查看搜索结果中的子条目。
Dataplex 会显示数据库中的表。
选择表名称,然后在 Spanner 表详情页面上,点击架构以查看表列。
可选:如需向列添加标记,请点击列标记下的加号。
导出和导入标记
当您移动 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
如需了解详情,请参阅预定义角色。