创建和使用数据分析扫描

本页介绍了如何使用 Google Cloud 控制台、Google Cloud CLI 或 REST API 创建数据配置文件扫描。

如需详细了解 Dataplex 数据配置文件扫描,请参阅数据剖析简介

须知事项

在 Google Cloud 控制台中,启用 Dataplex API。

启用该 API

权限

如需分析 BigQuery 表,您需要以下权限:

  • 要在 BigQuery 表上运行数据配置文件扫描,您需要具有读取 BigQuery 表的权限,并且拥有在用于扫描表的项目中创建 BigQuery 作业的权限。

  • 如果 BigQuery 表和数据配置文件扫描位于不同的项目中,则您需要向 Dataplex 服务帐号授予相应 BigQuery 表的读取权限。

  • 如果 BigQuery 数据组织在 Dataplex 数据湖中,则为了创建数据扫描扫描,您需要 Dataplex 角色 roles/dataplex.metadataReaderroles/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 权限

创建数据分析扫描

控制台

  1. 在 Google Cloud 控制台中,转到配置文件页面。

    转到 Dataplex 配置文件

  2. 点击创建数据分析扫描

  3. 输入显示名称

  4. 如需更改自动生成的扫描 ID,请提供您自己的 ID。请参阅资源命名惯例

  5. (可选)输入说明

  6. 表格字段中,点击浏览

  7. 选择一个表,然后点击选择

  8. 范围字段中,选择增量整个数据

    • 如果选择增量数据,请在时间戳列字段中,从 BigQuery 表中选择类型为 DATETIMESTAMP 且单调递增的列,该列可用于识别新记录。对于按 DATETIMESTAMP 类型的列分区的表,建议使用分区列作为时间戳字段。
  9. 要对数据扫描进行扫描,请在采样规模列表中,选择一个采样百分比。

    • 选择介于 0.0% 到 100.0% 之间的百分比值(最多包含 3 位小数)。
    • 对于较大的数据集,请选择较低的抽样百分比。例如,对于约 1 PB 的表,如果输入的值介于 0.1% 到 1.0% 之间,则 Dataplex 样本会介于 1-10 TB 之间。
    • 您需要获得至少 100 条抽样数据才能返回结果。
    • 对于增量数据扫描,Dataplex 会将采样应用于最新增量。
  10. 如要按行过滤,请点击过滤条件,然后选择过滤行

  11. 可选:点击过滤条件。选中过滤列复选框。

    a. 在包含列字段中,点击浏览

    • 指定要包含在配置文件扫描中的任何列。通过选中相应复选框并点击选择,选择您所选的列。

    b. 在排除列字段中,点击浏览

    • 指定要从配置文件扫描中排除的任何列。通过选中相应复选框并点击选择,选择您所选的列。
  12. 可选:在 Google Cloud 控制台的源表的 BigQuery 和 Data Catalog 页面中发布数据配置文件扫描结果。选中将结果发布到 BigQuery 和 Dataplex Catalog 界面复选框。

    您可以在源表的 BigQuery 和 Data Catalog 页面的数据配置文件标签页中查看最新的扫描结果。如需让用户能够访问已发布的扫描结果,请参阅共享已发布的结果

    在以下情况下,您可能无法使用发布方式:

    • 您没有所需的表权限。
    • 另一个数据质量扫描已设置为发布结果。

    如需详细了解查看已发布结果所需的权限,请参阅权限

  13. 可选:将扫描结果导出到 BigQuery 标准表。点击浏览以选择现有的 BigQuery 数据集来存储数据配置文件扫描结果。

    如果指定的表不存在,Dataplex 将为您创建它。如果您使用的是现有表,请确保它与本部分稍后介绍的表架构兼容。

  14. 可选:添加标签。标签是 key:value 对,可用于将相关对象组合在一起或其他 Google Cloud 资源。

  15. 时间表选项下方,选择以下选项之一:

    • 重复:按时间表(每天、每周、每月或自定义)运行数据分析文件扫描作业。指定扫描的运行频率和扫描时间。如果您选择自定义方式,请使用 cron 格式指定时间表。

    • 按需:创建您的数据配置文件扫描并随时使用“立即运行”操作运行。

  16. 点击创建

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 创建数据分析扫描

创建多个数据配置文件扫描

