一致性维度同步是什么
一致性维度指多个业务域共用同一套维度定义与成员集合,这样不同域的事实才能按同一维度对齐汇总。落地形态通常是「一份公共维表 + 各域视图」或「各域同构表 + 定期比对」:前者天然统一,后者要靠校验任务发现漂移。口径变更必须集中发布,不能让每个域各自理解。
基本信息
| 常见形态 | 公共 dim 表 + 各域视图引用 |
|---|---|
| 备选形态 | 各域同构表 + 定期一致性比对 |
| 变更流程 | 集中评审 → 发布 → 通知下游 |
| 校验频率 | 每次变更后全量比对,日常按日抽查 |
| 适用范围 | 日期、商品类目、门店、组织等共用维度 |
典型使用场景
- 集团报表与事业部报表需要按同一套门店、同一套类目口径汇总
- 跨域分析(交易 × 履约 × 服务)要求维度成员完全对齐
- 类目调整、组织调整后集中发布一次,所有域同时生效
- 新增域接入时直接引用公共维,避免重复建模
- 发现两地同一维度名称对不上时用比对任务定位漂移
一致性校验
一致性校验
-- 抽查两个域下同名维度的取值集合是否一致
SELECT count(1) AS diff_cnt FROM (
SELECT DISTINCT category_name FROM dws_a.dim_product
EXCEPT
SELECT DISTINCT category_name FROM dws_b.dim_product
) t;
-- 成员数比对,差异超过阈值即告警
SELECT (SELECT count(1) FROM dws_a.dim_store)
- (SELECT count(1) FROM dws_b.dim_store) AS member_gap;同步机制对比
| 机制 | 优点 | 代价 |
|---|---|---|
| 公共表加视图 | 定义唯一,天然一致 | 域内个性化需求难满足 |
| 同构表加比对 | 各域可独立演进 | 漂移要靠任务发现 |
| 物化下发 | 查询性能好 | 下发延迟带来短期不一致 |
一致性维度不只要求表名相同,还要求成员编码、层级定义、未知成员处理方式都相同。只比对行数是不够的,必须比对成员集合与层级父子关系,否则两边行数一样但内容已经换了一批。
校验任务应纳入日常调度并把比对结果落库留痕,这样漂移发生时能回答两个问题:从哪天开始不一致、影响哪些下游报表。没有留痕只能得出「现在不一致」的结论。