数据仓库
DW,Data Warehouse,数据仓库
:DW是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support);
数据仓库流派
- kimbal模式(维度建模):Kimball 模式从流程上看是是自底向上的,即数据集市>数据仓库>数据源,先有数据集市再有数据仓库的一种敏捷开发方法。
- Inmon 模式:从流程上看是自顶向下的,即数据源>数据仓库>数据集市,先有数据仓库再有数据集市一种瀑布流开发方法。
维度建模
星型模型:一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余;
- 当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型
- 空间换时间:数据冗余,所以事实表的连接少,查询性能好
- 更易于指标分析
雪花模型:雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 “ 层次 “ 区域,这些被分解的表都连接到主维度表而不是事实表。
- 当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。
- 时间换空间:数据冗余少,但事实表之间的连接多,性能相对较低
- 更易于维度分析
在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。
数仓逻辑架构
- 数据源;
ODS,Operation Data Store,原始数据层
:原始数据的copy,因此ODS层也经常会被称为准备区(Staging area);DW,Data Warehouse,数据仓库
:包含DWD和DWS,是ODS层ETL后的结果数据;- 各个系统的元数据通过ETL同步到操作性数据仓库ODS中,对ODS数据进行面向主题域建模形成DW(数据仓库);
- 具备唯一性,权威性,准确性
DM,Data Mart,数据集市
:DM是针对某一个业务领域建立模型,具体用户(决策层)查看DM生成的报表(ADS表);- 以某个业务应用为出发点而建立的局部DW
通过数据仓库不同层次之间的加工过程实现从数据资产向信息资产的转化,并且对整个过程进行有效的元数据管理及数据质量处理。
数仓分层
ODS,Operation Data Store,原始数据层
:存放结构化的原始数据,直接加载原始日志、数据,数据保持原貌不做处理,禁止重复数据;DWD,Data Warehouse Detail,基础数据层
:事实表,对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据,行式存储改为列存储,改压缩格式) 解决一些数据质量问题和数据的完整度问题;DWS,Daw Warehouse Summary,标签数据层
:事实表,轻度汇总层(面向分析型应用进行细粒度的统计和沉淀),对ODS层的操作数据进行轻度综合和汇总统计;ADS,Application Data Store:应用数据层
:用于输出报表数据,根据业务需求组织数据;- 该层支持百花齐放、尽可能都依赖DWS,特殊情况可依赖DWD的数据;
- 该层定期需要定期review,将公共指标沉淀到DWS中;
其他公共层级
DIM,Dimension,公共维表层
,为DWD、DWS、ADS提供维度字段说明,如国家代码和国家名、地理位置、中文名、国旗图片等信息;EVL,Evaluate,数据质量评估层
,独立于ODS、DWD、DWS、ADS、DIM以外,对ODS、DWD、DWS、ADS、DIM的数据质量进行评估,存储评估指标数据;TMP,TEMP,临时表层
:每一层的计算都会有很多临时表,专设TMP层来存储数据仓库的临时表;