数据仓库之路FAQFAQ目录一、与数据仓库有关的几个概念 (3)1.1 目录 (3)二、数据仓库产生的原因 (8)三、数据仓库体系结构图 (11)四、数据仓库设计 (12)4.1 数据仓库的建模 (12)4.2 数据仓库建模的十条戒律: (13)五、数据仓库开发过程 (14)5.1 数据模型的内容 (14)5.2 数据模型转变到数据仓库 (14)5.3 数据仓库开发成功的关键 (15)六、数据仓库的数据采集 (16)6.1 后台处理 (17)6.2 中间处理 (17)6.3 前台处理 (18)6.4 数据仓库的技术体系结构 (18)6.5 数据的有效性检查 (20)6.6 清除和转换数据 (20)6.7 简单变换 (22)6.8 清洁和刷洗 (24)6.9 集成 (25)6.10 聚集和概括 (27)6.11 移动数据 (27)七、如何建立数据仓库 (30)7.1 数据仓库设计 (31)7.2 数据抽取模块 (32)7.3 数据维护模块 (33)一、与数据仓库有关的几个概念1.1 目录☐Datawarehouse☐Datamart☐OLAP☐ROLAP☐MOLAP☐ClientOLAP☐DSS☐ETL☐Adhocquery☐EIS☐BPR☐BI☐Datamining☐CRM☐MetaDataData warehouse本世纪80年代中期,“数据仓库之父”William H.Inmon先生在其《建立数据仓库》一书中定义了数据仓库的概念,随后又给出了更为精确的定义:数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。
与其他数据库应用不同的是,数据仓库更像一种过程,对分布在企业内部各处的业务数据的整合、加工和分析的过程。
而不是一种可以购买的产品。
Data mart即数据集市,或者叫做“小数据仓库”。
如果说数据仓库是建立在企业级的数据模型之上的话。
那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。
数据集市可以在一定程度上缓解访问数据仓库的瓶颈。
OLAP联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。
当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。
用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。
因此Codd提出了多维数据库和多维分析的概念,即OLAP。
Codd提出OLAP的12条准则来描述OLAP系统:准则1 OLAP模型必须提供多维概念视图准则2 透明性准则准则3 存取能力推测准则4 稳定的报表能力准则5 客户/服务器体系结构准则6 维的等同性准则准则7 动态的稀疏矩阵处理准则准则8 多用户支持能力准则准则9 非受限的跨维操作准则10 直观的数据操纵准则11 灵活的报表生成准则12 不受限的维与聚集层次ROLAP基于Codd的12条准则,各个软件开发厂家见仁见智,其中一个流派,认为可以沿用关系型数据库来存储多维数据,于是,基于稀疏矩阵表示方法的星型结构(starschema)就出现了。
后来又演化出雪花结构。
为了与多维数据库相区别,则把基于关系型数据库的OLAP称为Relational OLAP,简称ROLAP。
代表产品有Informix Metacube、Microsoft SQL ServerOLAP Services.MOLAP严格遵照Codd的定义,自行建立了多维数据库,来存放联机分析系统数据的Arbor Software,开创了多维数据存储的先河,后来的很多家公司纷纷采用多维数据存储。
被人们称为MuiltDimension OLAP,简称MOLAP,代表产品有Hyperion(原Arbor software) Essbase、Showcase STRATEGY等。
Client OLAP相对于Server OLAP而言。
部分分析工具厂家建议把部分数据下载到本地,为用户提供本地的多维分析。
代表产品有Brio Designer, Business Object.DSS决策支持系统(Decision Support system),相当于基于数据仓库的应用。
决策支持就是在收集所有有关数据和信息,经过加工整理,来为企业决策管理层提供信息,为决策者的决策提供依据。
ETL数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程。
构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
Ad hoc query即席查询,数据库应用最普遍的一种查询,利用数据仓库技术,可以让用户随时可以面对数据库,获取所希望的数据。
EIS领导信息系统(Executive Information System),指为了满足无法专注于计算机技术的领导人员的信息查询需求,而特意制定的以简单的图形界面访问数据仓库的一种应用。
BPR业务流程重整(Business Process Reengineering),指利用数据仓库技术,发现并纠正企业业务流程中的弊端的一项工作。
数据仓库的重要作用之一。
BI商业智能(Business Intelligence),指数据仓库相关技术与应用的通称。
指利用各种智能技术,来提升企业的商业竞争力。
Data mining数据挖掘,Data Mining是一种决策支持过程,它主要基于AI、机器学习、统计学等技术,高度自动化地分析企业原有的数据,作出归纳性的推理,从中挖掘出潜在的模式,预测客户的行为,帮助企业的决策者调整市场策略,减少风险,作出正确的决策CRM客户关系管理(Customer Relationship management),数据仓库是以数据库技术为基础但又与传统的数据库应用有着本质区别的新技术,CRM就是基于数据仓库技术的一种新应用。
但是,从商业运作的角度来讲,CRM其实应该算是一个古老的"应用"了。
比如,酒店对客人信息的管理,如果某个客人是某酒店的老主顾,那么该酒店很自然地会知道这位客人的某些习惯和喜好,如是否喜欢靠路边,是否吸烟,是否喜欢大床,喜欢什么样的早餐,等等。
当客人再次光临时,不用客人自己提出来,酒店就会提供客人所喜欢的房间和服务。
这就是一种CRM.Meta Data元数据,关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据。
同时元数据还包含关于数据含义的商业信息,所有这些信息都应当妥善保存,并很好地管理。
为数据仓库的发展和使用提供方便。
二、数据仓库产生的原因事务处理环境不适宜DSS应用的原因主要有以下五条:(1)事务处理和分析处理的性能特性不同。
在事务处理环境中,用户的行为特点是数据的存取操作频率高而每次操作处理的时间短;在分析处理环境中,用户的行为模式与此完全不同,某个DSS应用程序可能需要连续几个小时,从而消耗大量的系统资源。
将具有如此不同处理性能的两种应用放在同一个环境中运行显然是不适当的。
(2)数据集成问题。
DSS需要集成的数据。
全面而正确的数据是有效的分析和决策的首要前提,相关数据收集得越完整,得到的结果就越可靠。
当前绝大多数企业内数据的真正状况是分散而非集成的。
造成这种分散的原因有多种,主要有事务处理应用分散、“蜘蛛网”问题、数据不一致问题、外部数据和非结构化数据。
(3)数据动态集成问题。
静态集成的最大缺点在于,如果在数据集成后数据源中数据发生了变化,这些变化将不能反映给决策者,导致决策者使用的是过时的数据。
集成数据必须以一定的周期(例如24小时)进行刷新,我们称其为动态集成。
显然,事务处理系统不具备动态集成的能力。
(4)历史数据问题。
事务处理一般只需要当前数据,在数据库中一般也是存储短期数据,切不同数据的保存期限也不一样,即使有一些历史数据保存下来了,也被束之高阁,未得到充分利用。
但对于决策分析而言,历史数据是相当重要的,许多分析方法必须一大量的历史数据为依托。
没有历史数据的详细分析,是难以把握企业的发展趋势的。
DSS对数据在空间和时间的广度上都有了更高的要求,而事务处理环境难以满足这些要求。
(5)数据的综合问题。
在事务处理系统中积累了大量的细节数据,一般而言,DSS并不对这些细节数据进行分析。
在分析前,往往需要对细节数据进行不同程度的综合。
而事务处理系统不具备这种综合能力,根据规范化理论,这种综合还往往因为是一种数据冗余而加以限制。
要提高分析和决策的效率和有效性,分析型处理及其数据必须与操作型处理及其数据相分离。
必须把分析型数据从事务处理环境中提取出来,按照DSS处理的需要进行重新组织,建立单独的分析处理环境,数据仓库正是为了构建这种新的分析处理环境而出现的一种数据存储和组织技术。
三、数据仓库体系结构图四、数据仓库设计4.1 数据仓库的建模☐数据模型1)所有的实体都是平等关系。
2)仅仅从数据模型的角度来着手设计数据仓库会产生一种“平面”效应。
☐星型连接1)事实表:位于星型连接的中央,它是被大量载入数据的实体。
2)维表:周围的其它实体。
3)在很多情况下:文本数据与数值数据是分离开的。
通过数据预连接和建立有选择的数据冗余,设计者为访问和分析过程大大简化了数据。
星型连接应用于设计数据仓库中很大的实体,而数据模型则应用于数据仓库中较小的实体。
4.2数据仓库建模的十条戒律:1)必须回答紧迫的问题;2)必须有正确的事实表;3)将有正确的维表,描述必须按最终用户的业务术语表达;4)必须理解数据仓库所影响的公司过程或影响数据仓库的公司过程;5)对于事实表,应该有正确的“粒度”;6)根据需要存储正确长度的公司历史数据;7)以一种对于公司有意义的方式来集成所有必要的数据;8)创建必要的总结表;9)创建必要的索引;10)能够加载数据仓库数据库并使它以一种适宜的方式可用。
五、数据仓库开发过程☐建立或获得企业的数据模型;☐定义记录系统;☐设计数据仓库并按主题领域进行组织;☐设计和建立操作型环境中的记录系统和数据仓库之间的接口,这些接口能保证数据仓库的载入工作能有序的进行;☐开始载入第一个主题领域,进入载入和反馈过程,数据仓库中的数据在此过程中也在不断地改变。
5.1 数据模型的内容☐标识主要主题领域。
☐各个主要主题之间的各种关系。
☐清晰地定义模型的边界。
☐把原始数据和导出数据分离。
☐每个主题领域需要标识✓键码✓属性✓属性分组之间的关系✓多重出现的数据✓数据的类型5.2 数据模型转变到数据仓库☐如果原先没有时间元素的话,时间元素必须加入到键码结构中☐必须清除所有的纯操作型数据☐需要将参照完整性关系转换成“人工关系”☐将经常需要用到的到处数据假如到设计中☐对数据的结构进行调整✓增加数据阵列✓增加数据冗余✓在合适的情况下进一步分离数据✓在合适的时候合并数据表☐需要做数据的稳定性分析5.3 数据仓库开发成功的关键关键:是数据体系结构设计者和DSS分析者之间的反馈循环。