本页介绍了如何使用 Google Cloud 控制台、Google Cloud CLI 或 REST API 创建数据配置文件扫描。
如需详细了解 Dataplex 数据配置文件扫描,请参阅数据剖析简介。
须知事项
在 Google Cloud 控制台中,启用 Dataplex API。
权限
如需分析 BigQuery 表,您需要以下权限:
要在 BigQuery 表上运行数据配置文件扫描,您需要具有读取 BigQuery 表的权限,并且拥有在用于扫描表的项目中创建 BigQuery 作业的权限。
如果 BigQuery 表和数据配置文件扫描位于不同的项目中,则您需要向 Dataplex 服务帐号授予相应 BigQuery 表的读取权限。
如果 BigQuery 数据组织在 Dataplex 数据湖中,则为了创建数据扫描扫描,您需要 Dataplex 角色
roles/dataplex.metadataReader
和roles/dataplex.viewer
。这会授予以下权限:dataplex.lakes.list
dataplex.lakes.get
dataplex.zones.list
dataplex.zones.get
dataplex.entities.list
dataplex.entities.get
dataplex.operations.get
如果您要从 Cloud Storage 扫描 BigQuery 外部表,请为 Dataplex 服务帐号分配 Cloud Storage Object Viewer (
roles/storage.objectViewer
) 角色或以下存储桶权限:storage.buckets.get
storage.objects.get
如果要在 Google Cloud 控制台的源表的 BigQuery 和 Data Catalog 页面中发布数据扫描扫描结果,您必须获得 BigQuery Data Editor (
roles/bigquery.dataEditor
) IAM 角色或表的bigquery.tables.update
权限。如要将扫描结果导出到 BigQuery 表,您的 Dataplex 服务帐号需要具有 BigQuery Data Editor (
roles/bigquery.dataEditor
) 角色。这会授予以下权限:bigquery.datasets.get
bigquery.tables.create
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.update
bigquery.tables.updateData
如果您需要访问受 BigQuery 列级访问权限政策保护的列,请为这些列分配 Dataplex 服务帐号权限。创建或更新数据扫描的用户还需要列的访问权限。
如果表启用了 BigQuery 行级访问权限政策,则您只能扫描 Dataplex 服务帐号可见的行。请注意,系统不会针对行级政策评估个人用户的访问权限。
数据扫描角色和权限
如需使用数据剖析,项目管理员需要分配具有已授予权限的预定义角色,或授予各项权限。这些角色如下所示:
roles/dataplex.dataScanAdmin
:拥有对DataScan
资源的完整访问权限。roles/dataplex.dataScanEditor
:拥有对DataScan
资源的写入权限。roles/dataplex.dataScanViewer
:拥有对DataScan
项资源的读取权限(不包括结果)。roles/dataplex.dataScanDataViewer
:对DataScan
资源(包括结果)的读取权限。
下表列出了数据扫描权限:
权限名称 | 授予执行以下操作的权限: |
---|---|
dataplex.datascans.create |
创建 DataScan |
dataplex.datascans.delete |
删除 DataScan |
dataplex.datascans.get |
查看 DataScan 项详细信息(不包括结果) |
dataplex.datascans.getData |
查看DataScan 详情(包括结果) |
dataplex.datascans.list |
列出 DataScan |
dataplex.datascans.run |
执行 DataScan |
dataplex.datascans.update |
更新 DataScan 的说明 |
dataplex.datascans.getIamPolicy |
查看扫描的当前 IAM 权限 |
dataplex.datascans.setIamPolicy |
设置扫描的 IAM 权限 |
创建数据分析扫描
控制台
在 Google Cloud 控制台中,转到配置文件页面。
点击创建数据分析扫描。
输入显示名称。
如需更改自动生成的扫描 ID,请提供您自己的 ID。请参阅资源命名惯例。
(可选)输入说明。
在表格字段中,点击浏览。
选择一个表,然后点击选择。
在范围字段中,选择增量或整个数据。
- 如果选择增量数据,请在时间戳列字段中,从 BigQuery 表中选择类型为
DATE
或TIMESTAMP
且单调递增的列,该列可用于识别新记录。对于按DATE
或TIMESTAMP
类型的列分区的表,建议使用分区列作为时间戳字段。
- 如果选择增量数据,请在时间戳列字段中,从 BigQuery 表中选择类型为
要对数据扫描进行扫描,请在采样规模列表中,选择一个采样百分比。
- 选择介于 0.0% 到 100.0% 之间的百分比值(最多包含 3 位小数)。
- 对于较大的数据集,请选择较低的抽样百分比。例如,对于约 1 PB 的表,如果输入的值介于 0.1% 到 1.0% 之间,则 Dataplex 样本会介于 1-10 TB 之间。
- 您需要获得至少 100 条抽样数据才能返回结果。
- 对于增量数据扫描,Dataplex 会将采样应用于最新增量。
如要按行过滤,请点击过滤条件,然后选择过滤行。
请输入可在 BigQuery 标准 SQL 语法中的
WHERE
子句中使用的有效 SQL 表达式。例如:col1 >= 0
。过滤条件可以由多个列的 SQL 条件组合使用。例如:
col1 >= 0 AND col2 < 10
。
可选:点击过滤条件。选中过滤列复选框。
a. 在包含列字段中,点击浏览。
- 指定要包含在配置文件扫描中的任何列。通过选中相应复选框并点击选择,选择您所选的列。
b. 在排除列字段中,点击浏览。
- 指定要从配置文件扫描中排除的任何列。通过选中相应复选框并点击选择,选择您所选的列。
可选:在 Google Cloud 控制台的源表的 BigQuery 和 Data Catalog 页面中发布数据配置文件扫描结果。选中将结果发布到 BigQuery 和 Dataplex Catalog 界面复选框。
您可以在源表的 BigQuery 和 Data Catalog 页面的数据配置文件标签页中查看最新的扫描结果。如需让用户能够访问已发布的扫描结果,请参阅共享已发布的结果。
在以下情况下,您可能无法使用发布方式:
- 您没有所需的表权限。
- 另一个数据质量扫描已设置为发布结果。
如需详细了解查看已发布结果所需的权限,请参阅权限。
可选:将扫描结果导出到 BigQuery 标准表。点击浏览以选择现有的 BigQuery 数据集来存储数据配置文件扫描结果。
如果指定的表不存在,Dataplex 将为您创建它。如果您使用的是现有表,请确保它与本部分稍后介绍的表架构兼容。
可选:添加标签。标签是
key:value
对,可用于将相关对象组合在一起或其他 Google Cloud 资源。在时间表选项下方,选择以下选项之一:
重复:按时间表(每天、每周、每月或自定义)运行数据分析文件扫描作业。指定扫描的运行频率和扫描时间。如果您选择自定义方式,请使用 cron 格式指定时间表。
按需:创建您的数据配置文件扫描并随时使用“立即运行”操作运行。
点击创建。
gcloud
如需创建数据分析文件扫描,请运行以下命令:
gcloud dataplex datascans create data-profile DATASCAN \ --location=LOCATION \ --data-source-entity=DATA_SOURCE_ENTITY | --data-source-resource=DATA_SOURCE_RESOURCE
执行以下变量替换操作:
DATASCAN
:数据分析扫描的名称。LOCATION
:要在其中创建数据配置文件扫描的 Google Cloud 区域。DATA_SOURCE_ENTITY
:包含数据配置文件扫描数据的 Dataplex 实体。例如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
。
如需了解可选参数,请参阅 gcloud CLI 参考文档。
REST
使用 API Explorer 创建数据分析扫描。
创建多个数据配置文件扫描
控制台
在 Google Cloud 控制台中,转到配置文件页面。
点击创建多个配置文件扫描。
输入 ID 前缀。Dataplex 使用提供的前缀和唯一后缀自动生成扫描 ID。
输入所有数据配置文件扫描的说明。
在数据集字段中,点击浏览。选择要从中选择表的数据集。点击选择。
如果数据集为多区域数据集,请选择一个要在其中创建数据配置文件扫描的区域。
选择常见配置选项:
在范围字段中,选择增量或整个数据。
要对数据配置文件扫描应用采样,请在采样规模列表中,选择一个采样百分比。
选择介于 0.0% 到 100.0% 之间的百分比值(最多包含 3 位小数)。
若要显示所有扫描的结果,请选择发布。您可以在 BigQuery 或 Data Catalog 表详细信息的分析标签页中查看结果。请确保您拥有源表的
bigquery.tables.update
权限。在时间表选项下方,选择以下选项之一:
重复:按时间表运行您的数据配置文件扫描作业。指定扫描频率(每天、每周、每月或自定义)以及何时运行。如果您选择自定义方式,请使用 cron 格式指定时间表。
按需:创建您的数据配置文件扫描作业并随时运行这些作业,只需点击运行即可。
在选择表选项中,点击浏览。选择要扫描的一个或多个表。点击选择。
选择其他设置:
如需将数据配置文件扫描结果保存到您选择的 BigQuery 表,请在将扫描结果导出到 BigQuery 表中选择一个表。对于每次扫描作业,Dataplex 都会自动复制结果并将其保存到此表中。
点击浏览以选择数据集。
输入保存结果的 BigQuery 表。可以是其他 Dataplex 数据配置文件扫描功能使用的现有表,以保存结果。如果没有使用指定名称的此类表,Dataplex 将创建该表。
添加标签,为您的数据配置文件扫描添加注解。
点击运行扫描以创建并运行所有扫描。此选项仅适用于按需扫描。
点击创建以创建所有扫描。
gcloud
不受支持。
REST
不受支持。
导出表架构
如果要将数据配置文件扫描结果导出到现有 BigQuery 表,请确保它与以下表架构兼容:
列名 | 列数据类型 | 子字段名称 (如果适用) |
子字段数据类型 | 模式 | 示例 |
---|---|---|---|---|---|
数据配置文件扫描 | struct/record |
resource_name |
string |
是否可为 null | //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan |
project_id |
string |
是否可为 null | test-project |
||
location |
string |
是否可为 null | us-central1 |
||
data_scan_id |
string |
是否可为 null | test-datascan |
||
数据源 | struct/record |
resource_name |
string |
是否可为 null | 实体大小写://dataplex.googleapis.com/projects/test-project/locations/europe-west2/lakes/test-lake/zones/test-zone/entities/test-entity
表大小写: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
|
dataplex_entity_project_id |
string |
是否可为 null | test-project |
||
dataplex_entity_project_number |
integer |
是否可为 null | 123456789012 |
||
dataplex_lake_id |
string |
是否可为 null | (仅当来源为实体时才有效)test-lake
|
||
dataplex_zone_id |
string |
是否可为 null | (仅当来源是实体时才有效)test-zone |
||
dataplex_entity_id |
string |
是否可为 null | (仅当来源是实体时才有效)test-entity |
||
table_project_id |
string |
是否可为 null | dataplex-table |
||
table_project_number |
int64 |
是否可为 null | 345678901234 |
||
dataset_id |
string |
是否可为 null | (仅在来源为表格的情况下有效)test-dataset |
||
table_id |
string |
是否可为 null | (仅在来源为表格的情况下有效)test-table |
||
data_profile_job_id | string |
是否可为 null | caeba234-cfde-4fca-9e5b-fe02a9812e38 |
||
data_profile_job_configuration | json |
trigger |
string |
是否可为 null | ondemand /schedule |
incremental |
boolean |
是否可为 null | true /false |
||
sampling_percent |
float |
是否可为 null | (0-100)20.0 (表示 20%) |
||
row_filter |
string |
是否可为 null | col1 >= 0 AND col2 < 10 |
||
column_filter |
json |
是否可为 null | {"include_fields":["col1","col2"], "exclude_fields":["col3"]} |
||
作业标签 | json |
是否可为 null | {"key1":value1} |
||
作业开始时间 | timestamp |
是否可为 null | 2023-01-01 00:00:00 UTC |
||
job_end_time | timestamp |
是否可为 null | 2023-01-01 00:00:00 UTC |
||
作业扫描 | integer |
是否可为 null | 7500 |
||
列名称 | string |
是否可为 null | column-1 |
||
列类型 | string |
是否可为 null | string |
||
列模式 | string |
是否可为 null | repeated |
||
百分比 null | float |
是否可为 null | (0.0-100.0)20.0 (表示 20%) |
||
百分比 (%) | float |
是否可为 null | (0.0-100.0)92.5 |
||
最小字符串长度 | integer |
是否可为 null | (仅在列类型为字符串时有效)10 |
||
最大字符串长度 | integer |
是否可为 null | (仅在列类型为字符串时有效)4 |
||
平均字符串长度 | float |
是否可为 null | (仅在列类型为字符串时有效)7.2 |
||
min_value | float |
是否可为 null | (仅在列类型为数字 - 整数/浮点数时有效) | ||
max_value | float |
是否可为 null | (仅在列类型为数字 - 整数/浮点数时有效) | ||
平均值 | float |
是否可为 null | (仅在列类型为数字 - 整数/浮点数时有效) | ||
标准偏差 | float |
是否可为 null | (仅在列类型为数字 - 整数/浮点数时有效) | ||
四分位_低 | integer |
是否可为 null | (仅在列类型为数字 - 整数/浮点数时有效) | ||
四分位中位数 | integer |
是否可为 null | (仅在列类型为数字 - 整数/浮点数时有效) | ||
四分位 | integer |
是否可为 null | (仅在列类型为数字 - 整数/浮点数时有效) | ||
顶部 | struct/record - repeated |
value |
string |
是否可为 null | "4009" |
count |
integer |
是否可为 null | 20 |
||
percent |
float |
是否可为 null | 10 (表示 10%) |
导出表设置
导出到 BigQueryExport 表时,请遵循以下准则:
控制台
对于字段
resultsTable
,请使用以下格式://bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}
。使用 BigQuery 标准表。
如果在创建或更新扫描时该表不存在,Dataplex 将为您创建该表。
默认情况下,该表按
job_start_time
列进行分区。如果您希望对其他配置进行分区,或者不想使用该分区,请使用所需的架构和配置重新创建表,然后将预创建的表作为结果表提供。
确保结果表与源表位于同一位置。
如果项目配置了 VPC-SC,则结果表必须与源表位于同一 VPC-SC 边界内。
如果在扫描执行阶段修改表,则当前正在运行的作业将导出到上一个结果表,并且表更改会从下一个扫描作业生效。
请勿修改表架构。如果您需要自定义列,请在表上创建一个视图。
为了降低费用,请根据您的用例为分区设置过期时间。 如需了解详情,请参阅如何设置分区过期时间。
gcloud
REST
运行数据分析扫描
控制台
- 在 Google Cloud 控制台中,转到 Dataplex 配置文件页面。转到个人资料
- 点击数据配置文件扫描以运行。
- 点击立即运行。
gcloud
如需运行数据配置文件扫描,请运行以下命令:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION
执行以下变量替换操作:
DATASCAN
:数据分析扫描的名称。LOCATION
:创建数据配置文件扫描的 Google Cloud 区域。
如需了解可选参数,请参阅 gcloud CLI 参考文档。
REST
使用 API Explorer 运行您的数据配置文件扫描。
查看数据分析文件扫描作业结果
控制台
您创建的所有数据配置文件扫描操作都会显示在配置文件页面中。
要查看扫描的详细结果,请点击扫描名称。
概览部分会显示扫描运行时间、每次运行的时间、扫描的表记录数量以及作业状态。
配置文件扫描配置部分包含有关扫描的详细信息。
gcloud
如需查看数据配置文件扫描作业的结果,请运行以下命令:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
执行以下变量替换操作:
JOB
:数据分析文件扫描作业的 ID。LOCATION
:创建数据配置文件扫描的 Google Cloud 区域。DATASCAN
:作业所属的数据配置文件扫描的名称。--view=FULL
:如需查看扫描作业结果,请指定FULL
。
如需了解可选参数,请参阅 gcloud CLI 参考文档。
REST
使用 API Explorer 查看数据配置文件扫描结果。
查看最近的数据配置文件扫描作业
控制台
至少有一项成功完成的作业时,最新作业结果标签页提供最新作业的相关信息。它列出了扫描表的列以及有关在扫描中找到的列的统计信息。
gcloud
如需查看最近一次成功的数据配置文件扫描,请运行以下命令:
gcloud dataplex datascans describe DATASCAN \ --location=LOCATION \ --view=FULL
执行以下变量替换操作:
DATASCAN
:以查看最新作业的数据配置文件扫描的名称。LOCATION
:创建数据配置文件扫描的 Google Cloud 区域。--view=FULL
:如需查看扫描作业结果,请指定FULL
。
如需了解可选参数,请参阅 gcloud CLI 参考文档。
REST
使用 API Explorer 查看最近的扫描作业。
查看所有数据分析扫描作业
Dataplex 会保存过去 300 个作业或过去一年(二者取其先)的数据配置文件扫描历史记录。
控制台
作业历史记录标签页提供了有关过往作业的信息。它列出了所有作业、每个作业中扫描的记录数、作业状态、作业执行时间等。
如需查看作业的详细信息,请点击作业 ID 下的任何作业。
gcloud
如需查看数据配置文件扫描的所有作业,请运行以下命令:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN
执行以下变量替换操作:
LOCATION
:创建数据配置文件扫描的 Google Cloud 区域。DATASCAN
:要查看其所有作业的数据扫描扫描名称。
如需了解可选参数,请参阅 gcloud CLI 参考文档。
REST
使用 API Explorer 查看所有扫描作业。
分享已发布的结果
创建数据分析扫描时,如果您选择在 Google Cloud 控制台的 BigQuery 和 Data Catalog 页面中发布扫描结果,最新的扫描结果将会显示在这些页面的数据分析配置文件标签页中。
您可以允许组织中的用户访问已发布的扫描结果。如需授予对扫描结果的访问权限,请按以下步骤操作:
在 Google Cloud 控制台中,转到配置文件页面。
点击要分享结果的数据配置文件扫描。
转到权限标签页。
点击授予使用权限。
在新的主帐号字段中,添加您要向其授予访问权限的主帐号。
在选择角色字段中,选择 Dataplex DataScan DataViewer。
点击保存。
如需移除对主帐号的已发布扫描结果的访问权限,请按以下步骤操作:
在 Google Cloud 控制台中,转到配置文件页面。
点击要分享结果的数据配置文件扫描。
转到权限标签页。
选择您要移除 Dataplex DataScan DataViewer 角色的主帐号。
点击解除使用权限。
点击确认。
更新数据分析扫描
控制台
在 Google Cloud 控制台中,转到配置文件页面。
在要修改的扫描所在的行中,点击 > 修改。
修改值。
点击保存。
gcloud
如需更新数据配置文件扫描,请运行以下命令:
gcloud dataplex datascans update data-profile DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
执行以下变量替换操作:
DATASCAN
:要更新的数据扫描扫描的名称。LOCATION
:创建数据配置文件扫描的 Google Cloud 区域。DESCRIPTION
:关于数据扫描扫描的新说明。
如需了解要更新的规范字段,请参阅 gcloud CLI 参考文档。
REST
使用 API Explorer 修改数据配置文件扫描。
删除数据分析扫描
控制台
在 Google Cloud 控制台中,转到配置文件页面。转到 Dataplex 配置文件
点击要删除的扫描。
点击删除。
gcloud
如需删除数据配置文件扫描,请运行以下命令:
gcloud dataplex datascans delete \ DATASCAN --location=LOCATION \ --async
执行以下变量替换操作:
DATASCAN
:要删除的数据配置文件扫描的名称。LOCATION
:创建数据配置文件扫描的 Google Cloud 区域。
如需了解可选参数,请参阅 gcloud CLI 参考文档。
REST
使用 API Explorer 删除您的数据配置文件扫描。