大数据框架设计路线
数仓分层架构
大数据仓库通常采用分层设计,每一层职责明确、相互依赖,将原始数据逐步加工为面向业务的指标。
| 缩写 | 全称 | 定位 | 数据特点 | 典型应用场景 | 依赖关系 |
|---|---|---|---|---|---|
| ODS | Operational Data Store | 原始数据存储层 | 与源系统完全一致,保留历史全量 | 数据备份、数据探查、ETL 起点 | 直接抽取业务系统数据 |
| DWD | Data Warehouse Detail | 数据仓库明细层 | 清洗、标准化后的明细数据 | 明细查询、事务分析、数据建模 | 依赖 ODS,输出到 DWS/DIM |
| DWS | Data Warehouse Summary | 数据仓库汇总层 | 按主题轻度汇总的宽表或聚合指标 | 报表分析、即席查询、OLAP | 依赖 DWD,输出到 ADS |
| ADS | Application Data Store | 应用数据层 | 高度汇总,面向业务的指标或标签 | 推荐系统、风控、业务大屏 | 依赖 DWS/DWD,直接服务应用 |
| DIW | Data Integration Warehouse | 数据集成仓库 | 整合多源数据,统一企业数据视图 | 跨部门分析、数据中台建设 | 可能包含 ODS/DWD/DWS 分层 |
数据流转路径
原始数据 → ODS → 清洗 → DWD → 聚合 → DWS → 封装 → ADS
↑ ↑ ↑
DIM 层(时间、地域等维度表)各层核心职责
- ODS:贴源层,尽量保持原始数据不变,仅做格式统一
- DWD:清洗层,处理空值、格式异常、去重,建立数据规范
- DWS:聚合层,以主题为中心轻度聚合,形成宽表
- ADS:应用层,直接对接 BI 报表、API 接口、大屏展示
- DIM:维度层,贯穿各层,提供时间、地域、类目等公共维度
常见大数据技术栈
数据采集层 → Flume / Sqoop / DataX / Kettle / Kafka
存储层 → HDFS / HBase / S3
计算层 → MapReduce / Spark / Flink
查询/分析层 → Hive / StarRocks / Presto
资源调度 → YARN / Kubernetes
元数据管理 → Hive Metastore / Atlas
任务调度 → DolphinScheduler / Airflow