如何用Python dataplex_v1库配置Dataplex数据质量扫描并同步结果至BigQuery与Catalog UI
解决方案
要让数据质量扫描结果同时写入BigQuery并在Dataplex Catalog UI的表格「数据质量」板块展示,你需要调整两个关键配置:
1. 切换到数据质量扫描配置
你之前用的data_profile_spec是用于数据轮廓分析的配置,这类结果不会在表格的「数据质量」板块展示。你需要替换为data_quality_spec(数据质量扫描专属配置)。
2. 同时配置BQ导出与Catalog发布
在data_quality_spec的post_scan_actions中,除了保留BigQuery导出配置,还要添加publish_results_to_catalog: true,这会让扫描结果关联到目标表格并在UI中展示。同时要确保扫描目标指向Dataplex Catalog中已存在的表格资源。
Python代码示例(dataplex_v1)
from google.cloud import dataplex_v1 # 初始化客户端 client = dataplex_v1.DataScanServiceClient() # 构建数据质量扫描对象 scan = dataplex_v1.DataScan() scan.display_name = "customer-table-quality-scan" scan.description = "Daily data quality scan for customer table" # 配置数据质量扫描规则与后置动作 scan.data_quality_spec = dataplex_v1.DataQualitySpec() post_actions = dataplex_v1.DataQualitySpec.PostScanActions() # 配置BigQuery结果导出 post_actions.bigquery_export = dataplex_v1.DataQualitySpec.PostScanActions.BigQueryExport( results_table="//bigquery.googleapis.com/projects/my-project-name/datasets/dataplex_dataset/tables/customer_quality_results" ) # 启用Catalog发布,确保UI展示 post_actions.publish_results_to_catalog = True scan.data_quality_spec.post_scan_actions = post_actions # 指定扫描目标:Dataplex Catalog中的表格资源路径 scan.target = "projects/my-project-name/locations/us-central1/lakes/my-lake/zones/my-zone/entities/customer-table" # 设置扫描触发规则(示例:每天凌晨执行) scan.trigger = dataplex_v1.DataScanTrigger( schedule=dataplex_v1.DataScanTrigger.Schedule(cron="0 0 * * *") ) # 发送创建扫描请求 create_request = dataplex_v1.CreateDataScanRequest( parent="projects/my-project-name/locations/us-central1", data_scan_id="customer-table-quality-scan-id", data_scan=scan ) response = client.create_data_scan(request=create_request) print(f"Data scan created successfully: {response.name}")
关键注意事项
- 权限要求:执行扫描的服务账号需要拥有
Dataplex Editor、BigQuery Data Editor(针对导出数据集)以及Dataplex Data Reader(针对目标表格)权限。 - 目标表格:扫描的
target必须是Dataplex Catalog中已存在的表格资源路径,否则结果无法关联到UI中的表格。 - 扫描类型区别:
data_profile_spec和data_quality_spec是两类独立的扫描配置,前者用于数据分布、字段统计等轮廓分析,后者用于规则校验(如非空、格式合规等),只有后者的结果会出现在表格的「数据质量」板块。
内容的提问来源于stack exchange,提问作者Wolfmarel Jesbeth Adan Ramirez
相关产品推荐
相关产品推荐

