分析数据
本文档介绍了如何使用数据分析扫描来更好地了解数据。BigQuery 使用 Dataplex Universal Catalog 分析数据的统计特征,例如平均值、唯一值和最大值。Dataplex Universal Catalog 还会根据这些信息建议数据质量检查规则。
如需详细了解数据分析,请参阅数据分析简介。
准备工作
Enable the Dataplex API.
所需的角色
如需分析 BigQuery 表,您需要拥有以下权限:
如需对 BigQuery 表运行数据分析扫描,您需要拥有读取 BigQuery 表的权限,以及在用于扫描该表的项目中创建 BigQuery 作业的权限。
如果 BigQuery 表和数据分析扫描位于不同的项目中,则您需要为 Dataplex Universal Catalog 服务账号授予相应 BigQuery 表的读取权限。
如果 BigQuery 数据在 Dataplex Universal Catalog 数据湖中整理,则如需创建数据分析扫描,您需要具有 Dataplex Universal Catalog 角色
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 Universal Catalog 服务账号分配 Storage Object Viewer (
roles/storage.objectViewer
) 角色或存储桶的以下权限:storage.buckets.get
storage.objects.get
如果您想在Google Cloud 控制台中源表的 BigQuery 和 Dataplex Universal Catalog 页面中发布数据分析扫描结果,则您必须获得该表的 BigQuery Data Editor (
roles/bigquery.dataEditor
) 角色。或者,您需要拥有以下所有权限:bigquery.tables.get
bigquery.tables.update
bigquery.tables.updateData
bigquery.tables.delete
如需将扫描结果导出到 BigQuery 表,您的 Dataplex Universal Catalog 服务账号需要拥有 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 Universal Catalog 服务账号分配这些列的权限。创建或更新数据扫描的用户也需要拥有这些列的权限。
如果某个表启用了 BigQuery 行级访问权限政策,则您只能扫描对 Dataplex Universal Catalog 服务账号可见的行。请注意,系统不会针对行级政策评估单个用户的访问权限。
数据扫描角色和权限
如需使用数据分析,请让您的管理员向您授予以下 IAM 角色之一:
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 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击创建数据分析扫描。
可选:输入显示名称。
输入 ID。请参阅资源命名惯例。
(可选)输入说明。
在表字段中,点击浏览。选择要扫描的表,然后点击选择。
对于多区域数据集中的表,请选择要在其中创建数据扫描的区域。
如需浏览在 Dataplex Universal Catalog 数据湖中整理的表,请点击在 Dataplex 数据湖中浏览。
在范围字段中,选择增量或所有数据。
- 如果您选择增量数据,请在时间戳列字段中,从 BigQuery 表中选择类型为
DATE
或TIMESTAMP
且可随新记录的添加而递增的列,该列可用于识别新记录。对于按DATE
或TIMESTAMP
类型的列进行分区的表,建议将分区列用作时间戳字段。
- 如果您选择增量数据,请在时间戳列字段中,从 BigQuery 表中选择类型为
可选:如需过滤数据,请执行以下任一操作:
如需按行过滤,请点击选中过滤行复选框。 输入一个有效的 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 和 Dataplex Universal Catalog 页面中发布数据分析扫描结果。选中将结果发布到 BigQuery 和 Dataplex Catalog 界面复选框。
您可以在源表的 BigQuery 和 Dataplex Universal Catalog 页面中的数据分析标签页上查看最新扫描结果。如需使用户能够访问已发布的扫描结果,请参阅本文档的授予对数据分析扫描结果的访问权限部分。
在以下情况下,可能无法使用发布选项:
- 您没有相应表的所需权限。
- 另一数据质量扫描已设置为发布结果。
在时间表部分,选择以下选项之一:
重复:按时间表(每小时、每天、每周、每月或自定义)运行数据分析扫描。指定扫描的运行频率和时间。如果您选择自定义,请使用 cron 格式指定时间表。
按需:按需运行数据分析扫描。
点击继续。
可选:将扫描结果导出到 BigQuery 标准表。在将扫描结果导出到 BigQuery 表部分中,执行以下操作:
在选择 BigQuery 数据集字段中,点击浏览。选择一个 BigQuery 数据集来存储数据分析扫描结果。
在 BigQuery 表字段中,指定用于存储数据分析扫描结果的表。如果您使用的是现有表,请确保该表与导出表架构兼容。如果指定的表不存在,Dataplex Universal Catalog 会为您创建该表。
可选:添加标签。标签是键值对,可用于将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。
如需创建扫描,请点击创建。
如果您将时间表设置为“按需”,还可以点击运行扫描立即运行扫描。
gcloud
如需创建数据分析扫描,请使用 gcloud dataplex datascans create data-profile
命令。
如果源数据在 Dataplex Universal Catalog 数据湖中整理,请添加 --data-source-entity
标志:
gcloud dataplex datascans create data-profile DATASCAN \ --location=LOCATION \ --data-source-entity=DATA_SOURCE_ENTITY
如果源数据未在 Dataplex Universal 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
:包含数据分析扫描所用数据的 Dataplex Universal 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
。
REST
如需创建数据分析扫描,请使用 dataScans.create
方法。
创建多个数据分析扫描
您可以使用 Google Cloud 控制台,同时为 BigQuery 数据集中的多个表配置数据分析扫描。
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击创建数据分析扫描。
选择多次数据分析扫描选项。
输入 ID 前缀。Dataplex Universal Catalog 会使用提供的前缀和唯一后缀自动生成扫描 ID。
为所有数据分析扫描输入说明。
在数据集字段中,点击浏览。选择一个数据集以从中选择表。点击选择。
如果数据集是多区域级数据集,请选择要在其中创建数据分析扫描的区域。
配置扫描的通用设置:
在范围字段中,选择增量或所有数据。
如需对数据分析扫描应用采样,请在采样规模列表中选择采样百分比。
选择一个介于 0.0% 到 100.0% 之间的百分比值,最多精确到小数点后 3 位。
可选:在Google Cloud 控制台中源表的 BigQuery 和 Dataplex Universal Catalog 页面中发布数据分析扫描结果。选中将结果发布到 BigQuery 和 Dataplex Catalog 界面复选框。
您可以在源表的 BigQuery 和 Dataplex Universal Catalog 页面中的数据分析标签页上查看最新扫描结果。如需使用户能够访问已发布的扫描结果,请参阅本文档的授予对数据分析扫描结果的访问权限部分。
在时间表部分,选择以下选项之一:
重复:按时间表(每小时、每天、每周、每月或自定义)运行数据分析扫描。指定扫描的运行频率和时间。如果您选择自定义,请使用 cron 格式指定时间表。
按需:按需运行数据分析扫描。
点击继续。
在选择表字段中,点击浏览。选择要扫描的一个或多个表格,然后点击选择。
点击继续。
可选:将扫描结果导出到 BigQuery 标准表。在将扫描结果导出到 BigQuery 表部分中,执行以下操作:
在选择 BigQuery 数据集字段中,点击浏览。选择一个 BigQuery 数据集来存储数据分析扫描结果。
在 BigQuery 表字段中,指定用于存储数据分析扫描结果的表。如果您使用的是现有表,请确保该表与导出表架构兼容。如果指定的表不存在,Dataplex Universal Catalog 会为您创建该表。
Dataplex Universal Catalog 会为所有数据分析扫描使用同一结果表。
可选:添加标签。标签是键值对,可用于将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。
如需创建扫描,请点击创建。
如果您将时间表设置为“按需”,还可以点击运行扫描立即运行扫描。
运行数据分析扫描
控制台
-
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
- 点击要运行的数据分析扫描。
- 点击立即运行。
gcloud
如需运行数据分析扫描,请使用 gcloud dataplex datascans run
命令:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION
执行以下变量替换操作:
DATASCAN
:数据分析扫描的名称。LOCATION
:在其中创建数据分析扫描的 Google Cloud 区域。
REST
如需运行数据分析扫描,请使用 dataScans.run
方法。
查看数据分析扫描结果
控制台
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击数据分析扫描的名称。
概览部分显示有关最近作业的信息,包括扫描运行时间、扫描的表记录数以及作业状态。
数据分析扫描配置部分显示有关扫描的详细信息。
如需查看有关作业的详细信息,例如扫描表的列、扫描中发现的列的统计信息以及作业日志,请点击作业历史记录标签页。然后,点击作业 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
。
REST
如需查看数据分析扫描的结果,请使用 dataScans.get
方法。
查看已发布的结果
如果数据分析扫描结果发布到 Google Cloud 控制台的 BigQuery 和 Dataplex Universal Catalog 页面,则您可以在源表的数据分析标签页中查看最新扫描结果。
在 Google Cloud 控制台中,前往 BigQuery 页面。
在探索器窗格中,选择要查看其数据分析文件扫描结果的表。
点击数据分析标签页。
系统会显示最新发布的结果。
查看最近一次数据分析扫描作业
控制台
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击数据分析扫描的名称。
点击最新作业结果标签页。
如果至少有一次成功完成的运行,最新作业结果标签页会提供有关最近一次作业的信息。该标签页会列出已扫描的表列,以及在扫描中发现的列的相关统计信息。
gcloud
如需查看最近一次成功的数据分析扫描,请使用 gcloud dataplex datascans describe
命令:
gcloud dataplex datascans describe DATASCAN \ --location=LOCATION \ --view=FULL
执行以下变量替换操作:
DATASCAN
:要查看其最近作业的数据分析扫描的名称。LOCATION
:在其中创建数据分析扫描的 Google Cloud 区域。--view=FULL
:如需查看扫描作业结果,请指定FULL
。
REST
如需查看最近的扫描作业,请使用 dataScans.get
方法。
查看历史扫描结果
Dataplex Universal Catalog 会保存最近 300 个作业或过去一年的数据分析扫描历史记录,以先到者为准。
控制台
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击数据分析扫描的名称。
点击作业历史记录标签页。
作业历史记录标签页提供有关过往作业的信息,例如每个作业中扫描的记录数、作业状态以及作业运行时间。
如需查看有关作业的详细信息,请点击作业 ID 列中的任何作业。
gcloud
如需查看历史数据分析扫描作业,请使用 gcloud dataplex datascans jobs list
命令:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN
执行以下变量替换操作:
LOCATION
:在其中创建数据分析扫描的 Google Cloud 区域。DATASCAN
:要查看作业的数据分析扫描的名称。
REST
如需查看历史数据分析扫描作业,请使用 dataScans.jobs.list
方法。
查看表的数据分析扫描
如需查看适用于特定表的数据分析扫描,请执行以下操作:
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
按表名称和扫描类型过滤列表。
授予对数据分析扫描结果的访问权限
如需让贵组织中的用户查看扫描结果,请执行以下操作:
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击您要共享其结果的数据质量扫描。
点击权限标签页。
执行以下操作:
- 如需向主账号授予访问权限,请点击 授予访问权限。向关联的主账号授予 Dataplex DataScan DataViewer 角色。
- 如需移除主账号的访问权限,请选择要移除其 Dataplex DataScan DataViewer 角色的主账号。点击 移除访问权限,然后在系统提示时进行确认。
管理特定表的数据分析扫描
本文档中的步骤介绍了如何使用Google Cloud 控制台中的 BigQuery 元数据整理 > 数据分析和质量评估页面来管理项目中的数据分析扫描。
您还可以在处理特定表时创建和管理数据剖析扫描。在 Google Cloud 控制台中,在表的 BigQuery 页面上,使用数据配置文件标签页。执行以下操作:
在 Google Cloud 控制台中,前往 BigQuery 页面。
在探索器窗格中,选择相应表格。
点击数据分析标签页。
根据表是否具有已发布结果的数据分析扫描,您可以通过以下方式处理表的数据分析扫描:
数据分析扫描结果已发布:页面上会显示最新发布的扫描结果。
如需管理此表的数据剖析文件扫描,请点击数据剖析文件扫描,然后从以下选项中进行选择:
创建新扫描:创建新的数据分析扫描。如需了解详情,请参阅本文档中的创建数据分析扫描部分。从表的详情页面创建扫描时,系统会预先选择该表。
立即运行:运行扫描。
修改扫描配置:修改设置,包括显示名称、过滤条件、抽样大小和时间安排。
管理扫描权限:控制哪些人可以访问扫描结果。 如需了解详情,请参阅本文档中的授予对数据分析扫描结果的访问权限部分。
查看历史结果:查看之前的数据分析扫描作业的详细信息。如需了解详情,请参阅本文档中的查看数据分析扫描结果和查看历史扫描结果部分。
查看所有扫描:查看适用于相应表的数据分析扫描列表。
数据分析扫描结果未发布:点击快速数据分析旁边的菜单,然后从以下选项中进行选择:
自定义数据分析:创建新的数据分析扫描。如需了解详情,请参阅本文档中的创建数据分析扫描部分。从表的详情页面创建扫描时,系统会预先选择该表。
查看之前的数据剖析文件:查看适用于此表的数据剖析文件扫描的列表。
更新数据分析扫描
控制台
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击数据分析扫描的名称。
点击修改,然后修改相应值。
点击保存。
gcloud
如需更新数据分析扫描,请使用 gcloud dataplex datascans update data-profile
命令:
gcloud dataplex datascans update data-profile DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
执行以下变量替换操作:
DATASCAN
:要更新的数据分析扫描的名称。LOCATION
:在其中创建数据分析扫描的 Google Cloud 区域。DESCRIPTION
:数据分析扫描的新说明。
REST
如需修改数据分析扫描,请使用 dataScans.patch
方法。
删除数据分析扫描
控制台
在 Google Cloud 控制台中的 BigQuery 元数据整理页面上,前往数据分析和质量评估标签页。
点击要删除的扫描。
点击删除,然后在系统提示时进行确认。
gcloud
如需删除数据分析扫描,请使用 gcloud dataplex datascans delete
命令:
gcloud dataplex datascans delete DATASCAN \ --location=LOCATION --async
执行以下变量替换操作:
DATASCAN
:要删除的数据分析扫描的名称。LOCATION
:在其中创建数据分析扫描的 Google Cloud 区域。
REST
如需删除数据分析扫描,请使用 dataScans.delete
方法。
后续步骤
- 了解如何通过生成数据分析洞见来探索数据。
- 详细了解 BigQuery 中的数据治理。
- 了解如何扫描数据以查找数据质量问题。
- 了解如何使用表探索器检查表数据和创建查询。