用途:该技能提供 Databricks Labs DQX(Python 数据质量框架)的生产级使用模式,用于校验 PySpark DataFrame,并集成到 medallion 架构管道中。相比标准 DLT expectations,DQX 提供更丰富的诊断信息。推荐版本 >=0.12.0,支持浮点、离群检测、JSON 校验与 AI 辅助规则。
主要能力:输出 _error、_warning 诊断列;支持 drop、mark、split 等隔离策略;支持数据集级检查(唯一性、外键、离群、聚合);检查规则可存于 YAML/JSON/Delta/Lakebase 并受治理;支持自动剖析与 AI 辅助生成规则;提供随时间跟踪质量的汇总指标。
使用方式:安装 %pip install databricks-labs-dqx>=0.12.0 后重启 Python。以字典或 YAML 定义检查,用 DQEngine(WorkspaceClient()) 调用 apply_checks_by_metadata_and_split 拆分有效与无效数据;对 DQRowRule/DQDatasetRule 对象用 apply_checks_and_split。DLT/Lakeflow 中用 @dlt.view 配合 apply_checks_by_metadata,再用 get_valid/get_invalid 生成有效表与隔离表。检查存储使用 save_checks/load_checks 与 TableChecksStorageConfig。脚本 scripts/setup_dqx.py 可创建检查 Delta 表并加载初始规则。
适用场景:需要细粒度失败诊断、自动剖析建议规则、灵活隔离、数据集级检查、集中式检查存储或质量指标跟踪时使用;若现有 DLT expectations 加 Lakehouse Monitoring 已足够、只需简单通过/失败校验,则可继续用标准 DLT。
限制与注意:函数名与参数名严格,如比较用 limit、相等用 value、范围用 min_limit/max_limit、列表用 allowed/forbidden;不存在 is_greater_than/is_less_than,严格比较需用 sql_expression。0.12.0 以下 limit 仅支持整数。Serverless 环境不支持 sparkContext,需改用 SQL 查询;serverless 任务依赖应放在 environments 配置,DLT 管道放在 libraries 块。共享代码需为纯 Python,不能带 notebook 头。具体版本兼容与错误处理细节见其参考文件。