使用 Data Catalog 标记 BigQuery 表
本快速入门可帮助您完成以下任务:
创建 BigQuery 数据集和表。
创建标记模板,其架构定义了五个不同类型的标记字段。分别是
string
、double
、boolean
、enumerated
和richtext
。查找表的 Data Catalog 条目。
在 Google Cloud 控制台中,为您的条目创建业务元数据,其中包含概览、数据管理员和标记。
借助 Data Catalog,您可以搜索和标记条目,例如 包含元数据的 BigQuery 表。可用于标记的一些元数据示例包括公开和不公开标记、数据管家和富文本概览。
准备工作
- 设置项目。
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Data Catalog and BigQuery APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Data Catalog and BigQuery APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
向项目添加公共数据条目
Data Catalog 条目包括数据资源,例如 BigQuery 数据集或 Pub/Sub 主题。
向项目添加公共数据集。
在 Google Cloud 控制台中,前往 BigQuery 页面。
在Explorer部分,点击 Explorer,然后选择公开 数据集。
在市场面板中,搜索
New York taxi trips
,然后点击相关搜索结果。点击查看数据集。
创建数据集和表
创建数据集。
在 Google Cloud 控制台中,打开 BigQuery 页面。
在探索器面板中,选择您要在其中创建数据集的项目。
点击
操作图标,然后点击创建数据集。在创建数据集页面中,填写以下详细信息:
- 在数据集 ID 部分,输入
demo_dataset
。 - 在数据位置中选择
us (multiple regions in United States)
。 - 启用表过期时间并指定天数。
- 在加密部分,让 Google 管理的加密密钥选项保持选中状态。
点击创建数据集。
- 在数据集 ID 部分,输入
将可公开访问的表复制到
demo_dataset
。在 Google Cloud 控制台中,打开 BigQuery 页面。
在Explorer窗格中,搜索
tlc_yellow_trips
个表 (如果需要,请点击将搜索范围扩大到所有项目)和 请选择其中一项,例如tlc_yellow_trips_2017
。然后点击复制。在复制表格窗格中,填写以下信息:
- 在项目名称下拉列表中,选择您的项目。
- 在数据集名称下拉列表中,选择
demo_dataset
。 - 对于表名称,输入
trips
,然后点击复制。
在浏览器窗格中,确认
trips
表列在demo_dataset
中。
在下一部分中,您会将 Data Catalog 标记添加到该表。
创建公开标记模板并为您的条目附加标记
您必须是数据集所有者才能将标记附加到数据集中的表。 如需详细了解公开和不公开标记,请参阅公开和不公开标记。
在标记模板中,标记字段是可选的。将标记附加到 Data Catalog 条目时,您无需为字段提供值。但是,如果模板将字段定义为必需,则必须为字段提供值。如果未提供值,则会生成错误。
您可以使用小写字母和下划线来定义字段名称。本示例中创建的标记模板字段只是演示字段,不会自动更新也不会与 BigQuery 同步。
控制台
转到 Dataplex >代码模板页面。
点击创建标记模板,然后输入以下详细信息:
- 输入模板名称作为
Demo Tag Template
。 - 保留默认位置。
- 将标记模板的可见性保留为公开。
点击添加字段以添加 5 个字段。使用下表并将字段说明留空。
字段显示名 字段 ID 必填字段 类型 数据资产的来源 source 有 字符串 资源中的行 num_rows 否 双精度型 含有 PII has_pii 否 布尔值 PII 类型 pii_type 无 枚举 添加值
EMAIL_ADDRESS
、US_SOCIAL_SECURITY_NUMBER
和NONE
。上下文 context 否 RTF
- 输入模板名称作为
点击创建。
模板详细信息页面列出了有关标记模板的所有信息。
如需将标记附加到
demo_dataset
,请前往 Dataplex 搜索页面。在选择搜索平台部分,选择 Data Catalog 作为搜索模式。
在搜索框中,输入
demo_dataset
。在搜索结果中,您可以看到demo_dataset
数据集和trips
表。点击
trips
表。 此时会打开 BigQuery 表详情页面。点击附加标记。
在附加标记面板中,输入以下详细信息:
- 选择目标作为
trips
。 - 选择标记模板作为
Demo Tag Template
。 - 对于标记值,输入以下详细信息:
- 数据资产的来源:
Copied from tlc_yellow_trips_2017
- 数据资产中的行数:
113496874
- 含有 PII:
FALSE
- PII 类型:
NONE
- 数据资产的来源:
点击保存。
标记字段现在会列在 BigQuery 表详细信息的标记部分中。
- 选择目标作为
gcloud
运行以下显示的 gcloud data-catalog tag-templates create 命令创建标记模板,其中包含下列五个标记字段:
-
display_name:
Source of data assetid:
sourcerequired:
TRUEtype:
String -
display_name:
Number of rows in the data assetid:
num_rowsrequired:
FALSEtype:
Double -
display_name:
Has PIIid:
has_piirequired:
FALSEtype:
Boolean -
display_name:
PII typeid:
pii_typerequired:
FALSEtype:
Enumeratedvalues:
- EMAIL_ADDRESS
- US_SOCIAL_SECURITY_NUMBER
- 无
# ------------------------------- # Create a Tag Template. # ------------------------------- gcloud data-catalog tag-templates create demo_template \ --location=us-central1 \ --display-name="Demo Tag Template" \ --field=id=source,display-name="Source of data asset",type=string,required=TRUE \ --field=id=num_rows,display-name="Number of rows in the data asset",type=double \ --field=id=has_pii,display-name="Has PII",type=bool \ --field=id=pii_type,display-name="PII type",type='enum(EMAIL_ADDRESS|US_SOCIAL_SECURITY_NUMBER|NONE)' # ------------------------------- # Lookup the Data Catalog entry for the table. # ------------------------------- ENTRY_NAME=$(gcloud data-catalog entries lookup '//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET/tables/TABLE' --format="value(name)") # ------------------------------- # Attach a Tag to the table. # ------------------------------- # Create the Tag file. cat > tag_file.json << EOF { "source": "BigQuery", "num_rows": 1000, "has_pii": true, "pii_type": "EMAIL_ADDRESS" } EOF gcloud data-catalog tags create --entry=${ENTRY_NAME} \ --tag-template=demo_template --tag-template-location=us-central1 --tag-file=tag_file.json
Go
在尝试此示例之前,请按照Go Data Catalog 快速入门:使用 客户端库。 有关详情,请参阅 Data Catalog Go API 参考文档。
如需向 Data Catalog 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
在尝试此示例之前,请按照Java Data Catalog 快速入门:使用 客户端库。 有关详情,请参阅 Data Catalog Java API 参考文档。
如需向 Data Catalog 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
在尝试此示例之前,请按照Node.js Data Catalog 快速入门:使用 客户端库。 有关详情,请参阅 Data Catalog Node.js API 参考文档。
如需向 Data Catalog 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
在尝试此示例之前,请按照Python Data Catalog 快速入门:使用 客户端库。 有关详情,请参阅 Data Catalog Python API 参考文档。
如需向 Data Catalog 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST 和命令行
REST
如果您无法使用针对您的语言的 Cloud 客户端库或者您想要使用 REST 请求来测试 API,请参阅以下示例并参阅 Data Catalog REST API 文档。
1.创建标记模板。
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 Google Cloud 项目 ID
HTTP 方法和网址:
POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/region/tagTemplates?tagTemplateId=demo_tag_template
请求 JSON 正文:
{ "displayName":"Demo Tag Template", "fields":{ "source":{ "displayName":"Source of data asset", "isRequired": "true", "type":{ "primitiveType":"STRING" } }, "num_rows":{ "displayName":"Number of rows in data asset", "isRequired": "false", "type":{ "primitiveType":"DOUBLE" } }, "has_pii":{ "displayName":"Has PII", "isRequired": "false", "type":{ "primitiveType":"BOOL" } }, "pii_type":{ "displayName":"PII type", "isRequired": "false", "type":{ "enumType":{ "allowedValues":[ { "displayName":"EMAIL_ADDRESS" }, { "displayName":"US_SOCIAL_SECURITY_NUMBER" }, { "displayName":"NONE" } ] } } } } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name":"projects/project-id/locations/us-central1/tagTemplates/demo_tag_template", "displayName":"Demo Tag Template", "fields":{ "num_rows":{ "displayName":"Number of rows in data asset", "isRequired": "false", "type":{ "primitiveType":"DOUBLE" } }, "has_pii":{ "displayName":"Has PII", "isRequired": "false", "type":{ "primitiveType":"BOOL" } }, "pii_type":{ "displayName":"PII type", "isRequired": "false", "type":{ "enumType":{ "allowedValues":[ { "displayName":"EMAIL_ADDRESS" }, { "displayName":"NONE" }, { "displayName":"US_SOCIAL_SECURITY_NUMBER" } ] } } }, "source":{ "displayName":"Source of data asset", "isRequired":"true", "type":{ "primitiveType":"STRING" } } } }
2.查找 BigQuery 表的 Data Catalog entry-id
。
在使用任何请求数据之前,请先进行以下替换:
- project-id:Google Cloud 项目 ID
HTTP 方法和网址:
GET https://datacatalog.googleapis.com/v1/entries:lookup?linkedResource=//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/trips
请求 JSON 正文:
Request body is empty.
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/project-id/locations/US/entryGroups/@bigquery/entries/entry-id", "type": "TABLE", "schema": { "columns": [ { "type": "STRING", "description": "A code indicating the TPEP provider that provided the record. 1= ", "mode": "REQUIRED", "column": "vendor_id" }, ... ] }, "sourceSystemTimestamps": { "createTime": "2019-01-25T01:45:29.959Z", "updateTime": "2019-03-19T23:20:26.540Z" }, "linkedResource": "//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/trips", "bigqueryTableSpec": { "tableSourceType": "BIGQUERY_TABLE" } }
3.从模板创建标记并将其附加到 BigQuery 表。
在使用任何请求数据之前,请先进行以下替换:
- project-id:Google Cloud 项目 ID
- entry-id:演示数据集 trips 表的 Data Catalog 条目 ID(在上一步的查找结果中返回)。
HTTP 方法和网址:
POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/region/entryGroups/@bigquery/entries/entry-id/tags
请求 JSON 正文:
{ "template":"projects/project-id/locations/us-central1/tagTemplates/demo_tag_template", "fields":{ "source":{ "stringValue":"Copied from tlc_yellow_trips_2017" }, "num_rows":{ "doubleValue":113496874 }, "has_pii":{ "boolValue":false }, "pii_type":{ "enumValue":{ "displayName":"NONE" } } } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name":"projects/project-id/locations/US/entryGroups/@bigquery/entries/entry-id/tags/tag-id", "template":"projects/project-id/locations/us-central1/tagTemplates/demo_tag_template", "fields":{ "pii_type":{ "displayName":"PII type", "enumValue":{ "displayName":"NONE" } }, "has_pii":{ "displayName":"Has PII", "boolValue":false }, "source":{ "displayName":"Source of data asset", "stringValue":"Copied from tlc_yellow_trips_2017" }, "num_rows":{ "displayName":"Number of rows in data asset", "doubleValue":113496874 } }, "templateDisplayName":"Demo Tag Template" }
为您的条目创建概览
在 Google Cloud 控制台中,您可以使用富文本来描述 Data Catalog 项目中的条目。
如需创建
trips
表的概览,请前往 Dataplex 搜索页面。在选择搜索平台部分,选择 Data Catalog 作为搜索模式。
在搜索框中,输入
demo_dataset
。在搜索结果中,您可以看到
demo_dataset
数据集和trips
表。点击
trips
表。此时会打开 BigQuery 表详情页面。
点击添加概览并输入一些文本。您还可以添加图片和富格式的文本。
点击保存。
为您的条目添加数据管理员
在 Google Cloud 控制台中,您可以向一个条目添加一个或多个数据管理员 在 Data Catalog 项目中创建。可以联系数据条目的数据管家,以请求有关数据条目的更多信息。
如需为
trips
表创建概览,请重复上一部分中的前 3 个步骤。点击编辑管家图标,然后添加一个或多个电子邮件地址。
您可以添加具有非 Google 电子邮件账号的用户。
点击保存。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
删除项目
为了避免产生费用,最简单的方法是删除您为本教程创建的项目。
要删除项目,请执行以下操作:
- 在 Google Cloud 控制台中,进入管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。
删除数据集
如有必要,请转到 BigQuery 页面。
在浏览器面板中,搜索您创建的
demo_dataset
数据集。点击
操作选项,然后点击删除数据集。确认删除操作。
删除标记模板
转到 Data Catalog > 模板页面。
选择演示标记模板。
在行中,点击
操作选项,然后点击删除此模板。确认删除操作。
后续步骤
参阅 Data Catalog 概览,了解 Data Catalog。
请参阅标记和标记模板,了解标记模板、公共标记和不公开标记。
浏览 API 和客户端库概览。