借助 Knowledge Catalog(以前称为 Dataplex Universal Catalog),您可以识别 BigQuery 表中列的常见统计特征(常见值、数据分布、null 值计数)。此信息有助于您更有效地了解和分析数据。
如需详细了解 Knowledge Catalog 数据分析扫描,请参阅数据分析简介。
准备工作
启用 Dataplex API。
启用 API 所需的角色
如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。
所需的角色和权限
本部分介绍了使用 Knowledge Catalog 数据分析扫描所需的 IAM 角色和权限。
用户角色和权限
如需获得创建和管理数据剖析扫描所需的权限,请让管理员向您授予以下 IAM 角色:
-
创建、运行、更新和删除数据分析扫描:
针对包含数据扫描的项目的 Dataplex DataScan Editor (
roles/dataplex.dataScanEditor) -
查看数据分析扫描结果、作业和历史记录:
包含数据扫描的项目的 Dataplex DataScan Viewer (
roles/dataplex.dataScanViewer) -
将数据分析扫描结果发布到 Knowledge Catalog:针对
@bigquery条目组的 Dataplex Catalog Editor (roles/dataplex.catalogEditor) -
在数据分析标签页中查看 BigQuery 中已发布的数据分析文件扫描结果:
表的 BigQuery Data Viewer (
roles/bigquery.dataViewer) -
运行数据分析扫描:
- 运行扫描的项目中的 BigQuery Job User (
roles/bigquery.jobUser)(所有表类型) - 针对正在扫描的 BigQuery 表的 BigQuery Data Viewer (
roles/bigquery.dataViewer)
- 运行扫描的项目中的 BigQuery Job User (
-
针对使用 Cloud Storage 数据的 BigQuery 外部表运行数据分析扫描:
- 针对 Cloud Storage 存储桶的 Storage Object Viewer (
roles/storage.objectViewer) 角色(Cloud Storage、Apache Hive 和 Iceberg REST 目录) - 针对 Cloud Storage 存储桶的 Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader)
- 针对 Cloud Storage 存储桶的 Storage Object Viewer (
-
在 Google Cloud 湖仓一体上针对 Iceberg REST 目录、SAP BDC Delta Lake 和 Apache Hive 表运行数据分析扫描:
针对要扫描的表,授予 BigLake Viewer (
roles/biglake.viewer) 角色 -
将数据分析扫描结果导出到 BigQuery 表:针对表的 BigQuery Data Editor (
roles/bigquery.dataEditor)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供创建和管理数据剖析扫描所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建和管理数据分析扫描,需要具备以下权限:
-
创建、运行、更新和删除数据分析扫描:
-
项目的
dataplex.datascans.create权限 -
针对数据扫描的
dataplex.datascans.update权限 -
针对数据扫描的
dataplex.datascans.delete权限 -
针对数据扫描的
dataplex.datascans.run权限 -
针对数据扫描的
dataplex.datascans.get权限 -
项目的
dataplex.datascans.list权限 -
数据扫描作业的
dataplex.dataScanJobs.get权限 -
针对数据扫描的
dataplex.dataScanJobs.list权限
-
项目的
-
查看数据分析扫描结果、作业和历史记录:
-
针对数据扫描的
dataplex.datascans.getData权限 -
项目的
dataplex.datascans.list权限 -
数据扫描作业的
dataplex.dataScanJobs.get权限 -
针对数据扫描的
dataplex.dataScanJobs.list权限
-
针对数据扫描的
-
将数据分析扫描结果发布到 Knowledge Catalog:
-
dataplex.entryGroups.useDataProfileAspect针对条目组 -
表的
bigquery.tables.update权限 -
dataplex.entries.update在入口处
-
-
在 BigQuery 或 Knowledge Catalog 中查看已发布的数据分析结果:
-
表的
bigquery.tables.get权限 -
表的
bigquery.tables.getData权限
-
表的
Knowledge Catalog 服务账号角色和权限
无论您选择哪种执行身份(默认的 Knowledge Catalog 服务代理、自定义服务账号或最终用户凭据),该身份都需要以下角色和权限才能在后端运行数据分析扫描作业并导出结果。
为确保执行身份拥有运行数据剖析扫描和导出结果所需的权限,请让管理员向执行身份授予以下 IAM 角色:
-
运行数据分析扫描:
- 运行扫描的项目中的 BigQuery Job User (
roles/bigquery.jobUser)(所有表类型) - 针对正在扫描的 BigQuery 表的 BigQuery Data Viewer (
roles/bigquery.dataViewer)
- 运行扫描的项目中的 BigQuery Job User (
-
针对使用 Cloud Storage 数据的 BigQuery 外部表运行数据分析扫描:
- 针对 Cloud Storage 存储桶的 Storage Object Viewer (
roles/storage.objectViewer) 角色 - 针对 Cloud Storage 存储桶的 Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader)
- 针对 Cloud Storage 存储桶的 Storage Object Viewer (
-
在 Google Cloud 湖仓一体上针对 Iceberg REST 目录、SAP BDC Delta Lake 和 Apache Hive 表运行数据分析扫描:
针对要扫描的表,授予 BigLake Viewer (
roles/biglake.viewer) 角色 -
将数据分析扫描结果导出到 BigQuery 表:针对表的 BigQuery Data Editor (
roles/bigquery.dataEditor)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含运行数据剖析扫描和导出结果所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需运行数据分析扫描并导出结果,需要具备以下权限:
-
针对 BigQuery 数据运行数据分析扫描:
-
项目的
bigquery.jobs.create权限 -
表的
bigquery.tables.get权限 -
表的
bigquery.tables.getData权限
-
项目的
-
针对使用 Cloud Storage 数据的 BigQuery 外部表运行数据分析扫描:
-
存储桶的
storage.buckets.get权限 -
对象的
storage.objects.get权限
-
存储桶的
-
将数据分析扫描结果导出到 BigQuery 表:
-
针对数据集的
bigquery.tables.create权限 -
表的
bigquery.tables.updateData权限
-
针对数据集的
您的管理员也可以使用自定义角色或其他预定义角色向执行身份授予这些权限。
如果某个表使用 BigQuery 行级安全性,则 Knowledge Catalog 只能扫描对 Knowledge Catalog 服务账号可见的行。如需让 Knowledge Catalog 扫描所有行,请将其服务账号添加到谓词为 TRUE 的行过滤条件中。
如果某个表使用 BigQuery 列级安全性,则 Knowledge Catalog 需要访问权限才能扫描受保护的列。如需授予访问权限,请向知识目录服务账号授予表中使用的所有政策标记的 Data Catalog Fine-Grained Reader (roles/datacatalog.fineGrainedReader) 角色。创建或更新数据扫描的用户也需要拥有这些受保护列的权限。
向知识目录服务账号授予角色
为了运行数据分析扫描,Knowledge Catalog 使用的服务账号需要具备运行 BigQuery 作业和读取 BigQuery 表数据的权限。如需授予所需的角色,请按以下步骤操作:
获取 Knowledge Catalog 服务账号电子邮件地址。如果您之前未在此项目中创建数据分析或数据质量扫描,请运行以下
gcloud命令以生成服务身份:gcloud beta services identity create --service=dataplex.googleapis.com该命令会返回服务账号邮箱,其格式如下:service-PROJECT_ID@gcp-sa-dataplex.。
如果服务账号已存在,您可以在Google Cloud 控制台的 IAM 页面上查看名称中包含 Dataplex 的主账号,找到该服务账号的电子邮件地址。
向服务账号授予您项目的 BigQuery Job User (
roles/bigquery.jobUser) 角色。此角色可让服务账号运行 BigQuery 作业以进行扫描。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex." \ --role="roles/bigquery.jobUser"替换以下内容:
PROJECT_ID:您的 Google Cloud 项目 ID。service-PROJECT_NUMBER@gcp-sa-dataplex.:Knowledge Catalog 服务账号的电子邮件地址。
向服务账号授予您要分析的每个表的 BigQuery Data Viewer (
roles/bigquery.dataViewer) 角色。此角色可授予对表的只读权限。gcloud bigquery tables add-iam-policy-binding DATASET_ID.TABLE_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex." \ --role="roles/bigquery.dataViewer"替换以下内容:
DATASET_ID:包含相应表的数据集的 ID。TABLE_ID:要分析的表的 ID。service-PROJECT_NUMBER@gcp-sa-dataplex.:Knowledge Catalog 服务账号的电子邮件地址。
网络要求
如需运行扫描,您必须在用于扫描的 VPC 子网上启用专用 Google 访问通道。如果您未指定子网,请确保您的默认子网已启用专用 Google 访问通道。
配置执行身份
默认情况下,数据分析扫描使用 Knowledge Catalog 服务代理运行。您可以替换此设置,以使用自定义服务账号或您自己的最终用户凭据 (EUC)。
使用自定义执行身份会改变扫描的结算方式。指定自定义执行身份后,与扫描相关的计算和存储费用将直接计入您的 BigQuery 项目,而不会使用标准的 Knowledge Catalog Premium SKU。
自定义执行身份所需的权限
如需配置自定义服务账号或使用最终用户凭据,您必须拥有以下额外的 IAM 权限:
- 如需使用自定义服务账号,您需要以下权限:
- 为包含服务账号的项目(例如
roles/iam.serviceAccountUser)授予的iam.serviceAccounts.actAs权限。 - 您项目的服务代理 (
service-PROJECT_NUMBER@gcp-sa-dataplex.) 需要对自定义服务账号拥有iam.serviceAccounts.getAccessToken权限(例如,通过拥有roles/iam.serviceAccountTokenCreator角色)。 - 自定义服务账号需要对表具有
bigquery.tables.getData权限才能扫描,需要对扫描项目具有bigquery.jobs.insert权限,并且需要对导出数据集具有bigquery.dataEditor权限(如果使用导出功能)。
- 为包含服务账号的项目(例如
- 如需使用最终用户凭据,您需要:
bigquery.tables.getData扫描表。- 扫描项目中的
bigquery.jobs.insert。 - 导出数据集中的
bigquery.dataEditor(如果使用导出)。
如需配置执行身份,请选择以下选项之一:
控制台
如需在 Google Cloud 控制台中配置执行身份,请在创建数据分析扫描时选择相应身份。
在执行身份部分中,选择以下选项之一:
- Dataplex 服务账号:默认行为。
- 特定服务账号:输入您要使用的服务账号的电子邮件地址。
- 用户凭据:使用您自己的凭据运行扫描。
REST
如需使用自定义服务账号,请在 create 请求期间将 executionIdentity 对象添加到 DataScan 资源定义中:
"executionIdentity": { "serviceAccount": { "email": "YOUR_SERVICE_ACCOUNT_EMAIL" } }
替换以下内容:
YOUR_SERVICE_ACCOUNT_EMAIL:您要使用的服务账号的电子邮件地址。
如需使用最终用户凭据,请改用 userCredential 对象:
"executionIdentity": { "userCredential": {} }
创建数据分析扫描
控制台
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击创建数据分析扫描。
可选:输入显示名称。
输入 ID。请参阅资源命名惯例。
(可选)输入说明。
在表字段中,点击浏览。选择要扫描的表,然后点击选择。仅支持标准 BigQuery、Iceberg REST Catalog、SAP BDC Delta Lake 和 Apache Hive on Lakehouse 表。 Google Cloud
对于多区域数据集中的表,请选择要在其中创建数据扫描的区域。
如需浏览在 Knowledge Catalog 数据湖中整理的表,请点击在 Knowledge Catalog 数据湖中浏览。
在模式部分中,选择以下选项之一:
标准版:使用可自定义的扫描设置分析数据。此为默认模式。
轻量级:通过低延迟、低保真度的扫描提供快速分析。
如果您选择了标准模式,请配置以下选项。选择轻量级模式时,系统不会显示这些选项。
在范围字段中,选择增量或所有数据。
如果您选择增量数据,请在时间戳列字段中,从 BigQuery 表中选择类型为
DATE或TIMESTAMP的列。Knowledge Catalog 使用此列来识别添加的新记录。对于按DATE或TIMESTAMP类型的列进行分区的表,建议将此列用作分区列。可选:如需过滤数据,请执行以下任一操作:
如需按行过滤,请选中过滤行复选框。 输入一个有效的 SQL 表达式,该表达式可用于 GoogleSQL 语法中的
WHERE子句。例如:col1 >= 0。过滤条件可以是多个列的 SQL 条件的组合。例如:
col1 >= 0 AND col2 < 10。如需按列过滤,请选中过滤列复选框。
如需在数据分析扫描中包含列,请在包含列字段中点击浏览。选择要添加的列,然后点击选择。
如需从数据分析扫描中排除列,请在排除列字段中点击浏览。选择要排除的列,然后点击选择。
如需对数据分析扫描应用采样,请在采样规模列表中选择采样百分比。选择一个范围介于 0.0% 到 100.0% 之间的百分比值,最多精确到小数点后 3 位。
对于较大的数据集,请选择一个较低的采样百分比。例如,对于一个 1 PB 的表,如果您输入的值介于 0.1% 到 1.0% 之间,则数据分析会采样 1-10 TB 的数据。
采样数据中必须至少有 100 条记录才能返回结果。
对于增量数据扫描,数据分析扫描会对最新增量应用采样。
可选:在Google Cloud 控制台中源表的 BigQuery 和 Knowledge Catalog 页面中发布数据分析扫描结果。选中将结果发布到 Knowledge Catalog 复选框。
您可以在源表的 BigQuery 和 Knowledge Catalog 页面中的数据分析标签页上查看最新扫描结果。如需使用户能够访问已发布的扫描结果,请参阅本文档的授予对数据分析扫描结果的访问权限部分。
在以下情况下,发布选项可能不可用:
- 您没有相应表的所需权限。
- 另一数据分析扫描已设置为发布结果。
在时间表部分中,选择以下选项之一:
点击继续。
可选:将扫描结果导出到 BigQuery 标准表。在将扫描结果导出到 BigQuery 表部分中,执行以下操作:
在选择 BigQuery 数据集字段中,点击浏览。选择一个 BigQuery 数据集,用于存储数据分析扫描结果。
在 BigQuery 表字段中,指定用于存储数据分析扫描结果的表。如果您使用的是现有表,请确保该表与导出表架构兼容。如果指定的表不存在,Knowledge Catalog 会为您创建该表。
可选:添加标签。标签是键值对,可用于将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。
如需创建扫描,请点击创建。
如果您将时间表设置为“按需”,还可以点击运行扫描立即运行扫描。
gcloud
如需创建数据分析扫描,请使用 gcloud dataplex datascans create data-profile 命令。
如果源数据在 Knowledge Catalog 数据湖中整理,请添加 --data-source-entity 标志:
gcloud dataplex datascans create data-profile DATASCAN \ --location=LOCATION \ --data-source-entity=DATA_SOURCE_ENTITY
如果源数据未在 Knowledge Catalog 数据湖中整理,请添加 --data-source-resource 标志:
gcloud dataplex datascans create data-profile DATASCAN \ --location=LOCATION \ --data-source-resource=DATA_SOURCE_RESOURCE
执行以下变量替换操作:
DATASCAN:数据分析扫描的名称。LOCATION:要在其中创建数据分析扫描的 Google Cloud 区域。DATA_SOURCE_ENTITY:包含数据分析扫描所用数据的 Knowledge Catalog 实体。例如projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity。DATA_SOURCE_RESOURCE:包含数据分析扫描所用数据的资源的名称。例如//bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table。
C#
C#
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog C# API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
Go
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Go API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
Java
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Java API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
Python
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Python API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
Ruby
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Ruby API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需创建数据分析扫描,请使用 dataScans.create 方法。
导出表架构
如果您要将数据分析扫描结果导出到现有 BigQuery 表,请确保该表与以下表架构兼容:
| 列名 | 列数据类型 | 子字段名称(如果适用) | 子字段数据类型 | 模式 | 示例 |
|---|---|---|---|---|---|
| data_profile_scan | struct/record |
resource_name |
string |
nullable | //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan |
project_id |
string |
nullable | test-project |
||
location |
string |
nullable | us-central1 |
||
data_scan_id |
string |
nullable | test-datascan |
||
| data_source | struct/record |
resource_name |
string |
nullable |
实体用例:
表用例:
|
dataplex_entity_project_id |
string |
nullable | test-project |
||
dataplex_entity_project_number |
integer |
nullable | 123456789012 |
||
dataplex_lake_id |
string |
nullable |
(仅在来源为实体时有效)
|
||
dataplex_zone_id |
string |
nullable |
(仅在来源为实体时有效)
|
||
dataplex_entity_id |
string |
nullable |
(仅在来源为实体时有效)
|
||
table_project_id |
string |
nullable | dataplex-table |
||
table_project_number |
int64 |
nullable | 345678901234 |
||
dataset_id |
string |
nullable |
(仅在来源为表时有效)
|
||
table_id |
string |
nullable |
(仅在来源为表时有效)
|
||
| data_profile_job_id | string |
nullable | caeba234-cfde-4fca-9e5b-fe02a9812e38 |
||
| data_profile_job_configuration | json |
trigger |
string |
nullable | ondemand/schedule |
incremental |
boolean |
nullable | true/false |
||
sampling_percent |
float |
nullable |
(0-100)
|
||
row_filter |
string |
nullable | col1 >= 0 AND col2 < 10 |
||
column_filter |
json |
nullable | {"include_fields":["col1","col2"], "exclude_fields":["col3"]} |
||
| job_labels | json |
nullable | {"key1":value1} |
||
| job_start_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
| job_end_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
| job_rows_scanned | integer |
nullable | 7500 |
||
| column_name | string |
nullable | column-1 |
||
| column_type | string |
nullable | string |
||
| column_mode | string |
nullable | repeated |
||
| percent_null | float |
nullable |
(0.0-100.0)
|
||
| percent_unique | float |
nullable |
(0.0-100.0)
|
||
| min_string_length | integer |
nullable |
(仅在列类型为字符串时有效)
|
||
| max_string_length | integer |
nullable |
(仅在列类型为字符串时有效)
|
||
| average_string_length | float |
nullable |
(仅在列类型为字符串时有效)
|
||
| min_value | float |
nullable | (仅在列类型为数值时有效 - 整数/浮点数) | ||
| max_value | float |
nullable | (仅在列类型为数值时有效 - 整数/浮点数) | ||
| average_value | float |
nullable | (仅在列类型为数值时有效 - 整数/浮点数) | ||
| standard_deviation | float |
nullable | (仅在列类型为数值时有效 - 整数/浮点数) | ||
| quartile_lower | integer |
nullable | (仅在列类型为数值时有效 - 整数/浮点数) | ||
| quartile_median | integer |
nullable | (仅在列类型为数值时有效 - 整数/浮点数) | ||
| quartile_upper | integer |
nullable | (仅在列类型为数值时有效 - 整数/浮点数) | ||
| top_n | struct/record - repeated |
value |
string |
nullable | "4009" |
count |
integer |
nullable | 20 |
||
percent |
float |
nullable | 10(表示 10%) |
导出表设置
将数据导出到 BigQueryExport 表时,请遵循以下准则:
- 对于字段
resultsTable,请使用以下格式://bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}。 - 使用 BigQuery 标准表。
- 如果在创建或更新扫描时该表不存在,Knowledge Catalog 会为您创建该表。
- 默认情况下,该表按
job_start_time列每天进行分区。 - 如果您希望以其他配置对表进行分区,或者不希望进行分区,请使用所需的架构和配置重新创建表,然后将预先创建的表作为结果表提供。
- 请确保结果表与源表位于同一位置。
- 如果为项目配置了 VPC-SC,则结果表必须与源表位于同一 VPC-SC 边界内。
- 如果在扫描执行阶段修改了表,则当前正在运行的作业会导出到之前的结果表,并且表更改会从下一个扫描作业开始生效。
- 请勿修改表架构。如果您需要自定义列,请基于表创建视图。
- 为了降低费用,请根据您的应用场景为分区设置失效时间。如需了解详情,请参阅如何设置分区失效时间。
创建多个数据分析扫描
您可以使用 Google Cloud 控制台,同时为 BigQuery 数据集中的多个表配置数据分析扫描。
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击创建数据分析扫描。
选择多次数据分析扫描选项。
输入 ID 前缀。Knowledge Catalog 会使用提供的前缀和唯一后缀自动生成扫描 ID。
为所有数据分析扫描输入说明。
在数据集字段中,点击浏览。选择一个数据集以从中选择表。点击选择。
如果数据集是多区域级数据集,请选择要在其中创建数据分析扫描的区域。
在模式部分中,选择以下选项之一:
标准版:使用可自定义的扫描设置分析数据。此为默认模式。
轻量级:通过低延迟、低保真度的扫描提供快速洞见。此功能处于预览版阶段。
如果您选择了标准模式,请为扫描配置以下设置。选择轻量级模式时,系统不会显示这些设置。
在范围字段中,选择增量或所有数据。
如果您选择增量数据,则只能选择按
DATE或TIMESTAMP类型的列进行分区的表。如需对数据分析扫描应用采样,请在采样规模列表中选择采样百分比。
选择一个介于 0.0% 到 100.0% 之间的百分比值,最多精确到小数点后 3 位。
可选:在Google Cloud 控制台中源表的 BigQuery 和 Knowledge Catalog 页面中发布数据分析扫描结果。选中将结果发布到 Knowledge Catalog 复选框。
您可以在源表的 BigQuery 和 Knowledge Catalog 页面中的数据分析标签页上查看最新扫描结果。如需允许用户访问已发布的扫描结果,请参阅本文档的授予对数据分析扫描结果的访问权限部分。
在时间表部分中,选择以下选项之一:
点击继续。
在选择表字段中,点击浏览。选择一个或多个要扫描的表,然后点击选择。
点击继续。
可选:将扫描结果导出到 BigQuery 标准表。在将扫描结果导出到 BigQuery 表部分中,执行以下操作:
在选择 BigQuery 数据集字段中,点击浏览。选择一个 BigQuery 数据集,用于存储数据分析扫描结果。
在 BigQuery 表字段中,指定用于存储数据分析扫描结果的表。如果您使用的是现有表,请确保该表与导出表架构兼容。如果指定的表不存在,Knowledge Catalog 会为您创建该表。
Knowledge Catalog 会为所有数据分析扫描使用同一结果表。
可选:添加标签。标签是键值对,可用于将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。
如需创建扫描,请点击创建。
如果您将时间表设置为“按需”,还可以点击运行扫描立即运行扫描。
运行数据分析扫描
控制台
-
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
- 点击要运行的数据分析扫描。
- 点击立即运行。
gcloud
如需运行数据分析扫描,请使用 gcloud dataplex datascans run 命令:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION
执行以下变量替换操作:
DATASCAN:数据分析扫描的名称。LOCATION:在其中创建数据分析扫描的 Google Cloud 区域。
C#
C#
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog C# API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
Go
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Go API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
Java
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Java API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
Python
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Python API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
Ruby
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Ruby API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需运行数据分析扫描,请使用 dataScans.run 方法。
Airflow
如需在 Managed Service for Apache Airflow (Cloud Composer) 中使用有向无环图 (DAG) 运行数据剖析扫描,请使用 DataplexRunDataProfileScanOperator:
from datetime import datetime
from airflow import DAG
from airflow.providers.google.cloud.operators.dataplex import DataplexRunDataProfileScanOperator
with DAG(
"dataplex_data_profile_scan",
start_date=datetime(2026, 1, 1),
schedule_interval="@daily",
catchup=False,
) as dag:
run_profile_scan = DataplexRunDataProfileScanOperator(
task_id="run_dataplex_profile_scan",
project_id="PROJECT_ID",
region="REGION",
data_scan_id="DATASCAN_ID",
)
执行以下变量替换操作:
PROJECT_ID:您的 Google Cloud 项目 ID。REGION:在其中创建数据分析扫描的 Google Cloud 区域。DATASCAN_ID:数据分析扫描的 ID。
取消数据分析扫描作业
如果数据分析扫描作业的运行时间超出预期,或者启动时配置不正确,您可以取消该作业。这是一项尽力而为的操作。如果作业已处于终止状态(例如 SUCCEEDED 或 FAILED),则系统会忽略取消请求。
所需的角色和权限
如需获得取消数据分析扫描作业所需的权限,请让您的管理员为您授予项目的 Dataplex Editor (roles/dataplex.editor) 或 Dataplex DataScan Administrator (roles/dataplex.dataScanAdmin) IAM 角色。
取消作业
您可以使用 REST API 取消正在运行或待处理的数据剖析扫描作业。
控制台
在 Google Cloud 控制台中,前往数据分析和质量评估页面。
点击包含要取消的作业的数据分析扫描的名称。
在作业历史记录标签页中,找到状态为正在运行或待处理的作业。
点击与相应作业关联的取消按钮。
REST
使用 projects.locations.dataScans.jobs.cancel 方法。
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID:cancel
替换以下内容:
PROJECT_ID:项目 ID。LOCATION:数据扫描所在的区域。DATASCAN_ID:数据扫描的 ID。JOB_ID:要取消的作业的 ID。
查看数据分析扫描结果
控制台
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击数据分析扫描的名称。
概览部分显示有关最近作业的信息,包括扫描运行时间、扫描的表记录数以及作业状态。
数据分析扫描配置部分显示有关扫描的详细信息。
如需查看有关作业的详细信息,例如扫描表的列、扫描中发现的列的统计信息以及作业日志,请点击作业历史记录标签页。然后,点击作业 ID。
gcloud
如需查看数据分析扫描作业的结果,请使用 gcloud dataplex datascans jobs describe 命令:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
执行以下变量替换操作:
JOB:数据分析扫描作业的作业 ID。LOCATION:在其中创建数据分析扫描的 Google Cloud 区域。DATASCAN:作业所属的数据分析扫描的名称。--view=FULL:如需查看扫描作业结果,请指定FULL。
C#
C#
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog C# API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
Go
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Go API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
Java
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Java API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
Python
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Python API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
Ruby
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Ruby API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需查看数据分析扫描的结果,请使用 dataScans.get 方法。
查看已发布的结果
如果数据分析扫描结果发布到 Google Cloud 控制台中的 BigQuery 和 Knowledge Catalog 页面,则您可以在源表的数据分析标签页中查看最新扫描结果。
在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索页面。
搜索并选择表格。
点击数据分析标签页。
系统会显示最新发布的结果。
查看最近数据分析扫描作业
控制台
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击数据分析扫描的名称。
点击最新作业结果标签页。
如果至少有一次成功完成的运行,最新作业结果标签页会提供有关最近作业的信息。该标签页会列出已扫描的表列,以及在扫描中发现的列的相关统计信息。
gcloud
如需查看最近成功的数据分析扫描,请使用 gcloud dataplex datascans describe 命令:
gcloud dataplex datascans describe DATASCAN \ --location=LOCATION \ --view=FULL
执行以下变量替换操作:
DATASCAN:要查看其最近作业的数据分析扫描的名称。LOCATION:在其中创建数据分析扫描的 Google Cloud 区域。--view=FULL:如需查看扫描作业结果,请指定FULL。
REST
如需查看最近扫描作业,请使用 dataScans.get 方法。
查看历史扫描结果
Knowledge Catalog 会保存最近 300 个作业或过去一年(以先到者为准)的数据分析扫描历史记录。
控制台
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击数据分析扫描的名称。
点击作业历史记录标签页。
作业历史记录标签页提供有关过去作业的信息,例如每个作业中扫描的记录数、作业状态以及作业运行时间。
如需查看有关作业的详细信息,请点击作业 ID 列中的任何作业。
gcloud
如需查看历史数据分析扫描作业,请使用 gcloud dataplex datascans jobs list 命令:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN
执行以下变量替换操作:
LOCATION:在其中创建数据分析扫描的 Google Cloud 区域。DATASCAN:要查看作业的数据分析扫描的名称。
C#
C#
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog C# API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
Go
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Go API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
Java
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Java API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
Python
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Python API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
Ruby
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Ruby API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需查看历史数据分析扫描作业,请使用 dataScans.jobs.list 方法。
作业状态
数据扫描作业可能具有以下状态:
PENDING:作业已创建但尚未开始运行。在此状态下,扫描会主动设置基础设施或获取 slot。此阶段可能需要 10 到 20 秒或更长时间,具体取决于架构复杂性和资源争用情况。RUNNING:作业正在运行。CANCELING:作业正在取消。CANCELLED:作业已成功取消。SUCCEEDED:作业成功完成。由于存在后期处理步骤(例如聚合和元数据同步),完成状态可能会比实际查询完成时间晚最多 60 秒。FAILED:作业因错误而失败。由于存在后期处理步骤(例如聚合和元数据同步),完成状态可能会比实际查询完成时间晚最多 60 秒。SUCCEEDED_WITH_ERRORS:作业成功完成,但在执行期间出现了一些错误。
监控最佳实践
在监控数据扫描作业时,请牢记以下最佳实践:
避免频繁轮询:避免频繁轮询(例如,每 1 到 5 秒调用一次
GetJob或等效函数)。频繁轮询会浪费 API 配额,并且不会加快状态转换。使用指数退避算法:如果无法避免重复轮询,请使用指数退避算法,从 10 到 15 秒开始。
使用异步事件驱动型解耦(推荐):使用侦听 Cloud Audit Logs (
cloudaudit.googleapis.com) 的 Eventarc 触发器,而不是同步 API 轮询。您可以使用这些触发器在 DataScan 作业完成事件发生后立即启动下游工作流。这种方法可绕过 API 轮询限制,节省配额并缩短感知延迟时间。
授予对数据分析扫描结果的访问权限
如需让贵组织中的用户查看扫描结果,请执行以下操作:
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击您要共享其结果的数据分析扫描。
点击权限标签页。
执行以下操作:
- 如需向主账号授予访问权限,请点击 授予访问权限。向关联的主账号授予 Dataplex DataScan DataViewer 角色。
- 如需移除主账号的访问权限,请选择要从中移除 Dataplex DataScan DataViewer 角色的主账号。点击 移除访问权限,然后在系统提示时进行确认。
管理特定表的数据分析扫描
本文档中的步骤介绍了如何使用 Google Cloud 控制台中的 Knowledge Catalog 数据分析和质量评估页面来管理项目中的数据分析扫描。
您还可以在使用特定表时创建和管理数据分析扫描。在 Google Cloud 控制台中,在相应表的 Knowledge Catalog 页面上,使用数据分析标签页。执行以下操作:
在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索页面。
搜索并选择表格。
点击数据分析标签页。
根据表是否具有已发布结果的数据分析扫描,您可以通过以下方式处理表的数据分析扫描:
数据分析扫描结果已发布:页面上会显示最新发布的扫描结果。
如需管理此表的数据分析扫描,请点击数据分析扫描,然后从以下选项中进行选择:
创建新扫描:创建新的数据分析扫描。如需了解详情,请参阅本文档中的创建数据分析扫描部分。从表的详情页面创建扫描时,系统会预先选择该表。
立即运行:运行扫描。
修改扫描配置:修改设置,包括显示名称、过滤条件、采样规模和时间表。
管理扫描权限:控制哪些人可以访问扫描结果。 如需了解详情,请参阅本文档的授予对数据分析扫描结果的访问权限部分。
查看历史结果:查看之前的数据分析扫描作业的详细信息。如需了解详情,请参阅本文档中的查看数据分析扫描结果和查看历史扫描结果部分。
查看所有扫描:查看适用于相应表的数据分析扫描列表。
数据分析扫描结果未发布:点击快速数据分析旁边的菜单,然后从以下选项中进行选择:
自定义数据分析:创建新的数据分析扫描。如需了解详情,请参阅本文档中的创建数据分析扫描部分。从表的详情页面创建扫描时,系统会预先选择该表。
查看先前的分析:查看适用于此表的数据分析扫描的列表。
更新数据分析扫描
控制台
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击数据分析扫描的名称。
点击修改,然后修改相应值。
点击保存。
gcloud
如需更新数据分析扫描,请使用 gcloud dataplex datascans update data-profile 命令:
gcloud dataplex datascans update data-profile DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
执行以下变量替换操作:
DATASCAN:要更新的数据分析扫描的名称。LOCATION:在其中创建数据分析扫描的 Google Cloud 区域。DESCRIPTION:数据分析扫描的新说明。
C#
C#
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog C# API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
Go
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Go API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
Java
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Java API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
Python
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Python API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
Ruby
试用此示例之前,请按照《Knowledge Catalog 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Knowledge Catalog Ruby API 参考文档。
如需向 Knowledge Catalog 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需修改数据分析扫描,请使用 dataScans.patch 方法。
删除数据分析扫描
控制台
在 Google Cloud 控制台中,前往 Knowledge Catalog 数据分析和质量评估页面。
点击要删除的扫描。
点击删除,然后在系统提示时进行确认。
gcloud
如需删除数据分析扫描,请使用 gcloud dataplex datascans delete 命令:
gcloud dataplex datascans delete DATASCAN \ --location=LOCATION --async
执行以下变量替换操作:
DATASCAN:要删除的数据分析扫描的名称。LOCATION:在其中创建数据分析扫描的 Google Cloud 区域。
REST
如需删除数据分析扫描,请使用 dataScans.delete 方法。
后续步骤
- 了解如何通过生成数据分析洞见来探索数据。
- 了解数据分析。
- 了解自动数据质量。
- 了解如何使用自动数据质量。