数据仓库系统(DWS)由数据仓库、仓库管理和分析工具三部分组成。
  源数据:数据仓库的数据来源于多个数据源,包括企业内部数据、市场调查报告及各种文档之类的外部数据。
  仓库管理: 在确定数据仓库信息需求后,首先进行数据建模,然后确定从源数据到数据仓库的数据抽取、清理和转换过程,最后划分维数及确定数据仓库的物理存储结构。元数据是数据仓库的核心,它用于存储数据模型和定义数据结构、转换规划、仓库结构、控制信息等。
  数据仓库: 包括对数据的安全、归档、备份、维护、恢复等工作,这些工作需要利用数据库管理系统(DBMS)的功能。
  分析工具用于完成实际决策问题所需的各种查询检索工具、多维数据的OLAP分析工具、数据开采DM工具等,以实现决策支持系统的各种要求。
  数据仓库应用是一个典型的C/S结构。其客户端的工作包括客户交互、格式化查询及结果和报表生成等。服务器端完成各种辅助决策的SQL查询、复杂的计算和各类综合功能等。现在,一种越来越普遍的形式是三层结构,即在客户与服务器之间增加一个多维数据分析服务器。OLA
P服务器能加强和规范决策支持的服务工作,集中和简化原客户端和DW服务器的部分工作,降低系统数据传输量,因此工作效率更高。
  什么是联机分析处理(OLAP)
  联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd1993年提出的,他同时提出了关于OLAP12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。
  当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTPOLAP之间的比较。
OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是""这个概念。
  “维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。
  OLAP的基本多维分析操作有钻取(roll updrill down)、切片(slice)和切块(dice)、以及旋转(pivot)drill acrossdrill through等。
  · 钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;drill down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
  ·切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
  ·旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)
  OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAPMOLAPHOLAP
  ROLAP 表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为"雪花模式"
  MOLAP 表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成"立方块(Cube)"的结构,MOLAP 中对"立方块""旋转""切块""切片"是产生多维数据报表的主要技术。
  HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。
  还有其他的一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。
  OLAP 工具是针对特定问题的联机数据访问与分析。它通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。这里的时间、地区和产品就是维。而这些维的不同组合和所考察的度量指标构成的多维数组则是OLAP分析的基础,可形式化表示为(1,维2,……,维n,度量指标),如(地区、时间、产品、销售额飞机黑匣子能记录多项关键数据)。多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill-downRoll-up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
  根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。
数据抽取、清洗与转换 BI项目中ETL设计
作者: ,  出处:ITPub, 责任编辑: 叶江, 2007-05-14 13:39
  ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析的依据
  ETLBI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败。ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为项目后期开发提供准确的数据。
  ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS(这个过程也可以做一些数据的清洗和转换),在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。ETL三个部分中,花费时间最长的是T(清洗、转换)的部分,一般情况下这部分工作量是整个ETL2/3。数据的加载一般在数据清洗完了之后直接写入DW中去。
  ETL的实现有多种方法,常用的有三种,第一种是借助ETL工具如OracleOWBSQL server 2000DTSSQL Server2005SSIS服务、informatic等实现,第二种是SQL方式实
现,第三种是ETL工具和SQL相结合。前两种方法各有优缺点,借助工具可以快速的建立起ETL工程,屏蔽复杂的编码任务,提高速度,降低难度,但是欠缺灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,极大的提高ETL的开发速度和效率。
  数据的抽取
  数据的抽取需要在调研阶段做大量工作,首先要搞清楚以下几个问题:数据是从几个业务系统中来?各个业务系统的数据库服务器运行什么DBMS?是否存在手工数据,手工数据量有多大?是否存在非结构化的数据?等等类似问题,当收集完这些信息之后才可以进行数据抽取的设计。
  1、与存放DW的数据库系统相同的数据源处理方法
  这一类数源在设计比较容易,一般情况下,DBMS(包括SQLServerOracle)都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select 语句直接访问。
  2、与DW数据库系统不同的数据源的处理方法。
  这一类数据源一般情况下也可以通过ODBC的方式建立数据库链接,如SQL ServerOracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过工具将源数据导出成.txt或者是.xls文件,然后再将这些源系统文件导入到ODS中。另外一种方法通过程序接口来完成。
  3、对于文件类型数据源(.txt,xls),可以培训业务人员利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库抽取。或者可以借助工具实现,如SQL SERVER 2005 SSIS服务的平面数据源和平面目标等组件导入ODS中去。
  4、增量更新问题
  对于数据量大的系统,必须考虑增量抽取。一般情况,业务系统会记录业务发生的时间,可以用作增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间的所有记录。利用业务系统的时间戳,一般情况下,业务系统没有或者部分有时间戳。
  数据的清洗转换
  一般情况下,数据仓库分为ODSDW两部分,通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,再从ODSDW的过程中转换,进行一些业务规则的计算和聚合。
1、数据清洗
  数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据和重复的数据三大类。
  A、不完整的数据,其特征是是一些应该有的信息缺失,如供应商的名称,分公司的名称,客户的区域信息缺失、业务系统中主表与明细表不能匹配等。需要将这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。