数据质量校验规则提示词(完整性、唯一性、一致性、及时性、合理性检查 + SQL 校验与 dbt tests 写法)
报表数字经常出错才被业务发现(重复订单、金额为负、昨天的数据没同步、两张表对不上),想在数据进入报表之前自动拦住问题时用:给出表结构和业务规则,AI 按质量维度设计校验规则,写成 SQL 或 dbt tests,并设定失败时阻断还是告警。
通用大模型 对话模型通用
你是一名数据工程师,负责数据仓库的数据质量保障。请为下面的表设计数据质量校验。 - 表名与用途:[表名与用途](例:dwd_orders 订单明细,供所有销售报表使用) - 表结构(字段、类型、含义): [表结构] - 业务规则:[业务规则](例:已支付订单必须有支付时间;实付金额不大于应付金额) - 数据更新方式与时间:[更新方式](例:每天凌晨 3 点增量同步前一天数据) - 校验工具:[校验工具](例:dbt、定时运行的 SQL、调度平台自带的质量检查) 请按以下维度设计规则,并为每条规则给出:规则描述 | 校验 SQL 或测试配置 | 失败时的级别(阻断下游 / 告警 / 只记录)| 理由。 1. 完整性:主键与关键字段不能为空;与上游源表的行数对比(允许的差异范围)。 2. 唯一性:主键唯一;业务上应唯一的组合(例如同一订单号只有一行)。 3. 有效性:枚举字段只能是允许的值;金额、数量的取值范围;日期不能在未来或早于业务开始日期。 4. 一致性:跨字段规则(状态与时间字段的对应、金额之间的关系);跨表规则(外键在维度表中存在、汇总表与明细表合计一致)。 5. 及时性:数据最新时间是否在预期之内(例如每天 4 点前必须有昨天的数据)。 6. 波动合理性:今日行数或金额与过去 N 天同期相比的异常波动(阈值要考虑星期规律与大促)。 然后说明: - 级别的划分原则:会导致报表错误的问题阻断下游,轻微问题告警; - 失败后的处理流程与通知对象; - 规则的维护:新增字段或口径变更时如何同步更新规则。 如果使用 dbt,给出模型的 yml 配置(内置测试与自定义测试);否则给出可以直接调度运行的 SQL,每条 SQL 返回违规的行数或样例。
高亮处换成你自己的内容:[表名与用途]、[表结构]、[业务规则]、[更新方式]、[校验工具]
ChatGPT Plus 充值
已被复制 0 次
使用说明
怎么填变量:[业务规则] 是最有价值的部分,通用规则(非空、唯一)谁都能想到,真正能拦住问题的往往是业务规则,例如「退款金额不能大于实付金额」「已发货订单必须有物流单号」。[更新方式] 决定及时性规则怎么写。
常见坑:
- 所有规则失败都只发告警,数据有问题的报表照样产出,业务看到错误的数字。会导致报表错误的问题要阻断下游任务。
- 规则太多太严,每天都有一堆告警,最后大家都不看了。按影响程度分级,宁缺毋滥。
- 只检查本表,不检查与上游的行数对比,数据同步丢了一半也发现不了。
追问技巧:追问「把这些规则的执行结果做成一个数据质量看板,展示每张表每天的通过率」,或「上游源系统经常改字段,怎么尽早发现」。
示例输出
示例,仅供参考(dbt 配置节选)
yaml
models:
- name: dwd_orders
columns:
- name: order_id
data_tests:
- not_null
- unique
- name: status
data_tests:
- accepted_values:
values: ['PENDING', 'PAID', 'CANCELLED', 'REFUNDED']
- name: user_id
data_tests:
- relationships:
to: ref('dim_users')
field: user_id
sql
-- 自定义规则:已支付订单必须有支付时间,且实付不大于应付(返回违规行,结果不为空即失败)
SELECT order_id, status, paid_at, paid_amount, payable_amount
FROM {{ ref('dwd_orders') }}
WHERE (status = 'PAID' AND paid_at IS NULL)
OR paid_amount > payable_amount
| 规则 | 级别 | 理由 |
|---|---|---|
| order_id 唯一 | 阻断 | 重复会导致所有销售额被放大 |
| 昨日数据行数比过去 4 周同日均值低 50% 以上 | 告警 | 可能是同步失败,也可能是真实下降,需要人工确认 |
说明:较新版本的 dbt 中测试的配置键为 data_tests,旧版本为 tests,以你所用版本的文档为准。
同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。


0 条评论
还没有评论,来抢沙发~