数据仓库的起源
上层领导在进行决策分析时候,往往需要专门的决策分析系统或者报表。而这就涉及到将数据转换成信息的问题。传统的解决办法是直接到公司的众多系统中来抽取数据,以满足决策需要。但是这些系统在设计时候并没有考虑到要进行决策分析这一步(只考虑到要存储数据),所以在抽取数据时候面临抽取效率低、无公共的起始数据、数据缺乏可信性、生产效率低等问题。
为了从根本上解决这样的问题就涉及到体系机构的转变。这也是数据仓库环境的出现。
由上图我们可以看出数仓的建立是源自操作型的环境数据所建立起来的,数据仓库的数据再流入到部门层/数据集市,数据集市的数据是根据部门的独特需要而建立的。
数据仓库的开发
数据仓库的开发与传统的应用开发不同,传统的应用开发是根据确定需求然后写代码,测试,上线,维护。而数仓的开发是螺旋式的开发。是一种发现的模式下开发,即:“你给我看一下我想要的,我才能告诉你我真正需要的是什么。”
数据仓库的基本特性
数据仓库是一个面向主题的、集成的、非易失的、反应历史变化的、随时间变化的用来支持管理人员决策的数据集合。
- 面向主题
不同的公司有不同需求,也就形成了不同的主题。 - 集成
数据仓库的数据来源于各种不同的数据源,从这些数据源抽取到数据仓库中的数据具有新的格式。 - 非易失、反应历史变化
数据仓库的数据是批量载入的,以静态快照的方式保存数据,这也就保存了数据的历史状况、而且一般意义上数据仓库并不进行更新。 - 随时间变化
数据仓库中的数据记录都包含时间标志,用以说明数据在某一时间是准确的。
数仓开发的重要方面
- 粒度问题
所谓的粒度就是指细节级别。显然为数仓中的数据选择合适的粒度是至关重要,高粒度(低细节级)虽然可以节约成本但可能不能满足查询需要,而低粒度(高细节级)成本较高,查询效率比较低。
一般企业都选择双重粒度(轻度综合数据+细节数据)其中轻度综合数据满足企业的一般查询,而细节数据存储在便宜的海量存储上,一般不被访问,除了特别需要细节数据来进行分析时候。这样既节约成本又提高了效率。 - 分区问题
数据分区是指将数据放到可独立处理的物理单元中去。将大的物理单元切分成小的物理单元,显然数据仓库的维护与数据处理的灵活度将大大提高。也就实现了数据仓库的本质——灵活的访问数据。- 数据分区的标准
1.时间
2.地理位置
3.业务范围
4.组织单位
5.所有上述标准
总得来说数据分区的标准完全由开发人员自己决定。
数据仓库的数据组织
- 数据仓库的数据组织结构一般有三种:简单堆积结构(从操作型环境中抽取数据再轻度综合集成到数据仓库)轮转综合数据存储(从操作型环境抽数到数据仓库),但存储是按照天、周、月、年来轮转的。简单直接存储(直接从操作型拖到数据仓库)。
- 数据分区的标准