一、ODS层(Operational Data Store)
贴源层(范式建模)
1.1 数据采集
业务库
离线:sqoop
实时:canal监听MySQL的binlog
埋点日志
通常以JSON格式保存
- flume定时抽取
- flink实时接入或者直接落地HDFS(小文件问题)
1.2 数据处理
保持原库原有数据
二、DWD层(Data Warehouse Detail)
数据明细层(维度建模)
效果:覆盖所有系统的、完整的、干净的、具有一致性的数据层
非常规范的、高质量的、可信的数据明细层
2.1 数据处理
-
去噪
异常数据,比如年龄200岁
-
去重
-
字段命名规范
统一字段命名和字段编码
-
清洗转换
-
等等
2.2 建模
根据维度模型,设计事实表和维度表
三、DWM(Data WareHouse Middle)
中间层(可选)
数据处理
轻度聚合,提升公共指标的复用性,减少重复加工
四、DWS层(Data WareHouse Servce)
基于主题的公共汇总层,也叫
宽表
80%的需求都从DWS来支持,而不是直接暴露应用放原始日志
建模
基于主题的维度聚合
五、APP(Application)
数据集市层
一般会存放在ES、OLAP数据库中供线上系统访问
建模
六、DIM层(Dimension)
公共维表层
数据共享
建模
高基维表
用户资料表、商品资料表等数据量可能是千万级或者上亿级别
低基维表
配置表、日期维表等数据量可能是个位数或者几千几万
七、衡量数仓业务覆盖程度的指标
步骤
1、基于元数据提供的血缘信息统计调度平台运行的离线任务(表1)
2、近一周内分析即席查询报告(表2)
表1数据
表1 离线调度任务统计
分析
表2数据
表2 近1周内查询统计
分析
八、数据探查
梳理业务流程
根据什么(维度)汇总、汇总什么(度量)以及汇总的范围多大(度量)