通过扫描监控数据质量

本文档介绍了如何结合使用 BigQuery 和 Dataplex 来确保数据符合您的质量预期。BigQuery 使用 Dataplex 定义持续数据检查、监控结果以及排查数据质量问题。

如需详细了解自动数据质量,请参阅自动数据质量简介

须知事项

  • 如需在项目中创建和修改扫描:启用 Dataplex API。

    启用 Dataplex API

  • 对于跨项目扫描:使用 gcloud beta services identity create 命令创建 Dataplex 服务标识符。如果 Dataplex 服务标识符不存在,此命令会返回一个新的标识符。如果服务标识符已存在,此命令会返回现有的标识符。此命令可能会提示您安装 gcloud CLI Beta 版命令组件。

    gcloud beta services identity create
    --service=dataplex.googleapis.com
    

所需的角色

请让您的管理员根据需要访问的应用场景向适当的账号主账号授予以下角色。如需详细了解如何授予角色,请参阅管理访问权限

BigQuery 角色

  • 针对表的 BigQuery Data Viewer,用于在该表上创建扫描而不发布结果。
  • 针对表的 BigQuery Data Editor,用于在该表上创建扫描并发布结果。
  • 如果 BigQuery 表和数据质量扫描位于不同的项目中,则您需要为 Dataplex 服务账号授予相应 BigQuery 表的读取权限 bigquery.tables.getData(或 BigQuery Data Viewer 角色)。如需获取服务账号的服务身份,请参阅准备工作
  • 如果您要从 Cloud Storage 中扫描 BigQuery 外部表,请将 Cloud Storage 角色 (roles/storage.objectViewer) 分配给 Dataplex 服务账号。

Dataplex 角色

  • 项目级的 Dataplex DataScan Administrator,用于创建扫描。
  • 针对扫描的 Dataplex DataScan Editor,用于修改扫描的任何属性(权限除外)、执行扫描以及删除扫描。
  • 针对扫描的 Dataplex DataScan DataViewer,用于查看扫描结果。

这些角色可提供先前的应用场景所需的权限。如需查看所需的确切权限,请展开所需权限部分。

所需权限

使用数据分析文件扫描的各个方面需要以下权限:

  • 更改数据扫描的配置:dataplex.datascans.update - 针对数据扫描资源
  • 更改数据扫描的政策:dataplex.datascans.setIamPolicy - 针对数据扫描资源
  • 在 BigQuery 表上创建数据扫描:bigquery.tables.getData - 针对要扫描的表
  • 在项目中创建数据扫描:dataplex.datascans.create - 针对项目
  • 删除数据扫描:dataplex.datascans.delete - 针对数据扫描资源
  • 将数据扫描结果导出到 BigQuery 数据集:bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updatebigquery.tables.updateData - 针对目标数据集
  • 将数据扫描结果发布到表:bigquery.tables.update - 针对目标表
  • 运行数据扫描:dataplex.datascans.run - 针对数据扫描资源
  • 从 Cloud Storage 中扫描外部表:storage.buckets.getstorage.objects.get - 针对包含要扫描的表的存储桶
  • 查看数据扫描的结果:dataplex.datascans.getData - 针对数据扫描资源
  • 查看数据扫描的结果:dataplex.datascans.get - 针对数据扫描资源
  • 查看数据扫描的结果:dataplex.datascans.list - 针对数据扫描资源

您也可以使用自定义角色或其他预定义角色来获取这些权限。

创建数据质量扫描

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,点击用于数据质量扫描的表。

  3. 点击数据质量标签页。

  4. 点击数据质量扫描 > 创建新扫描

  5. 可选:修改以下值:

    • 显示名称:控制台中资源的可变名称。
    • ID:扫描的唯一标识符。该标识符在扫描创建后便无法更改。
    • 说明:扫描的说明。
    • 区域:定义在其中处理数据扫描的区域。
    • 范围:可供扫描的数据的范围。选择增量所有数据。如果您选择增量,我们建议包含 DATETIMESTAMP 列以线性增加。此列可用于识别新记录。对于按类型为 DATETIMESTAMP 的列分区的表,建议将分区列用作时间戳字段。
    • 过滤条件:在扫描运行之前应用于数据的过滤条件。如需过滤行,请选中过滤行复选框,然后在输入文本字段中输入有效的 SQL 表达式。该表达式必须采用 BigQuery 标准 SQL 语法,并且可用于 WHERE 子句
    • 采样规模:您要采样的数据百分比。对于增量数据扫描,系统仅会对最新增量进行采样。
    • 将结果发布到 BigQuery 和 Dataplex Catalog 界面:此选项可在 BigQuery 界面中源表的数据质量标签页下提供数据分析扫描的最新结果。如果扫描正在运行并设置为发布,则此选项可能不可用。
    • 时间表按需(默认值)或重复。如果您选择重复,请使用每天每周每月自定义指定计划扫描的频率。自定义使用 cron 时间格式来指定时间表。例如,设置为在本月第二个星期二凌晨 1:00 运行的扫描如下所示:0 1 8-14 * 2
  6. 如需推进窗格以显示数据质量规则设置,请点击继续

  7. 点击添加规则,然后根据需要添加以下一个或多个规则。您还可以使用 移除来删除规则。

    • 基于分析的建议
    • 内置规则类型
    • SQL 行检查规则
    • SQL 聚合检查规则
  8. 可选:如需推进窗格以显示其他可选设置,请点击继续,然后修改以下值:

    • 将扫描结果导出到 BigQuery 表:选择 BigQuery 数据集和表以保存质量扫描结果。如果定义了数据集,但未定义表,则 Dataplex 会为您创建表。以这种方式创建的表可能会产生存储费用
    • 标签:为扫描添加标签
  9. 根据您的需要点击以下按钮之一:

    • 如需保存扫描设置,请点击创建
    • 如需保存并运行扫描,请点击运行

管理数据质量扫描权限

如需更改现有质量扫描的访问权限,请执行以下操作:

  1. 转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,选择用于数据质量扫描的表。

  3. 点击数据质量标签页。

  4. 点击数据质量扫描 > 管理扫描权限。系统会在新标签页中打开 Dataplex。

  5. 点击权限标签页。

    • 如需向主账号授予访问权限,请点击 授予访问权限,然后向关联的主账号授予 Dataplex DataScan DataViewer
    • 如需移除主账号的访问权限,请点击 移除访问权限,然后移除关联的主账号的 Dataplex DataScan DataViewer

修改现有数据质量扫描

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,选择用于数据质量扫描的表。

  3. 点击数据质量扫描 > 修改扫描配置

系统会打开数据质量扫描设置,您可以修改并保存这些设置以供未来扫描使用。

查看数据质量扫描结果

您可以通过多种方式查看数据质量扫描结果。选择最适合您需求的选项。

查看已发布的结果

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,选择用于数据质量扫描的表。

  3. 点击数据质量标签页。

最新发布的结果会显示在此视图中。

查看历史扫描结果

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,选择用于数据质量扫描的表。

  3. 点击数据质量标签页。

  4. 点击数据质量扫描 > 查看历史结果

查看表上的所有数据质量扫描

如需打开包含特定表扫描历史记录的 Dataplex,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,选择用于数据质量扫描的表。

  3. 点击数据质量扫描 > 查看所有扫描