1、1,第2章数据仓库原理,2,2.1 数据仓库结构体系2.2 数据仓库的数据模型2.3数据抽取、转换和装载2.4 元数据,3,2.1 数据仓库结构体系,2.1.1 数据仓库结构2.1.2数据集市及其结构2.1.3 数据仓库系统结构2.1.4 数据仓库运行结构,4,近期基本数据:是最近时期的业务数据,是数据仓库用户最感兴趣的部分,数据量大。历史基本数据:近期基本数据随时间的推移,由数据仓库的时间控制机制转为历史基本数据。轻度综合数据:是从近期基本数据中提取出的,这层数据是按时间段选取,或者按数据属性(attributes)和内容(contents)进行综合。高度综合数据层:这一层的数据是在轻度综合
2、数据基础上的再一次综合,是一种准决策数据。,2.1.1 数据仓库结构,6,1.数据集市的产生 数据仓库工作范围和成本常常是巨大的。开发数据仓库是代价很高、时间较长的大项目。提供更紧密集成的数据集市就应运产生。目前,全世界对数据仓库总投资的一半以上均集中在数据集市上。,2.1.2 数据集市及其结构,7,数据集市(Data Marts)是一种更小、更集中的数据仓库,为公司提供分析商业数据的一条廉价途径。 Data Marts是指具有特定应用的数据仓库,主要针对某个应用或者具体部门级的应用,支持用户获得竞争优势或者找到进入新市场的具体解决方案。,2.数据集市概念,8,3.数据集市与数据仓库差别,(1
3、)数据仓库是基于整个企业的数据模型建立的,它面向企业范围内的主题。而数据集市是按照某一特定部门的数据模型建立的。(2)部门的主题与企业的主题之间可能存在关联,也可能不存在关联。(3)数据集市的数据组织一般采用星型模型。,9,1、规模是小的 2、特定的应用 3、面向部门 4、由业务部门定义,设计和开发 5、由业务部门管理和维护 6、快速实现 7、购买较便宜 8、投资快速回收 9、更详细的、预先存在的数据仓库的摘要子集 10、可升级到完整的数据仓库,4.数据集市的特性,10,独立数据集市(Independent Data Mart) 从属数据集市(Dependent Data Mart),11,数
4、据仓库系统由数据仓库(DW)、仓库管理和分析工具三部分组成。,2.1.2 数据仓库系统结构,12,1、仓库管理,(1)数据建模 数据建模是建立数据仓库的数据模型。数据仓库的数据模型不同于数据库的数据模型在于: 数据仓库只为决策分析用,不包含事务处理的数据。 数据仓库增加了时间属性数据。 数据仓库增加了一些综合数据。数据仓库的数据建模是适应决策用户使用的逻辑数据模型。,13,(2)数据抽取、转换、装载,数据仓库中的数据,是通过在源数据中抽取数据,按数据仓库的逻辑数据模型的要求进行数据转换,再按物理数据模型的要求装载到数据仓库中去。数据抽取、转换、装载(ETL)是建立数据仓库的重要步骤,需要花费开
5、发数据仓库70%的工作量。,14,(1)查询工具数据仓库的查询不是指对记录级数据的查询,而是指对分析要求的查询。一般包含:可视化工具:以图形化方式展示数据,可以帮助了解数据的结构,关系以及动态性。,2、分析工具,15,(2)多维分析工具(OLAP工具):通过对信息的多种可能的观察形式进行快速、一致和交互性的存取,这样便利用户对数据进行深入的分析和观察。多维数据的每一维代表对数据的一个特定的观察视角,如时间、地域、业务等。,16,(3)数据挖掘工具从大量数据中挖掘具有规律性知识,需要利用数据挖掘(Data Mining)工具。,17,2.1.4 数据仓库的运行结构,数据仓库应用是一个典型的客户/
6、服务器(C/S)结构形式:客户端所做的工作:客户交互、格式化查询、结果显示、报表生成等。服务器端完成各种辅助决策的SQL查询、复杂的计算和各类综合功能等。,18,OLAP服务器将加强和规范化决策支持的服务工作,集中和简化了原客户端和数据仓库服务器的部分工作,降低了系统数据传输量。这种结构形式工作效率更高。,OLAP的三层C/S结构,19,数据仓库存储采用多维数据模型。,2.2 数据仓库的数据模型,果汁,可乐,牛奶,商品维,奶油,浴巾,香皂,北京,上海,长沙,1 2 3 4 5 6 7,城市维,日期维,20,维就是相同类数据的集合,商店、时间和产品都是维。各个商店的集合是一维,时间的集合是一维,
7、商品的集合是一维。每一个商店、每一段时间、每一种商品就是某一维的一个成员。每一个销售事实由一个特定的商店、一个特定的时间、一个特定的商品组成。两维表,如通常的电子表格。三维构成立方体,若再增加一维,则图形很难想象,也不容易在屏幕上画出来。,21,大多数的数据仓库都采用“星型模型”。星型模型是由“事实表”(大表)以及多个“维表”(小表)所组成。“事实表”中存放大量关于企业的事实数据(数量数据)。例如:多个时期的数据可能会出现在同一个“事实表”中。“维表”中存放描述性数据,维表是围绕事实表建立的较小的表。星型模型数据如下图:,2.2.1星型模型,22,星型模型数据存储情况示意图,24,2.2.2雪
8、花模型雪花模型对星型模型的维表进一步层次化,原来的各维表可能被扩展为小的事实表,形成一些局部的“层次”区域。在上面星型模型的数据中 ,对“产品表”“日期表”“地区表”进行扩展形成雪花模型数据见下图。2.2.3星网模型星网模型是将多个星型模型连接起来形成网状结构。多个星型模型通过相同的维,如时间维,连接多个事实表。,25,地区键 ,事务键 ,用户键 ,时间键 ,状态键 ,时间键 用户键 事务键 地区键 电话费用,时间键 用户键 状态键 电话余额,电话公司星网模型实例,27,2.2.4第三范式,范式实际上是传统的关系数据库的设计理论。数据仓库可以按第三范式进行逻辑数据建模。它不同于星型模型在于,把
9、事实表和维表的属性都集中在同一数据库中,按第三范式组织数据。它减少了维表中的键和不必要的属性。著名的NCR数据仓库公司采用了第三范式的逻辑数据模型。,28,星型模型在进行多维数据分析时,速度是很快的。但是增加维度将是很困难的事情。第三范式对于海量数据(如TB级),且需要处理大量的动态业务分析时,就显示了它的优势。,29,2.3数据抽取、转换和装载,数据仓库的数据来源于多个数据源,主要是企业内部数据;存档的历史数据;企业的外部数据。这些数据源可能是在不同的硬件平台上,使用不同的操作系统。源数据是以不同的格式存放在不同的数据库中。数据仓库需要将这些源数据经过抽取、转换和装载的过程,存储到数据仓库的
10、数据模型中。可以说,数据仓库的数据获取需要经过抽取(Extraction)、转换(Transform)、装载(Load)三个过程即ETL过程。,30,231 数据抽取,(1)确认数据源(2)数据抽取技术,31,1.确认数据源,列出对事实表的每一个数据项和事实 列出每一个维度属性 对于每个目标数据项,找出源数据项 一个数据元素有多个来源,选择最好的来源 确认一个目标字段的多个源字段,建立合并规则 确认一个目标字段的多个源字段,建立分离规则 确定默认值 检查缺失值的源数据,32,2.数据抽取技术,当前值。 源系统中存储的数据都代表了当前时刻的值。当商业交易时,这些数据是会发生变化的。 周期性的状态
11、。 这类数据存储的是每次发生变化时的状态。例如,对于每一保险索赔,都经过索赔开始、确认、评估和解决等步骤,都要考虑有时间说明。,33,232 数据转换,1.数据转换的基本功能2.数据转换类型3.数据整合和合并4.如何实施转换,34,1.数据转换的基本功能,选择:从源系统中选择整个记录或者部分记录。 分离/合并:对源系统中的数据进行分离操作或者合并操作。转化:对源系统进行标准化和可理解化。汇总:将最低粒度数据进行汇总。 清晰:对单个字段数据进行重新分配和简化 。,35,2.数据转换类型,(1)格式修正 (2)字段的解码 (3)计算值和导出值 (4)单个字段的分离 (5)信息的合并 (6)特征集合
12、转化 (7)度量单位的转化 (8)关键字重新构造 (9)汇总 (10)日期/时间转化,36,3.数据整合和合并,数据整合和合并是将相关的源数据组合 成一致的数据结构,装入数据仓库。 (1)实体识别问题数据来源于多个不同的客户系统,对相同客户可能分别有不同的键码,将它们组合成一条单独的记录。 (2)多数据源相同属性不同值的问题不同系统中得到的值存在一些差别 ,需要给出合理的值。,37,4.如何实施转换,自己编写程序实现数据转换使用转换工具,38,233 数据装载,(1)数据装载方式(2)数据装载类型,39,1.数据装载方式,基本装载 按照装载的目标表,将转换过的数据输入到目标表中去。 追加 如果
13、目标表中已经存在数据,追加过程在保存已有数据的基础上增加输入数据。 破坏性合并 用新输入数据更新目标记录数据。 建设性合并 保留已有的记录,增加输入的记录,并标记为旧记录的替代。,40,2.数据装载类型,最初装载 这是第一次对整个数据仓库进行装载。 增量装载 由于源系统的变化,数据仓库需要装载变化的数据。 完全刷新 这种类型的数据装载用于周期性重写数据仓库。,41,2.3.4 ETL工具,数据转换引擎代码生成器通过复制捕获数据,42,24 元数据,241 元数据的重要性 242 关于数据源的元数据 243 关于数据模型的元数据 244 关于数据仓库映射的元数据 245 关于数据仓库使用的元数据
14、,43,241 元数据的重要性,最基本的元数据相当于数据库系统中的数据字典。元数据定义了数据仓库有什么,指明了数据仓库中数据的内容和位置,刻画了数据的抽取和转换规则,存储了与数据仓库主题有关的各种商业信息,而且整个数据仓库的运行都是基于元数据的。,44,这类元数据是对不同平台上的数据源的物理结构和含义的描述。具体为:(1)数据源中所有物理数据结构,包括所有的数据项及数据类型。(2)所有数据项的业务定义。(3)每个数据项更新的频率,以及由谁或那个过程更新的说明。(4)每个数据项的有效值。,2.4.2关于数据源的元数据,45,这组元数据描述了数据仓库中有什么数据以及数据之间的关系,它们是用户使用管
15、理数据仓库的基础。这种的元数据可以支持用户从数据仓库中获取数据。,2.4.3关于数据模型的元数据,46,这类元数据是数据源与数据仓库数据间的映射。当数据源中的一个数据项与数据仓库建立了映射关系,就应该记下这些数据项发生的任何变换或变动。即用元数据反映数据仓库中的数据项是从哪个特定的数据源填充的,经过那些转换,变换和加载过程。,2.4.4关于数据仓库映射的元数据,47,1抽取工作之间的复杂关系,一个数据的抽取要经过许多步骤。如图所示:,48,2源数据与目标数据之间的映射,(1)抽取工作(2)抽取工作步骤(3)抽取表映射(4)抽取属性映射(5)记录筛选规则,49,这类元数据是数据仓库中信息的使用情况描述。数据仓库的用户最关心的是两类元数据:(1)元数据告诉数据仓库中有什么数据,它们从哪里来。即如何按主题查看数据仓库的内容。(2)元数据提供已有的可重复利用的查询语言信息。如果某个查询能够满足他们的需求,或者与他们的愿望相似,他们就可以再次使用那些查询而不必从头开始编程。关于数据仓库使用的元数据能帮助用户到数据仓库查询所需要的信息,用于解决企业问题。,2.4.5关于数据仓库使用的元数据,