--图片来源尚硅谷
数据存储格式:JSON/TSV+ gzip压缩(默认)
Operate Data Store
-- 存储从mysql业务数据库和日志服务器的日志文件中采集到的数据
-- 日志数据
-- 格式:JSON
--业务数据
--历史数据
-- 格式:
-- 全量
-- Datax : TSV
-- 增量
-- Maxwell : JSON
-- 汇总数据
-- 希望用最少的资源存储最多的数据
-- 压缩:
-- gzip:Hadoop默认支持的,压缩率极高,压缩效率不高
-- Izo:Hadoop默认不支持的,压缩效率高,压缩率高
--snappy :Hadoop默认不支持的,压缩效率极高,压缩率不高
数据存储格式:orc列式存储+snappy压缩
Dimension :维度
--所谓的维度其实就是分析数据的角度
--维度层保存的表其实就是分析数据的角度表
-- 性别
-- 年龄
-- 品牌
-- 品类
--维度层保存维度表,所以建模理论应该遵循维度建模理论
-- 维度层中的维度表,主要用于统计分析
--数据存储方式应该为列式存储: orc
--数据压缩效率越高越好(时间短) : snappy
--数据源
-- ODS层的数据为整个数据仓库做准备
-- DIM层数据源就是ODS层
--命名规范
-- 分层标记 (dim_)_维度名称_全量/拉链(标记)
-- 全量: 维度表的全部数据
-- 状态数据为了避免数据出现问题,最好的方式,就是每一天都保存数据
--建模理论
--ER模型
-- ODS
--维度模型
-- 维度(状态)表
--事实(行为) 表
数据存储格式:orc列式存储+snappy压缩
Data Warehouse Detail
-- detail : 详细,明细
命名规范
--分层标记 (dwd_)+ 数据域(分类) + 行为 + 全量/增量
--原则上来讲,所有的行为都应该是增量数据
--特殊情况下,会采用全量方式实现行为统计。
数据存储格式:orc列式存储+snappy压缩
Data Warehouse Summary
-- Data Warehouse : 数仓库
-- Summary : 汇总 (预聚合)
--用于将DIM,DWD的数据进行提前统计,将统计结果保存到当前的表中。
-- 所以当前的表不是最终的统计结果表
--数据量就可能有点多。表的设计中应该添加分区
--当前表需要进一步的聚合处理,所以表的设计中应该是列式存储,且采用snappy压缩
--表的分类:根据数据范围进行分类
--1d:1天的数据的统计
数据来源为DIM,DWD
-- nd :N天的数据的统计
数据来源必须为1d表
--td : 所有数据的统计
数据来源可以为1d表
数据来源也可以为DIM,DWD
--表名
--分层标记 (dws_)+ 数域 + 统计度 + 业务过程 + 统计周期 (1d/nd/td)
-- 指标: 客户想要的一个统计结果 (数值)
--业务过程相同:数据来源相同
--统计周期相同:数据范围相同
--统计粒度相同:数据含义相同
-- Application Data Service
-- Application : (数据仓库)应用
-- Data : 用户需求的统计结果数据
-- Service :对外服务
1. ADS层保存的数据是最终的统计结果,无需做进一步的计算
-- 不需要列式存储,也不需要snappy压缩
2. 统计结果的目的是对外提供服务,所以表不会最终数据的存储位置
-- 需要将表中的数据同步到第三方存储(MYSQL)
-- ADS层的表最好是行式存储: tsv (DataX)
--压缩格式采用gzip
3. 统计结果的数据量不会很多
-- ADS层的表无需分区设计
4. 表的设计
-- ODS层:表的结构依托于数据源的数据结构(ER模型)
-- DIM层:遵循维度模型的维度表的设计理念(维度越丰富越好)
-- DWD层:遵循维度模型的事实表的设计理念(粒度越细越好)
-- ADS层:客户要啥你加啥,不要额外添加
基础概念
维度: 分析数据的角度
粒度: 描述数据的详细程度
统计周期 : 统计的时候,数据统计时间范围
统计粒度 : 分析数据的具体角度,称之为统计粒度(站在哪一个角度统计数据)
指标: 客户想要的一个结果数值
指标体系:
-- 原子指标(拆分指标)
-- 行为,统计字段,统计逻辑
--派生指标(增加条件)
-- 统计周期(范围) + 业务限定(筛选条件) + 统计粒度(分组维度)
--衍生指标(比率,比例)