数据仓库分层体系
数据仓库一个典型的数据流向是业务系统 → ODS原始数据 → DWD清洁明细数据 → DWS主题汇总宽表 → ADS应用指标)1. 分层体系介绍ODSOperational Data Store层表前缀 ods_核心职责 数据引入层与源业务系统保持同构完成原始数据的采集和备份。特点 数据是原始的、未经清洗的可能存在数据质量问题。通常只做简单的字段脱敏和格式转换。DWDData Warehouse Detail层表前缀 dwd_核心职责 数据明细层对ODS层数据进行清洗、标准化、维度退化形成业务过程的原子粒度事实表和一致性维度表。特点 数据仍然是明细的但已经是干净、规范的。例如一个订单从创建到支付的所有状态变更都可能是一条条独立的明细记录。DWSData Warehouse Summary层表前缀 dws_核心职责 如上所述面向主题的轻度汇总形成宽表。ADSApplication Data Service层表前缀 ads_ 或 app_核心职责 应用数据层/数据产品层存放为特定业务场景或报表需求而高度聚合的指标数据。特点 这层的表是面向最终应用的查询速度极快。数据通常非常聚合。举例 ads_daily_sales_by_category每日按商品类目统计的销售总额表里面可能只有date product_category total_sales_amt 几个字段。DIMDimension层表前缀 dim_核心职责 维度表层存放几乎不变或变化缓慢的维度数据如商品维度表(品牌, 品类, 描述, 价格)、用户维度表、地区维度表等。特点 通常在全库中共享被DWD、DWS等层广泛关联使用。2. 电商场景举例以一个典型的电商“用户浏览下单”场景为例ods点击表: ods_user_click_log{ user_id: 123, item_id: 1, time: 2026-02-27 10:00:00, action: click, ip: 192.168.1.1 }订单表: ods_order_infoorder_id | user_id | product_id | order_amount | order_time | status ----------------------------------------------------------------------- 1001 | 123 | 1 | 100.00 | 2024-05-27 11:30:00 | 1 (已支付)dwd对以上数据作清洗, 且关联商品维表, 直接获取 商品标题, 类目信息, 避免后续频繁关联.同样是两张表分开: dwd_fact_user_click_log 和 dwd_fact_order_detail .dws 轻度汇总用户一日行为宽表, 表名: dws_user_behavior_1duser_id | dt | pv_count | cart_count | order_count | order_amount --------------------------------------------------------------------------- 123 | 2024-05-27 | 10 | 2 | 1 | 100.00下游价值数据分析师想要分析小明的行为轨迹不再需要去关联复杂的dwd_fact_user_click_log和dwd_fact_order_detail表直接查询这张宽表即可快速得到汇总结果。ads 高度聚合汇总从dws_user_behavior_1d中按dt分组汇总出全平台当日的核心指标。表名: ads_platform_daily_stats (平台日统计报表)dt | total_pv | total_uv | total_cart_users | total_order_users | gmv ----------------------------------------------------------------------------------- 2024-05-27 | 5000000 | 1000000 | 200000 | 50000 | 5000000.00