控制台

  1. 在 Google Cloud 控制台中,转到配置文件页面。

    转到 Dataplex 配置文件

  2. 点击创建多个配置文件扫描

  3. 输入 ID 前缀。Dataplex 使用提供的前缀和唯一后缀自动生成扫描 ID。

  4. 输入所有数据配置文件扫描的说明

  5. 数据集字段中,点击浏览。选择要从中选择表的数据集。点击选择

  6. 如果数据集为多区域数据集,请选择一个要在其中创建数据配置文件扫描的区域

  7. 选择常见配置选项

    1. 范围字段中,选择增量整个数据

    2. 要对数据配置文件扫描应用采样,请在采样规模列表中,选择一个采样百分比。

      选择介于 0.0% 到 100.0% 之间的百分比值(最多包含 3 位小数)。

    3. 若要显示所有扫描的结果,请选择发布。您可以在 BigQuery 或 Data Catalog 表详细信息的分析标签页中查看结果。请确保您拥有源表的 bigquery.tables.update 权限。

    4. 时间表选项下方,选择以下选项之一:

      1. 重复:按时间表运行您的数据配置文件扫描作业。指定扫描频率(每天、每周、每月或自定义)以及何时运行。如果您选择自定义方式,请使用 cron 格式指定时间表。

      2. 按需:创建您的数据配置文件扫描作业并随时运行这些作业,只需点击运行即可。

  8. 选择表选项中,点击浏览。选择要扫描的一个或多个表。点击选择

  9. 选择其他设置

    1. 如需将数据配置文件扫描结果保存到您选择的 BigQuery 表,请在将扫描结果导出到 BigQuery 表中选择一个表。对于每次扫描作业,Dataplex 都会自动复制结果并将其保存到此表中。

      1. 点击浏览以选择数据集。

      2. 输入保存结果的 BigQuery 表。可以是其他 Dataplex 数据配置文件扫描功能使用的现有表,以保存结果。如果没有使用指定名称的此类表,Dataplex 将创建该表。

    2. 添加标签,为您的数据配置文件扫描添加注解。

  10. 点击运行扫描以创建并运行所有扫描。此选项仅适用于按需扫描。

  11. 点击创建以创建所有扫描。

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

运行数据分析扫描

控制台

  1. 在 Google Cloud 控制台中,转到 Dataplex 配置文件页面。转到个人资料
  2. 点击数据配置文件扫描以运行。
  3. 点击立即运行

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 页面中发布扫描结果,最新的扫描结果将会显示在这些页面的数据分析配置文件标签页中。

您可以允许组织中的用户访问已发布的扫描结果。如需授予对扫描结果的访问权限,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到配置文件页面。

    转到 Dataplex 配置文件

  2. 点击要分享结果的数据配置文件扫描。

  3. 转到权限标签页。

  4. 点击授予使用权限

  5. 新的主帐号字段中,添加您要向其授予访问权限的主帐号。

  6. 选择角色字段中,选择 Dataplex DataScan DataViewer

  7. 点击保存

如需移除对主帐号的已发布扫描结果的访问权限,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到配置文件页面。

    转到 Dataplex 配置文件

  2. 点击要分享结果的数据配置文件扫描。

  3. 转到权限标签页。

  4. 选择您要移除 Dataplex DataScan DataViewer 角色的主帐号。

  5. 点击解除使用权限

  6. 点击确认

更新数据分析扫描

控制台

  1. 在 Google Cloud 控制台中,转到配置文件页面。

    转到 Dataplex 配置文件

  2. 在要修改的扫描所在的行中,点击 > 修改

  3. 修改值。

  4. 点击保存

gcloud

如需更新数据配置文件扫描,请运行以下命令:

gcloud dataplex datascans update data-profile DATASCAN \
--location=LOCATION \
--description=DESCRIPTION

执行以下变量替换操作:

  • DATASCAN:要更新的数据扫描扫描的名称。
  • LOCATION:创建数据配置文件扫描的 Google Cloud 区域。
  • DESCRIPTION:关于数据扫描扫描的新说明。

如需了解要更新的规范字段,请参阅 gcloud CLI 参考文档

REST

使用 API Explorer 修改数据配置文件扫描

删除数据分析扫描

控制台

  1. 在 Google Cloud 控制台中,转到配置文件页面。转到 Dataplex 配置文件

  2. 点击要删除的扫描。

  3. 点击删除

gcloud

如需删除数据配置文件扫描,请运行以下命令:

gcloud dataplex datascans delete \
DATASCAN --location=LOCATION \
--async

执行以下变量替换操作:

  • DATASCAN:要删除的数据配置文件扫描的名称。
  • LOCATION:创建数据配置文件扫描的 Google Cloud 区域。

如需了解可选参数,请参阅 gcloud CLI 参考文档

REST

使用 API Explorer 删除您的数据配置文件扫描

后续步骤