数据仓库建模:事实表类型详解与选型实战指南
数据仓库建模事实表类型详解与选型实战指南一、引言二、定义什么是数据仓库事实表三、数据仓库中三大核心事实表类型3.1 类型1事务事实表Transaction Fact Table3.2 类型2周期快照事实表Periodic Snapshot Fact Table3.3 类型3累积快照事实表Accumulating Snapshot Fact Table四、详细解析三种事实表特点场景案例4.1 类型1事务事实表最常用4.2 类型2周期快照事实表4.3 类型3累积快照事实表五、选型流程如何选择合适的事实表类型流程图六、选型规则3步快速确定事实表类型6.1 第一步判断业务类型6.2 第二步判断数据粒度6.3 第三步判断是否需要更新七、三大事实表核心对比表收藏级八、实战场景选型案例8.1 案例1电商用户下单支付8.2 案例2每日商品库存8.3 案例3订单从创建到完成全流程8.4 案例4用户每日登录次数8.5 案例5售后退款流程九、事实表设计通用规范十、总结结束语The Begin点点关注收藏不迷路一、引言在数据仓库维度建模中事实表是整个模型的核心承载着业务最关键的可量化指标数据。事实表设计的好坏直接决定数仓的查询性能、扩展性、数据准确性。很多数仓开发新手只知道“订单事实表”却不知道事实表分为多种类型在面对库存、物流、用户活跃、流程类业务时往往设计出不合理的模型。本文将从事实表类型定义、结构特点、适用场景、选型流程、实战案例全方位讲解让你彻底掌握事实表选型逻辑轻松搭建企业级标准模型。二、定义什么是数据仓库事实表事实表Fact Table数据仓库中用于存储业务行为产生的量化指标的表由维度外键和度量值组成。维度外键用于关联维度表度量值可统计的数值金额、数量、次数、时长一句话记忆事实表存储发生了什么、发生了多少。三、数据仓库中三大核心事实表类型事实表主要分为3种经典类型覆盖99%的业务场景3.1 类型1事务事实表Transaction Fact Table3.2 类型2周期快照事实表Periodic Snapshot Fact Table3.3 类型3累积快照事实表Accumulating Snapshot Fact Table四、详细解析三种事实表特点场景案例4.1 类型1事务事实表最常用定义业务每发生一次事件就插入一条数据记录最细粒度的行为。特点粒度最细数据量最大只增不改无更新操作反映业务实时发生的行为适用场景下单、支付、退款、登录、点赞、浏览、出库表结构示例订单订单ID用户ID商品ID金额数量时间11001200199.822025-01-014.2 类型2周期快照事实表定义按照固定时间周期日/周/月对业务状态进行拍照留存记录周期内的汇总结果。特点按固定周期生成数据记录状态不记录明细数据量小查询极快适用场景库存、日销售额、月活跃用户、账户余额、日汇总报表表结构示例每日库存日期仓库ID商品ID当日库存入库量出库量2025-01-01001200112050304.3 类型3累积快照事实表定义跟踪一个业务对象从开始到结束的全生命周期不断更新各阶段时间节点记录完整流程。特点一个业务对象一行数据流程推进时不断更新字段记录多阶段时间与状态适用场景订单履约、物流跟踪、工单流程、贷款审批表结构示例订单履约订单ID创建时间支付时间发货时间完成时间耗时101-01 10:0001-01 10:0501-02 09:0001-03 18:0056h五、选型流程如何选择合适的事实表类型流程图单次行为事件定期状态统计全流程跟踪开始选型业务数据类型事务事实表周期快照事实表累积快照事实表下单/支付/登录/行为库存/余额/日汇总订单履约/物流/工单六、选型规则3步快速确定事实表类型6.1 第一步判断业务类型单次行为 →事务事实表周期状态 →周期快照流程跟踪 →累积快照6.2 第二步判断数据粒度最细粒度、行为级 →事务日/周/月汇总 →周期快照一个对象一行 →累积快照6.3 第三步判断是否需要更新只插入不更新 →事务周期插入 →周期快照流程中不断更新 →累积快照七、三大事实表核心对比表收藏级对比维度事务事实表周期快照事实表累积快照事实表粒度行为级最细周期级日/月对象级一单一行操作只INSERT周期INSERT不断UPDATE数据量最大最小中等记录内容单次行为周期状态全流程阶段查询性能较慢极快快典型场景订单、支付、行为库存、余额、日报物流、履约、工单企业使用频率⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐八、实战场景选型案例8.1 案例1电商用户下单支付行为单次事件选型事务事实表8.2 案例2每日商品库存行为每日状态选型周期快照事实表8.3 案例3订单从创建到完成全流程行为多阶段、需跟踪耗时选型累积快照事实表8.4 案例4用户每日登录次数行为周期统计选型周期快照事实表8.5 案例5售后退款流程行为多节点流程选型累积快照事实表九、事实表设计通用规范只保留数字指标不存储描述性字段必须包含时间维度尽量使用最细粒度方便上层聚合按时间分区提升查询速度避免NULL值指标用0填充不做复杂计算ETL提前预处理十、总结事务事实表记录单次行为最常用下单/支付/行为周期快照事实表记录周期状态库存/日报/余额累积快照事实表记录全流程物流/履约/工单选型口诀单次事件用事务定期状态用快照流程跟踪用累积掌握三种事实表就能搞定所有数仓建模场景结束语事实表是数据仓库建模的灵魂选型正确数仓建设就成功了一半。后续我将持续更新维度建模、缓慢变化维、实时数仓、Doris/ClickHouse优化欢迎关注、点赞、收藏The End点点关注收藏不迷路
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2479576.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!