`

数据仓库名词摘要

 
阅读更多
浅析数据仓库构架

目前数据仓库比较成熟并已形成理论的有两个:
Bill Inmon 企业信息工厂(CIF)
Ralph Kimball 多维体系结构(Ralph Kimball)

企业信息广场的模块

主要包括集成转换层(I&T),操作数据存储(ODS),数据仓库(EDW),数据集市(DM),
探索仓库(EW)等组件。
企业信息工厂的各个部件可以不断的相互调整,最终找到一种平衡。这也是称为企业信息工厂的原因。


集成转换层的目的是将来自操作型源系统的数据集成转换到数据仓库中,它通常由
一组程序组成,而其他部件如数据仓库和数据集市等则主要由数据组成。
当业务数据来源多,业务复杂时,集成转换层会建立一些临时表,为数据处理提供方便。
这时,集成转换层包括程序和数据,也称数据准备区(Data Staging Area)。通常中等规模
及以上的数据仓库系统都会建立数据准备区。

操作数据存储(ODS)是建立在数据准备区和数据仓库之间的一个部件。用来满足企业集成的,
综合的操作型处理需要。

数据仓库
是企业信息工厂的核心部件,用来保存整个企业的数据。用来满足企业战略决策需要。

数据集市是为了满足企业特定部门的分析需求而专门建立的数据的集合。数据集市一般来说
是非规范化的,定制的和汇总的。而多位体系架构中的数据集市分为两种,分别是原子数据集市
和聚集数据集市。

探索仓库或数据挖掘仓库的建立主要是为了解决大型查询,提高数据仓库的效率。
当有探索或挖掘需求时,会从数据仓库导出一部分提供给他们操作。




多维体系结构的模块

一般翻译为多维体系结构,也称为总线架构。
多维体系结构主要包括后台和前台两部分,后台称为数据准备区,是MD架构最核心的部件。
在后台是一致性维度的产生,保存和分发的场所。同时,代理键也在后台产生。
前台是MD架构对外的接口,包括两种主要的数据集市,一种是原子数据集市,另一种是聚集数据集市。
原子数据集市保存最低粒度的细节数据,数据以星型结构来存储。
聚集数据集市的粒度通常比原子数据集市要高。
-----------------------------------------------------------------------------------------------------------------------

维度建模的数据仓库中,三个重要概念
一致性维度,一致性事实表,总线架构

在维度建模的模式中,数据仓库是由物理上的数据集市组合逐步完成的。
一致性维度是保证各个数据集市的连接,而不会成为独立的集市。

一致性事实表
需要查询多个数据集市中的事实时,一般通过交叉探查来实现。
为了能在多个数据集市间进行交叉探查,一致性事实主要需要保证两点。
第一个是KPI的定义及计算方法要一致,第二个是事实的粒度单位要一致。

总线架构

在维度建模模式(多维体系结构)中,主导思想是分布建立数据仓库,由数据集市
组合成企业的数据仓库。但是在建立第一个数据集市前,架构师首选
要做的就是设计出在整个企业内具有统一解释的标准化的维度和事实表。
即一致性维度和一致性事实表。

一致性维度就好比企业范围内的一组总线,不同数据集市的事实就好比插在这组总线上的元件。

------------------------------------------------------------------------------------------------------------------------------
浅析事实表

一般来说,以粒度作为划分依据,主要有三种事实表
事务粒度事实表 : 原子粒度,一条记录代表了业务系统中的一个事件。
周期粒度事实表 : 按时间间隔的业务累积数据,通常的时间是每天,每周或每月。
累积快照事实表 : 一般用来涵盖一个事务的生命周期内的不确定时间跨度。
举例来说,
订货日期
预定交货日期
实际发货日期
实际交货日期
数量
金额
运费
在这个累积快照事实表中,记录的是购买货物的整个生命周期的数据,记录第一次产生时,实际发货日期和实际交货日期是不确定的,
需要用表示未知的代理关键字来代替。等实际发货后,需要对数据仓库中的这条记录进行更新操作,将实际发货日期补上。




浅析代理关键字


代理关键字一般是指维度表中使用顺序分配的整数值作为主键,也称为代理键。
在Kimball的维度建模领域汇总,是强烈推荐使用代理关键字的。
优点:
1.使用代理关键字能够使数据仓库环境对操作型环境的变化进行缓冲。因为多个源系统中可能存在不统一的关键字编码。
2.性能上存在优势,整形数字占用容量小。
3.使用代理关键字可以建立一些不存在的维度记录。
4.使用代理关键字可以用来处理缓慢变化维度。

缺点,使得数据加载变的非常复杂。

----------------------------------------------------------------------------------------------------------------
概念数据模型
是最终用户对数据存储的看法,反映了最终用户综合性的信息需求,
概念数据模型的内容包括重要的实体与实体之间的关系,不包括实体的属性,也不用主键。
概念数据模型的目标是统一业务概念,作为业务人员和技术人员之间沟通的桥梁。

逻辑数据模型

逻辑数据模型反映的是系统设计人员对数据存储的观点,是对概念数据模型进一步的分解和细化。
逻辑数据模型的内容包括所有的实体和关系,确定每个实体的属性,定义每个实体的主键。
逻辑数据模型的目标是尽可能地详细描述数据,但并不考虑数据在物理上如何来实现。

物理数据模型

在逻辑数据模型的基础上,考虑各种具体的技术实现因素。进行数据库体系结构设计。
确定所有的表和列,表的范式化等内容。
在物理实现上的考虑,可能会导致物理数据模型和逻辑数据模型有较大的不同。
物理数据模型的目标是指定如何用具体的数据库来实现逻辑数据模型。


--------------------------------------------------------------------------------------------------------------
使用代理键的日期维度

 在建立日期维度时关键字应该按日期的顺序来分配整数,它使事实表可以基于日期进行
 物理的分区。

----------------------------------------------------------------------------------------------------------------

Inmon与Kimball的数据仓库建模观点区别

Inmon认为先梳理整个企业的信息,再此基础上进行构建数据仓库。
Kimball的方式是先构建部门级别的数据仓库,基于一致性维度的理论进行逐步完善数据仓库。

------------------------------------------------------------------------------------------------------------------

时间跨度建模


对于一些相对复杂的关于时间跨度的问题如下。
查询在一个时间跨度中的某个时间点的所有客户。
查询在一个时间跨度中某个给定客户的最后一个事务处理记录。
查询在任意个一个指定的时间点的帐户余额信息。


对于这些较复杂的关于时间跨度的问题,我们可以通过在事实表记录中增加两个时间戳来处理,分别描述事务处理的起始时间和终止时间。
通过起始时间和终止时间的设计,我们可以很容易的回答前面的三个问题。
1.查询所有有效帐户的事务,检索出起始时间在时间跨度结束之前,终止时间在时间跨度开始之后的记录。
2.查询单笔事务记录,检索出起始时间在时间跨度结束之前,终止时间在时间跨度开始之后的记录。
3.查询单笔事务记录,检索出起始时间在给定时间点之前,终止时间在给定时间点之后的记录。

在前面的这写情况下,使用一个带有BETWEEN的SQL就可以回答问题。
这种使用两个时间戳的方法,有一个缺点。几乎在所有的情况下,我们都需要对事实表中的每条记录操作两次。
第一次是当我们生成记录时,第二次是事务处理结束时。当生成记录时,终止时间我们应该设置为一个未来不会使用到的日期,
这样可以避免应用程序处理NULL值。




分析应用的五个阶段

1.公共报表 --针对企业当前业务信息提供标准的管理报表。
2.异常鉴别 -- 针对企业绩效情况提供预警和鉴别功能,包括绩效超常和绩效过低两种情况。
3.因果分析 -- 针对企业的某种异常状况,提供“为什么”的分析手段和方法。
4.模型选择 -- 为企业不同的决策提供背景模型及模拟数据,支持企业决策方案的选择。
5.跟踪动作 -- 对分析后的建议结果进行评估,评估后将分析结果应用回操作型环境和数据仓库中,形成企业信息系统的闭环。
--------------------------------------------------------------------------------------------------------------------
在本TIP中我们用非事实型事实表来补充缓慢变化维的处理策略。
对于一个大型的B2C企业来说,会有上千万的客户。对于这种大型的客户表,
需要跟踪客户的变化情况,我们可以采用TYPE 2的缓慢变化维策略来进行应对。例如,一个大的客户表,我们尽量减小TYPE 2生成的记录数,
建立了四个微型维度,分别是客户信用属性、客户参数、市场倾向和客户详细地址。这样在交易粒度事实表中我们会保留客户相关信息的五个外键,
这些外键关联到客户不同的信息。
同时,我们还应该支持客户的整体信息的访问。为了能方便访问客户的整体信息,我们可以建立另一个周期快照事实表,
每天加载客户维度和其相关联的微型维度的关系。但是这样就需要每天保存上千万记录的快照,不是一个好的选择。
这时,我们可以考虑建立非事实型事实表来解决这个问题。我们可以建立一个事实表,其中只有客户维度和其对应微型维度的外键
,当客户有TYPE 2变化时或者产生新的微型维度记录时,我们可以在这个事实表中插入一条记录。在这个事实表中还可以加入生效日期和失效日期,
可以加一列用来标识是当前客户信息记录,可以加变化原因列。

需要查看客户的信息和信用信息时,就得找到多个客户维度表中的最新记录,建立上面的非事实型事实表的目的也就再此。
这五的维度表的主键都是代理键,这个非事实型事实表的字段就是这几个代理键,加上生效日期和失效日期。这样,
客户任何一个维度表的数据变化时,需要再这个事实表中添加一条记录,记录最新的五个代理键。对于一个客户来说,
只有一个生效记录。
-------------------------------------------------------------------------------------------------------------------------------
如何效率高的全表对比?

而是在程序里对每行通过MD5算法生成十六机制的唯一码对比,可以将此码保存到数据库的字段当中。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics