概览
- 为什么要分层
- 把复杂问题简单化
- 将复杂的任务分解成多层来完成,每一层指处理简单的任务,方便定位问题
- 减少重复开发
- 规范数据分层,通过中间数据层,极大的减少重复计算,增加一次计算结果的复用性
- 隔离原始数据
- 真实数据与统计数据解偶开
- 维度建模
- 星型模型
- 维度只有一层
- 雪花模型
- 维度会有多层
- 分层
- ODS (Operation Data Store)
- 原始数据层,保持数据原貌,不做处理
- 压缩存储
- 分区表,避免全表查询
- Hive 内部表和外部表的区别
- 删除内部表,会把元数据和原始数据全删除
- 删除内部表,只删除元数据,原始数据保留
- DWD (Data Warehouse Detail)
- 结构和粒度与原始表保持一致,对 ODS 层进行清洗
- 选择业务过程-》声明粒度-》确认维度-》确认事实
- DWS (Data Warehouse Service)
- 以DWD为基础,按天进行轻度汇总
- DWT (Data Warehouse Topic)
- 以DWS为基础,按主题进行汇总
- ADS (Application Data Store)
- 为各种统计报表提供数据
数仓技术组件
- 数据传输采集
- kafka, Flume, Sqoop, datax
- 数据存储:
- mysql,hdfs,hbase
- 数据计算
- hive,tez on hive, spark,flink
- 数据查询
- Presto
- Druid
- Impala
- Kylin
- 数据可视化
- Echarts,QuickBI,DataV
- 任务调度
- Azkaban,Oozie + CDH
- 集群监控
- Zabbix
- 元数据管理
- Atlas
- 数据质量监控
- Griffin
书籍
- 数据仓库工具箱—维度建模权威指南