数据仓库是为数据分析所设计的,数据仓库就是一个OLAP系统,OLAP需要对数据模型支持上卷、下钻、切片、切块。数据仓库存的主要是历史数据,通过分析历史数据对未来的决策提供依据。
数据仓库的特点
面向主题(subject-oriented):数据仓库围绕一些重要主题,比如患者、药品、成本、收入。数据仓库关注决策者的目的,而不是单位的日常操作和事务处理。因此,数据仓库通常排除掉与决策无用的数据,提供特定主题的简明视图。
集成(integrated):构造数据仓库将多个异构数据源集成在一起,对数据进行清理,确保命名约定、编码结构、属性单位等一致。
与时间相关(time-variant):存储的数据从历史角度(5至10年)提供信息。数据仓库中的关键结构都包含时间元素。
与业务分离(nonvolatile):数据仓库的数据源于业务但与业务分离,不需要支持事务处理、恢复和并发控制。通常,数据仓库只有两种数据访问操作,数据初始装载和数据访问。
数据仓库是一种决策支持数据模型的物理实现,存放着企业战略决策所需的信息,用于支持结构化查询、分析报告和决策制定。
建仓的过程(data warehousing)就是构建和使用数据仓库的过程。数据仓库的使用者是“知识工人”,比如经理、分析人员、主管,他们使用数据仓库快捷、方便地得到数据的总体视图,根据数据仓库的信息做出准确的决策。
以医院举例,医院如何使用数据仓库中的信息来支持决策:
提高患者满意度(就医时长,就医时段,院内人数高峰,大型检查排队情况)
医院经营状况分析,按季度、按年、按院区对比,调整资源投入与配比
利润分析,找出利润占比大的治疗项目及科室,分析利润源
资产分析,对资产开销进行调整,减少无效投入
数据仓库是更新驱动(update-driven)而不是查询驱动(query-driven),数据仓库在数据建模阶段就决定了能查什么,数据是提前处理的,不包含近期数据。同时数据仓库提供了数据查询的高性能,数据在更新时就已经被预处理、注释、汇总到一个语义一致的数据存储中,数据仓库存储并集成历史信息,提供复杂的多维查询。
数据仓库的结构分为三层:

最上层是一套报表工具用来做数据可视化,提供趋势分析、预测。
中间一层是一种扩充的关系型数据库,用来将多维数据操作映射为标准关系操作
底层是一个关系型数据库加上ETL工具将外部数据源的数据提取、清理、转换至关系型数据库。
数据仓库的三种模型
企业仓库(Enterprise warehouse):这类数据仓库搜集关于分析主题的所有信息,提供企业范围内的数据集成,包含细节数据和汇总数据。它需要进行广泛的商务建模,可能要经历多年的设计和建设。
数据集市(data mart):数据集市是企业数据的一个子集,主要服务于某一个部门,并且数据集市的数据基本上都是汇总的。数据集市的设计和规则不是为企业范围内的决策准备的,后期如果集成到企业仓库可能会比较复杂。
虚拟仓库(virtual warehouse):虚拟仓库只是业务数据库上视图的集合,主要是为了应付查询,有些汇总视图可能会被物化。虚拟仓库建立容易,但对业务数据库的性能有冲击。
我们把企业仓库比作一个个堆满数据的货架,数据集市则类似宜家的二楼或三楼的样板展示间,样板间里用到的素材取自货架,每个商品上都有货架号,你看中什么商品出门结算时报货架号就可以了,工作人员会去一楼的货架上把商品取出来。
数据仓库的建立与ETL工具密不可分,ETL就是指数据提取、数据转换、数据加载。
数据提取:将数据从数据源中抽取出来,一般使用JDBC客户端,通过SQL抽取
数据清理:对抽取的数据进行分析,订正或过滤数据中的错误
数据变换:将数据换转成数据仓库的目标格式,数据类型或样式可能会变,比如由编码转换为文字,数据有可能被拆分和组合
加载:数据最终被导入到数据仓库
元数据是关于数据的数据。在数据仓库中,元数据是定义仓库对象的数据。元数据包括的内容:
数据仓库结构的描述,包括仓库模式、视图、维、分层结构、导出数据的定义
仓库使用的统计量、错误报告、审计跟踪
源数据与数据仓库的映射
性能数据,定时刷新调度策略
数据仓库建模使用的是数据立方体多维数据模型(data cube)。数据立方体允许以多维对数据进行观察,它由维和事实定义。
维是一个单位想要记录的透视和实体。我们说患者就诊数据有多个维度,就是指可以从就诊科室、患者年龄段、性别、病种、居住位置来对数据进行分析。我们可以就几个维度来对患者进行分析。每个维都可以有一个与之相关联的表,该表称为维表。每个维表可以包含与它相关的信息,它与数据的分布相关。
多维数据模型围绕着数值展开的,每个分析主题用事实表来表示。事实是以数值来度量的。我们把它看作数量,是因为我们想根据它们分析维之间的关系。
我们来看一个三维的数据:

针对数据立方体,我们再来理解数据的切片、切块、上卷、下钻就好理解多了。

文章中的内容是对《数据挖掘概念与技术》一书的学习和梳理。





