数据仓库分层架构
数据仓库分层的原因
1通过数据预处理提高效率,因为预处理,所以会存在冗余数据
2如果不分层而业务系统的业务规则发生变化,就会影响整个数据清洗过程,工作量巨大
3通过分层管理来实现分步完成工作,这样每一层的处理逻辑就简单了
标准的数据仓库分层:ods(临时存储层),pdw(数据仓库层),mid(数据集市层),app(应用层)
ods:历史存储层,它和源系统数据是同构的,而且这一层数据粒度是最细的,这层的表分为两种,一种是存储当前需要加载的数据,一种是用于存储处理完后的数据。
pdw:数据仓库层,它的数据是干净的数据,是一致的准确的,也就是清洗后的数据,它的数据一般都遵循数据库第三范式,数据粒度和ods的粒度相同,它会保存bi系统中所有历史数据
mid:数据集市层,它是面向主题组织数据的,通常是星状和雪花状数据,从数据粒度将,它是轻度汇总级别的数据,已经不存在明细的数据了,从广度来说,它包含了所有业务数量。从分析角度讲,大概就是近几年
app:应用层,数据粒度高度汇总,倒不一定涵盖所有业务数据,只是mid层数据的一个子集。
数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持。数据仓库的context也可以理解为:数据源,数据仓库,数据应用
数据仓库可以理解为中间集成化数据管理的一个平台
etl(抽取extra,转化transfer,装载load)是数据仓库的流水线,也可以认为是数据仓库的血液。
数据仓库的存储并不需要存储所有原始数据,因为比如你存储冗长的文本数据完全没必要,但需要存储细节数据,因为需求是多变的,而且数据仓库是导入数据必须经过整理和转换使它面向主题,因为前台数据库的数据是基于oltp操作组织优化的,这些可能不适合做分析,面向主题的组织形式才有利于分析。
多维数据模型就是说可以多维度交叉查询和细分,应用一般都是基于联机分析处理(online analytical process OLAP),面向特定需求群体的数据集市会基于多位数据模型构建
而报表展示就是将聚合数据和多维分析数据展示到报表,提供简单和直观的数据。
元数据,也叫解释性数据,或者数据字典,会记录数据仓库中模型的定义,各层级之间的映射关系,监控数据仓库的数据状态和etl的任务运行状态。一般通过元数据资料库来统一存储和管理元数据。