
维度建模常见反模式:大宽表滥用、层级穿透与其他坑
维度建模的典型反模式:大宽表滥用、维度层级穿透、混合粒度、多值维度硬塞、SCD 处理缺失。识别信号加对应解法,用桥接表和一致性维度纠偏。
共 18 篇文章

维度建模的典型反模式:大宽表滥用、维度层级穿透、混合粒度、多值维度硬塞、SCD 处理缺失。识别信号加对应解法,用桥接表和一致性维度纠偏。

数仓成本分存储和计算两块。存储侧靠生命周期 TTL、冷表下线、压缩和小文件合并;计算侧治全量扫描和资源浪费;成本要分摊到团队才有治理动力。

回刷分口径变更、故障修复、脏数据修复、历史初始化四类场景。核心是幂等重跑、血缘联动下游、影子表双跑切换,以及与正常调度的资源隔离。

实时数仓沿用 ODS-DWD-DWS-ADS 思路但层数要压浅,Kafka 存原始与明细,Flink 做清洗和汇总,CK/Doris 承接查询,点查走 Redis/HBase。

Lambda 用批层保准确、速度层保时效,代价是双链路口径和运维成本;Kappa 全流简化架构,但重算和大状态是硬伤。选型看实时占比和重算需求。

血缘靠 SQL 解析拿表级和字段级依赖,调度依赖做兜底。核心用途是影响分析、口径溯源、问题定位和下线评估,准确率要靠多来源互补。

DQC 落地的三要素:规则体系覆盖完整性/及时性/准确性/一致性,卡点挂在任务产出后下游启动前,强规则熔断阻断调度、弱规则告警通知。

宽表用冗余存储换查询性能和使用门槛,收益是免 join、口径统一;代价是回刷贵、变更僵、字段膨胀。适合放 DWS/ADS 服务固定场景,不适合放明细层。

数仓优化的抓手是公共层沉淀和指标口径统一。复用度看 DWS 表被多少下游消费,穿透率看下游绕过公共层直查明细的比例,用血缘数据就能算。

评价数仓看五点:数据质量(完整准确一致及时)、模型复用度、稳定性与 SLA、资源成本、规范性。可量化为 DQC 通过率、任务破线率、重复表比例等指标。

指标体系自上而下拆解:北极星指标按 OSM/UJM 拆到过程指标;落地靠「原子指标+修饰词+时间周期」定义派生指标。指标字典解决同名不同义、同义不同名的口径混乱。

一致性维度是各事实表共享、含义和取值统一的维度,一致性事实是口径统一的度量。两者是总线架构的总线标准,保证跨业务过程能联合分析、同指标各报表一致。

总线矩阵是「业务过程 × 公共维度」的二维表,是数仓建设的总设计图;数据域按业务过程聚类划分(交易、流量、用户等),矩阵先于建模,指导优先级和维度共享。

星型是事实表直连扁平维表,雪花把维表再规范化拆成多级。星型 join 少、查询快、口径直观;雪花省存储但 join 链路长。大数据场景一律选星型。

维度表设计涵盖代理键、维度退化、一致性维度;缓慢变化维有 SCD0/1/2/3 四种处理,拉链表是 SCD2 在 Hive 上的经典实现,用起止日期保存历史。

事务事实表记录原子事件,周期快照定期度量状态,累积快照跟踪流程多里程碑。选型看业务过程是瞬间事件、状态量还是长周期流程。

Kimball 四步法:选业务过程、声明粒度、确定维度、确定事实。粒度声明是整张表的契约,先定粒度再谈维度和事实,顺序不能乱。

分层是为了解耦、复用和可追溯。ODS 贴源保留现场,DWD 清洗明细并统一口径,DWS 轻度汇总沉淀公共逻辑,ADS 面向应用出指标。