数据仓库简介:有些人不理解数据仓库,认为数据仓库就是获取数据,只要会使用hadoop、spark等大数据工具就懂数据仓库,这样的认识太片面。如果要从海量数据中总结出一个报表或者是多个报表,大数据工程师足以;如果在有限的资源动态的数据情况下,向前可历史追溯,向后对不断增加的报表实现兼容,这就需要一套科学的数据管理方法。数据仓库是一门数据管理的科学,数据仓库的核心就是计算、存储和维护之间的博弈。
标准的数据仓库分层:sd(源数据层),ods(中间存储层),dw(多维数据层),dm(数据集市层),app(应用层)
源数据层:源数据一般具有多来源、多类型特征,可能使用多种数据库,甚至是非结构化数据,是数据仓库中数据最复杂的一层,需要工程师对多种数据库多种数据类型都有一定了解。
中间存储层:中间层数据和源数据基本保持一致,保存着最细粒度的数据。中间层可以说是数据仓库最重要的一层,是所有后期分析的数据基础。中间存储层一般存放所有的明细数据,具有数据量大,查询计算较慢的特点。
多维数据层:多维数据层是经过清洗的,有价值的数据。多维数据层是在存储层的基础上清洗脏数据、删选有价值数据,并且对存储层的事实维度表进行事实维度分离。与中间存储层相比,多维数据层与存储层有着相同的数据粒度,但是具有更小的数据量、更快的查询速度。
数据集市层:它是面向主题轻度汇总的数据,在某主题的最细粒度数据,能满足该主题所有需求。数据集市是按照某一主题汇总,既可以由多维数据层汇总,也可是其他集市表进一步汇总,通常是星状、雪花状数据和网状模型。数据集市层主题明确,极大减少使用方理解及使用成本
应用层:这一层就是大家看到的各种报表,一般都是在数据集市基础上按照各种特定维度汇总的结果。应用层是面向用户的,数据具有极快的响应速度。
数据仓库设计步骤
1、确定主题
主题与业务密切相关,所以设计数仓之前应当充分了解业务有哪些方面的需求,据此确定主题
2、确定量度
在确定了主题以后,我们将考虑要分析的技术指标,诸如年销售额之类。量度是要统计的指标,必须事先选
择恰当,基于不同的量度将直接产生不同的决策结果。
3、确定数据粒度
考虑到量度的聚合程度不同,我们将采用“最小粒度原则”,即将量度的粒度设置到最小。例如如果知道某些数据细分到天就好了,那么设置其粒度到天;但是如果不确定的话,就将粒度设置为最小,即毫秒级别的。
4、确定维度
设计各个维度的主键、层次、层级,尽量减少冗余。
5、创建事实表
事实表中将存在维度代理键和各量度,而不应该存在描述性信息,即符合“瘦高原则”,即要求事实表数据条数尽量多(粒度最小),而描述性信息尽量少。