数仓概览

概览

  1. 为什么要分层
    1. 把复杂问题简单化
      1. 将复杂的任务分解成多层来完成,每一层指处理简单的任务,方便定位问题
    2. 减少重复开发
      1. 规范数据分层,通过中间数据层,极大的减少重复计算,增加一次计算结果的复用性
    3. 隔离原始数据
      1. 真实数据与统计数据解偶开
  2. 维度建模
    1. 星型模型
      1. 维度只有一层
    2. 雪花模型
      1. 维度会有多层
  3. 分层
    1. ODS (Operation Data Store)
      1. 原始数据层,保持数据原貌,不做处理
      2. 压缩存储
      3. 分区表,避免全表查询
      4. Hive 内部表和外部表的区别
        1. 删除内部表,会把元数据和原始数据全删除
        2. 删除内部表,只删除元数据,原始数据保留
    2. DWD (Data Warehouse Detail)
      1. 结构和粒度与原始表保持一致,对 ODS 层进行清洗
      2. 选择业务过程-》声明粒度-》确认维度-》确认事实
    3. DWS (Data Warehouse Service)
      1. 以DWD为基础,按天进行轻度汇总
    4. DWT (Data Warehouse Topic)
      1. 以DWS为基础,按主题进行汇总
    5. ADS (Application Data Store)
      1. 为各种统计报表提供数据

数仓技术组件

  1. 数据传输采集
    1. kafka, Flume, Sqoop, datax
  2. 数据存储:
    1. mysql,hdfs,hbase
  3. 数据计算
    1. hive,tez on hive, spark,flink
  4. 数据查询
    1. Presto
    2. Druid
    3. Impala
    4. Kylin
  5. 数据可视化
    1. Echarts,QuickBI,DataV
  6. 任务调度
    1. Azkaban,Oozie + CDH
  7. 集群监控
    1. Zabbix
  8. 元数据管理
    1. Atlas
  9. 数据质量监控
    1. Griffin

书籍

  1. 数据仓库工具箱—维度建模权威指南