用途:在 Databricks Spark 声明式管道(SDP,原 DLT)的 Silver 层实现数据质量期望,把校验规则从代码中抽离,集中存放在 Unity Catalog 的 Delta 表里,便于跨管道共享、审计和运行时更新。
主要能力:用 dq_rules 表作为规则唯一来源,字段含 table_name、rule_name、constraint_sql、severity、description 等;提供纯 Python 的规则加载模块(如 get_critical_rules_for_table、get_warning_rules_for_table、get_quarantine_condition),在导入时用模块级缓存配合 toPandas() 加载规则,避免 .collect() 触发 DLT 警告;按严重级别区分 critical 与 warning,critical 用 @dlt.expect_all_or_drop() 丢弃失败记录,warning 用 @dlt.expect_all() 仅记录;支持隔离表保存失败记录并附诊断信息;规则可通过 SQL UPDATE/INSERT 更新,下次管道运行自动生效。
使用方式:先创建并填充 dq_rules 表,再部署 DLT 管道;加载模块须为纯 Python 文件,不能带 # Databricks notebook source 头;管道配置使用 schema 字段与全限定表名,避免已弃用的 LIVE. 前缀和 target 字段,可用 get_source_table() 辅助函数拼接表名。
适用场景:Silver 层 DLT 管道、跨管道共享的可移植质量规则、需运行时更新规则而无需部署代码、按严重级别过滤、失败记录隔离。
限制:期望装饰器仍属旧版 dlt API,尚未迁移到 dp;需先运行 DQ 设置作业创建规则表,否则管道无法读取;规则表名须与 Silver 表名完全一致。具体收费、平台版本等资料暂未提供。