数仓入门基础-1-漫谈数仓
百度百科的定义:
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。数据仓库的特征在于面向主题、集成性、稳定性和时变性。
从传统数仓到互联网数仓,有很多相似点也有很多不同点,有大佬曾在InfoQ写到他的一些经历,以下是链接:
互联网数仓的发展比较有代表性的是阿里,以下是《阿里大数据之路》中的数据体系架构图。
阿里数据体系架构图从上面的阿里体系架构图中可以看出,数仓建模的主要工作在数据计算层,经过计算和整合后的数据才有价值,这个是数仓工作中的主要部分。对数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性,让数据发挥它的价值。
在数据仓库技术出现前,有很多数据分析的先驱者已经发现,简单的“直接访问”方式很难良好工作,这样做的失败案例数不胜数。下面列举一些直接访问业务系统无法工作的原因:
1.某些业务数据由于安全或其他因素不能直接访问。
2.业务系统的版本变更很频繁,每次变更都需要重写分析系统并重新测试。
3.很难建立和维护汇总数据来源于多个业务系统版本的报表。
4.业务系统的列名通常是硬编码,有时仅仅是无意义的字符串,这让编写分析系统更加困难。
5.业务系统的数据格式,如日期、数字的格式不统一。
6.业务系统的表结构为事务处理性能而优化,有时并不适合查询与分析。
7.没有适当的方式将有价值的数据合并进特定应用的数据库。
8.没有适当的位置存储元数据。
9.用户需要看到的显示数据字段,有时在数据库中并不存在。
10.通常事务处理的优先级比分析系统高,所以如果分析系统和事务处理运行在同一硬件之上,分析系统往往性能很差。
11.有误用业务数据的风险。
12.极有可能影响业务系统的性能。
数仓的存在性:
1.相比操作型系统保存数据,dw使用数据,操作型系统反映最新数据状态,dw需收集海量历史数据进行分析;
2.dw可以让业务人员方便的获得数据,有很强的数据服务能力;
3.dw统一口径,以一致的形式展现信息,避免出现指标正确性的争论;
4.dw有良好的扩展性,业务发生变化,需要与历史数据进行完美融合;
5.dw是提高决策制定能力的权威和可信的基础,数据质量是生命线,有质量的数据才有说服力
数仓的特性:
1.面向主题的,按照一定的主题进行组织,主题是指用户使用数据仓库进行决策时所关心的重点方面,后面会重点举例说明。
2.数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工和集成之后,进入数据仓库。
3.数据仓库是不可更新的,数据仓库主要是为决策分析供数据,所涉及的操作主要是数据的查询。
4.数据仓库是随时间而变化的,传统的关系型数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
5.汇总的。操作性数据映射成决策可用的格式。
6.大容量。时间序列数据集合通常都非常大。
7.非规范化的。Dw数据可以是而且经常是冗余的。
8.元数据。将描述数据的数据保存起来。
9.数据源。数据来自内部的和外部的非集成操作系统。
数仓为什么要分层建模???
随着DT时代的到来,数据爆发性增长,如何将数据进行有序、结构化的分类组织和存储是面临的很大的一个挑战。多而杂的数据,会让取数效率低下、口径不一、质量无保障等问题,所以数仓的建模主要解决以下几个问题:
1.性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐。
2.成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果的复用,极大地降低大数据系统中的存储和计算成本。
3.效率:良好的数据模型能极大的改善用户使用数据的体验,提高使用数据的效率。
4.质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。
这四个方面在真正构思模型时还需考虑权衡,可能不能全都达到极致,需利弊对比,采用最合理的方案。