维表技术字段规范是什么
维表技术字段规范指每张维表统一携带审计列:dw_create_time(首次入库时间)、dw_update_time(最近一次变更时间)、etl_batch(写入批次号)、src_system(来源系统)。它们不参与业务分析,但承担排障与回溯:出问题时要能立刻回答「这批数据哪天写的、来自哪个系统、什么时候第一次进的仓」。没有批次号时,修复范围只能靠猜。
基本信息
| 必需列 | dw_create_time、dw_update_time、etl_batch、src_system |
|---|---|
| 可选列 | is_deleted、dw_owner、batch_id_prev |
| 批次语义 | 每次调度写入记录本批编号,便于定位与回退 |
| 来源语义 | 标记该行来自哪个系统,配合合并规则 |
| 使用范围 | 全部维表统一,不区分层级与业务域 |
典型使用场景
- 故障定位:某天维表属性错误,先按 etl_batch 圈定写入批次
- 影响评估:按批次统计受影响行数与下游表,界定修复范围
- 回退执行:确定批次后可按批次定向重跑,而非全表重建
- 来源核对:按 src_system 统计各来源行数,验证合并是否完整
- 冷启动判断:dw_create_time 用于识别新入仓成员,做增量对账
- 审计问询:被问某属性何时进入数仓,dw_create_time 直接作答
审计列与排障
审计列与排障
-- 维表统一携带的技术列
dw_create_time timestamp -- 首次入库时间
dw_update_time timestamp -- 最近一次变更时间
etl_batch string -- 写入批次号,如 20261013_01
src_system string -- 来源系统,如 mdm / crm / erp
-- 排障:按批次圈定某天写入的记录
SELECT etl_batch, count(1) AS cnt
FROM dim_user
WHERE dw_update_time >= '2026-10-13 00:00:00'
AND dw_update_time < '2026-10-14 00:00:00'
GROUP BY etl_batch;
-- 来源核对:各来源当前有效行数
SELECT src_system, count(1) FROM dim_user
WHERE is_current = 1 GROUP BY src_system;审计列用途
| 列 | 回填时机 | 用途 |
|---|---|---|
| dw_create_time | 首次插入时写入,之后不变 | 识别新成员、审计问询 |
| dw_update_time | 每次更新时改写 | 定位变更时点,圈定修复范围 |
| etl_batch | 每次调度写入本批编号 | 按批次回退与影响评估 |
| src_system | 入库时按来源打标 | 来源核对与冲突排查 |
| is_current | 随版本变化维护 | 当前行定位,需唯一性校验 |
审计列是排障与回溯的基础设施,不是可选项。特别是 etl_batch:有了它,误写数据可以定向回退;没有它,只能按时间范围或全表重建,在生产事故里的时间成本差别是几十分钟与几天。