数据仓库(ETL/OLAP/OLTP)

数据仓库技术

数据仓库技术是基于信息系统业务发展的需要,基于数据库系统技术发展而来,并逐步独立的一系列新的应用技术。

基本信息

  随着90年代后期Internet 的兴起与飞速发展,我们进入了一个新的时代,大量的信息和数据,迎面而来,用科学的方法去整理数据,从而从不同视角对企业经营各方面信息的精确分析、准确判断,比以往更为迫切,实施商业行为的有效性也比以往更受关注。  使用这些技术建设的 信息系统 我们称为数据仓库系统。随着数据仓库技术应用的不断深入,近几年数据仓库技术得到长足的发展。典型的数据仓库系统,比如:经营分析系统, 决策支持系统 等等。也随着数据仓库系统带来的良好效果,各行各业的单位,已经能很好的接受“整合数据,从数据中找知识,运用数据知识、用数据说话”等新的关系到改良生产活动各环节、提高生产效率、发展生产力的理念。  数据仓库技术就是基于数学及统计学严谨逻辑思维的并达成“科学的判断、有效的行为”的一个工具。数据仓库技术也是一种达成“数据整合、知识管理”的有效手段。  数据仓库是面向主题的、集成的、与时间相关的、不可修改的数据集合。这是数据仓库技术特征的定位。

创始人

  数据仓库概念创始人W.H.Inmon在《建立数据仓库》一书中对数据仓库的定义是:数据仓库就是面向主题的、集成的、相对稳定的、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程、数据仓库中的数据面向主题,与传统数据库面向应用相对应。主题是一个在较高层次上将数据归类的标准,每一个主题对应一个宏观的分析领域:数据仓库的集成特性是指在数据进入数据仓库之前,必须经过数据加工和集成,这是建立数据仓库的 关键步骤 ,首先要统一原始数据中的矛盾之处,还要将原始 数据结构 做一个从面向应用向面向主题的转变;数据仓库的稳定性是指数据仓库反映的是历史数据的内,而不是日常事务处理产生的数据,数据经加工和集成进入数据仓库后是极少或根本不修改的;数据仓库是不同时间的数据集合,它要求数据仓库中的数据保存时限能满足进行决策分析的需要,而且数据仓库中的数据都要标明该数据的历史时期。

特点

  数据仓库最根本的特点是物理地存放数据,而且这些数据并不是最新的、专有的,而是来源于其它数据库的。数据仓库的建立并不是要取代数据库,它要建立在一个较全面和完善的信息应用的基础上,用于支持高层决策分析,而事务处理数据库在企业的信息环境中承担的是日常操作性的任务。数据仓库是 数据库技术 的一种新的应用,而且到目前为止,数据仓库还是用 关系数据库管理系统 来管理其中的数据。

核心内容

  CRM的核心内容是通过不断的改善与管理企业销售、营销、 客户服务和支持 等与客户关系有关的业务流程,提高各个环节的自动化程度,从而缩短销售周期,降低销售成本,扩大销售量,抢占更多的市场份额,寻求新的市场机会,最终达到从根本上提升 企业核心竞争力 的目的。  在静态层面,可以将CRM概括成一种管理思想在管理软件系统中加以体现。其目标是通过采用 信息技术 销售管理、客户关怀、服务和支持等经营环节的信息有序、充分并及时地在企业内部和客户之间流动,实现客户资源的有效利用。其核心思想是将客户群体看成是企业宝贵的外部资源。  在动态层面,CRM的生命周期又包括数据集成、客户分析和面向客户的战略决策三个阶段,其中CRM实施成功与否的关键是第2步,即用先进理念和精准模型对集成化数据进行模拟和分析,从而挖掘客户的潜在价值,发展潜在客户。  因此可以将 客户关系管理 的定义概况为客户关系管理是管理理念与信息技术相结合的产物,在管理理念方面表现为以客户为中心、通过客户关怀提升客户满意度和客户忠诚度的思想,在应用系统和企业行为方面表现为以Internet和电子商务、多媒体 数据挖掘 、专家系统和人工智能和呼叫中心等最新的信息技术为基础,实现企业识别、保留和挽回最具价值的客户,从而提升企业核心竞争力。
扩展阅读:
  • 数据仓库系列支撑技术概览

数据仓库

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。

定义

  数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化 数据环境 。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。  数据仓库之父William H. Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。

特点

  1、数据仓库是面向主题的;  2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库;  3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;  4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。  5、汇总的。操作性数据映射成决策可用的格式。  6、大容量。 时间序列数据 集合通常都非常大。  7、非规范化的。Dw数据可以是而且经常是冗余的。  8、元数据。将描述数据的数据保存起来。  9、数据源。数据来自内部的和外部的非集成操作系统。  数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它并不是所谓的“大型数据库”。数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库往往有如下几点特点:  1.效率足够高。数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。  2.数据质量。数据仓库所提供的各种信息,肯定要准确的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗,装载,查询,展现等等,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。  3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,未来不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。  从上面的介绍中可以看出,数据仓库技术可以将企业多年积累的数据唤醒,不仅为企业管理好这些海量数据,而且挖掘数据潜在的价值,从而成为通信企业运营维护系统的亮点之一。正因为如此,  广义的说,基于数据仓库的决策支持系统由三个部件组成:数据仓库技术,联机分析处理技术和数据挖掘技术,其中数据仓库技术是系统的核心,在这个系列后面的文章里,将围绕数据仓库技术,介绍现代数据仓库的主要技术和数据处理的主要步骤,讨论在通信运营维护系统中如何使用这些技术为运营维护带来帮助。

面向主题

  操作型数据库的数据组织面向 事务处理 任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。主题是与传统数据库的面向应用相对应的,是一个抽象概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。

集成的

  数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。

相对稳定的

  数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。

反映历史变化

  数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

数据库和数据仓库

  数据库已经在信息技术领域有了广泛的应用,我们社会生活的各个部门,几乎都有各种各样的数据库保存着与我们的生活息息相关的各种数据。作为数据库的一个分支,数据仓库概念的提出,相对于数据库从时间上就近得多。美国著名信息工程专家WilliamInm ON 博士在90年代初提出了数据仓库概念的一个表述,认为:“一个数据仓库通常是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,它用于对管理决策过程的支持。”   这里的主题,是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。  集成,是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致的全局信息。  随时间变化,是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

实现方式

  数据仓库是一个过程而不是一个项目。  数据仓库系统是一个信息提供平台,他从业务处理系统获得数据,主要以星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取信息和知识。  从功能结构划分,数据仓库系统至少应该包含数据获取(Data Acquisition)、 数据存储 (Data Storage)、数据访问(Data Access)三个关键部分。  企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。

体系结构

数据源

  是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;

数据的存储与管理

  是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为 数据集市 )。

OLAP(联机分析处理)服务器

  对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为: ROLAP (关系型在线分析处理)、 MOLAP (多维在线分析处理)和HOLAP(混合型线上分析处理)。ROLAP基本数据和聚合数据均存放在 RDBMS 之中;MOLAP基本数据和聚合数据均存放于 多维数据库 中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。

前端工具

  主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以 数据挖掘 及各种基于数据仓库或数据集市的应用 开发工具 。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。

组成

数据仓库数据库

  是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。

数据抽取工具

  把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成 COBOL 程序、 MVS 作业控制语言(JCL)、 UNIX 脚本、和 SQL 语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。

元数据

  元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。  技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义; 数据清理 和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。  商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;  元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。

访问工具

  为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具; 管理信息系统 (EIS)工具;在线分析( OLAP )工具;数据挖掘工具。

数据集市(DataMarts)

  为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是在实施不同的数据集市时,同一含义的字段定义一定要相容,这样在以后实施数据仓库时才不会造成大麻烦。

数据仓库管理

  安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。

信息发布系统

  把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。

设计步骤

  1)选择合适的主题(所要解决问题的领域)  2)明确定义事实表  3)确定和确认维  4)选择事实表  5)计算并存储fact表中的衍生数据段  6)转换维表  7)数据库数据采集  8)根据需求刷新维表  9)确定查询优先级和查询模式。  硬件平台:数据仓库的硬盘容量通常要是操作数据库硬盘容量的2-3倍。通常大型机具有更可靠的性能和和稳定性,也容易与历史遗留的系统结合在一起;而PC服务器或UNIX服务器更加灵活,容易操作和提供动态生成查询请求进行查询的能力。选择硬件平台时要考虑的问题:是否提供并行的I/O吞吐?对多CPU的支持能力如何?  数据仓库DBMS:他的存储大数据量的能力、查询的性能、和对并行处理的支持如何。  网络结构:数据仓库的实施在那部分网络段上会产生大量的数据通信,需不需要对网络结构进行改进。

建立步骤

步骤

  1)收集和分析业务需求    2)建立数据模型和数据仓库的物理设计   3)定义数据源   4)选择 数据仓库技术 和平台  5)从操作型数据库中抽取、净化、和转换数据到数据仓库  6)选择访问和报表工具  7)选择数据库连接软件  8)选择数据分析和数据展示软件  9)更新数据仓库

数据转换工具

  1)数据转换工具要能从各种不同的数据源中读取数据。  2)支持平面文件、索引文件、和legacyDBMS。  3)能以不同类型数据源为输入整合数据。  4)具有规范的数据访问接口  5)最好具有从数据字典中读取数据的能力  6)工具生成的代码必须是在开发环境中可维护的  7)能只抽取满足指定条件的数据,和源数据的指定部分  8)能在抽取中进行数据类型转换和字符集转换  9)能在抽取的过程中计算生成衍生字段  10)能让数据仓库管理系统自动调用以定期进行数据抽取工作,或能将结果生成平面文件  11)必须对软件供应商的生命力和产品支持能力进行仔细评估  主要数据抽取工具供应商:Prismsolutions.Carleton'sPASSPORT.InformationBuildersInc.'s   EDA/SQL.SASInstituteInc.

数据仓库带来了什么

  每一家公司都有自己的数据。并且,许多公司在计算机系统中储存有大量的数据,记录着企业购买、销售、生产过程中的大量信息和客户的信息。通常这些数据都储存在许多不同的地方。  使用数据仓库之后,企业将所有收集来的信息存放在一个唯一的地方——数据仓库。仓库中的数据按照一定的方式组织,从而使得信息容易存取并且有使用价值。  目前,已经开发出一些专门的软件工具,使数据仓库的过程实现可以半自动化,帮助企业将数据导入数据仓库,并使用那些已经存入仓库的数据。  数据仓库给组织带来了巨大的变化。数据仓库的建立给企业带来了一些新的 工作流 程,其他的流程也因此而改变。  数据仓库为企业带来了一些“以数据为基础的知识”,它们主要应用于对市场战略的评价,和为企业发现新的市场商机,同时,也用来控制库存、检查生产方法和定义客户群。  每一家公司都有自己的数据。数据仓库将企业的数据按照特定的方式组织,从而产生新的商业知识,并为企业的运作带来新的视角。

为何要建立数据仓库

  计算机发展的早期,人们已经提出了建立数据仓库的构想。“数据仓库”一词最早是在1990年,由Bill Inmon先生提出的,其描述如下:数据仓库是为支持企业决策而特别设计和建立的数据集合。  企业建立数据仓库是为了填补现有数据存储形式已经不能满足信息分析的需要。数据仓库理论中的一个核心理念就是:事务型数据和决策支持型数据的处理性能不同。  企业在它们的事务操作收集数据。在企业运作过程中:随着定货、销售记录的进行,这些事务型数据也连续的产生。为了引入数据,我们必须优化事务型数据库。  处理决策支持型数据时,一些问题经常会被提出:哪类客户会购买哪类产品?促销后销售额会变化多少?价格变化后或者商店地址变化后销售额又会变化多少呢?在某一段时间内,相对其他产品来说哪类产品特别容易卖呢?哪些客户增加了他们的购买额?哪些客户又削减了他们的购买额呢?  事务型数据库可以为这些问题作出解答,但是它所给出的答案往往并不能让人十分满意。在运用有限的计算机资源时常常存在着竞争。在增加新信息的时候我们需要事务型数据库是空闲的。而在解答一系列具体的有关信息分析的问题的时候,系统处理新数据的有效性又会被大大降低。另一个问题就在于事务型数据总是在动态的变化之中的。决策支持型处理需要相对稳定的数据,从而问题都能得到一致连续的解答。  数据仓库的解决方法包括:将决策支持型数据处理从事务型数据处理中分离出来。数据按照一定的周期(通常在每晚或者每周末),从事务型数据库中导入决策支持型数据库——既“数据仓库”。数据仓库是按回答企业某方面的问题来分“主题”组织数据的,这是最有效的数据组织方式。

数据仓库和数据集市

  有关决策支持型数据库的数据集市是面向企业中的某个部门或是项目小组的。一些专家顾问将数据集市的建造描述为建立数据仓库全过程中的一步。首先,一个储存企业全部信息的数据仓库被创建,其中,数据均具备有组织的、一致的、不变的格式。数据集市随后被创立,其目的是为不同部门提供他们所需要的那部分信息。数据仓库聚集了所有详细的信息,而数据集市中的数据则是针对用户们的特定需求总结而出的。  而另外一些专家则认为数据集市的建立并不需要首先建立一个数据仓库。在这个模型中,数据直接由事务型数据库转入数据集市中。一个公司可能建立有多个数据集市,而彼此之间毫无联系。  这种不在建立数据仓库的基础上创建数据集市的方式会更便宜、更快速,因为它的规模更加易于管理。  第二种观点的缺陷在于无法实现最初创建数据仓库的最主要的目的——将企业所有的数据统一为一致的格式。现有的事务处理系统的数据往往是不一致、冗余的。如果首先建立起一个全公司范围的数据仓库,组织就能够获得一个统一关于企业的活动和客户的知识库。如果先建立起一个个独立的数据集市,那么数据仓库的诸多优势都能够得以实现,但是企业远远无法做到对数据的一致的储存。

数据仓库与数据库的关系

  二者的联系:  数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。  二者的区别  1、出发点不同:数据库是面向事务的设计;数据仓库是面向主题设计的。  2、存储的数据不同:数据库一般存储在线交易数据;数据仓库存储的一般是历史数据。  3、设计规则不同:数据库设计是尽量避免冗余,一般采用符合范式的规则来设计;数据仓库在设计是有意引入冗余,采用反范式的方式来设计。  4、提供的功能不同:数据库是为捕获数据而设计,数据仓库是为分析数据而设计,  5、基本元素不同:数据库的基本元素是事实表,数据仓库的基本元素是维度表。  6、容量不同:数据库库在基本容量上要比数据仓库小的多。  7、服务对象不同:数据库是为了高效的事务处理而设计的,服务对象为企业业务处理方面的工作人员;数据仓库是为了分析数据进行决策而设计的,服务对象为企业高层决策人员。
扩展阅读:
  • http://www.cnblogs.com/team/DotNetBI.html

  • Building the Data Warehouse

  • http://www.dwway.com

  • 数据仓库之路数据仓库权威门户

ETL

ETL,Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。 ETL工具有:OWB(Oracle Warehouse Builder)、ODI(Oracle Data Integrator)、Informatic PowerCenter、AICloudETL、DataStage、Repository Explorer、Beeload、Kettle、DataSpider

  ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到 数据仓库 或数据集市中,成为 联机分析处理 、数据挖掘的基础。  ETL是数据仓库中的非常重要的一环。它是承前启后的必要的一步。相对于关系数据库,数据仓库技术没有严格的数学理论基础,它更面向实际工程应用。所以从工程应用的角度来考虑,按着物理数据模型的要求加载数据并对数据进行一些系列处理,处理过程与经验直接相关,同时这部分的工作直接关系数据仓库中数据的质量,从而影响到联机分析处理和数据挖掘的结果的质量。  数据仓库是一个独立的数据环境,需要通过抽取过程将数据从联机事务处理环境、外部数据源和脱机的数据存储介质导入到数据仓库中;在技术上,ETL主要涉及到关联、转换、增量、调度和监控等几个方面;数据仓库系统中数据不要求与联机事务处理系统中数据实时同步,所以ETL可以定时进行。但多个ETL的操作时间、顺序和成败对数据仓库中信息的有效性至关重要。  ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。  ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过 数据清洗 ,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。  信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理OLTP的业务系统和办公自动化系统,用来记录事务处理的各种相关数据。据统计,数据量每2~3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占在总数据量的2%~4%左右。因此,企业仍然没有最大化地利用已存在的数据资源,以致于浪费了更多的时间和资金,也失去制定关键商业决策的最佳契机。于是,企业如何通过各种技术手段,并把数据转换为信息、知识,已经成了提高其核心竞争力的主要瓶颈。而ETL则是主要的一个技术手段。如何正确选择ETL工具?如何正确应用ETL?  目前,ETL工具的典型代表有:Informatica、Datastage、OWB、微软DTS、Beeload、Kettle……   开源的工具有eclips的etl插件。cloveretl.   数据集成:快速实现ETL   ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。而影响质量问题的原因有很多,由系统集成和历史数据造成的原因主要包括:业务系统不同时期系统之间数据模型不一致;业务系统不同时期业务过程有变化;旧系统模块在运营、人事、财务、办公系统等相关信息的不一致;遗留系统和新业务、管理系统数据集成不完备带来的不一致性。  实现ETL,首先要实现ETL转换的过程。它可以集中地体现为以下几个方面:  空值处理可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。  规范化数据格式可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式。  拆分数据依据业务需求对字段可进行分解。例,主叫号 861082585313-8148,可进行区域码和电话号码分解。  验证数据正确性可利用Lookup及拆分功能进行数据验证。例如,主叫号861082585313-8148,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。  数据替换对于因业务因素,可实现无效数据、缺失数据的替换。  Lookup 查获丢失数据 Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。  建立ETL过程的主外键约束对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。  为了能更好地实现ETL,笔者建议用户在实施ETL过程中应注意以下几点:  第一,如果条件允许,可利用数据中转区对运营数据进行预处理,保证集成与加载的高效性;  第二,如果ETL的过程是主动“拉取”,而不是从内部“推送”,其可控性将大为增强;  第三,ETL之前应制定流程化的配置管理和标准协议;  第四,关键数据标准至关重要。目前,ETL面临的最大挑战是当接收数据时其各源数据的异构性和低质量。以电信为例,A系统按照统计代码管理数据,B系统按照账目数字管理,C系统按照语音ID管理。当ETL需要对这三个系统进行集成以获得对客户的全面视角时,这一过程需要复杂的匹配规则、名称/地址正常化与标准化。而ETL在处理过程中会定义一个关键数据标准,并在此基础上,制定相应的数据接口标准。  ETL过程在很大程度上受企业对源数据的理解程度的影响,也就是说从业务的角度看数据集成非常重要。一个优秀的ETL设计应该具有如下功能:  管理简单;采用 元数据 方法,集中进行管理;接口、数据格式、传输有严格的规范;尽量不在外部数据源安装软件;数据抽取系统流程自动化,并有自动调度功能;抽取的数据及时、准确、完整;可以提供同各种数据系统的接口,系统适应性强;提供软件框架系统,系统功能改变时,应用程序很少改变便可适应变化;可扩展性强。  数据模型:标准定义数据  合理的业务模型设计对ETL至关重要。数据仓库是企业唯一、真实、可靠的综合数据平台。数据仓库的设计建模一般都依照三范式、星型模型、雪花模型,无论哪种设计思想,都应该最大化地涵盖关键业务数据,把运营环境中杂乱无序的数据结构统一成为合理的、关联的、分析型的新结构,而ETL则会依照模型的定义去提取数据源,进行转换、清洗,并最终加载到目标数据仓库中。  模型的重要之处在于对数据做标准化定义,实现统一的编码、统一的分类和组织。标准化定义的内容包括:标准代码统一、业务术语统一。ETL依照模型进行初始加载、增量加载、缓慢增长维、慢速变化维、事实表加载等数据集成,并根据业务需求制定相应的加载策略、刷新策略、汇总策略、维护策略。  元数据:拓展新型应用  对业务数据本身及其运行环境的描述与定义的数据,称之为元数据(metadata)。元数据是描述数据的数据。从某种意义上说,业务数据主要用于支持业务系统应用的数据,而元数据则是企业信息门户、客户关系管理、数据仓库、决策支持和B2B等新型应用所不可或缺的内容。  元数据的典型表现为对象的描述,即对数据库、表、列、列属性(类型、格式、约束等)以及主键/外部键关联等等的描述。特别是现行应用的异构性与分布性越来越普遍的情况下,统一的元数据就愈发重要了。“信息孤岛”曾经是很多企业对其应用现状的一种抱怨和概括,而合理的元数据则会有效地描绘出信息的关联性。  而元数据对于ETL的集中表现为:定义数据源的位置及数据源的属性、确定从源数据到目标数据的对应规则、确定相关的业务逻辑、在数据实际加载前的其他必要的准备工作,等等,它一般贯穿整个数据仓库项目,而ETL的所有过程必须最大化地参照元数据,这样才能快速实现ETL。  ETL体系结构  下图为ETL体系结构,它体现了主流ETL产品框架的主要组成部分。ETL是指从源系统中提取数据,转换数据为一个标准的格式,并加载数据到目标数据存储区,通常是数据仓库。   ETL体系结构图   Design manager 提供一个图形化的映射环境,让开发者定义从源到目标的映射关系、转换、处理流程。设计过程的各对象的逻辑定义存储在一个元数据资料库中。  Meta data management 提供一个关于ETL设计和运行处理等相关定义、管理信息的元数据资料库。ETL引擎在运行时和其它应用都可参考此资料库中的元数据。  Extract 通过接口提取源数据,例如?ODBC、专用数据库接口和平面文件提取器,并参照元数据来决定数据的提取及其提取方式。  Transform 开发者将提取的数据,按照业务需要转换为目标数据结构,并实现汇总。   Load 加载经转换和汇总的数据到目标数据仓库中,可实现SQL或批量加载。   Transport services 利用网络协议或文件协议,在源和目标系统之间移动数据,利用内存在ETL处理的各组件中移动数据。   Administration and operation 可让管理员基于事件和时间进行调度、运行、监测ETL作业、管理错误信息、从失败中恢复和调节从源系统的输出。
扩展阅读:
  • http://www.cnblogs.com/team/DotNetBI.html

联机分析处理

简写为OLAP,随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录的数据进行数据分析和信息综合,关系数据库系统已不能全部满足这一要求。在国外,不少软件厂商采取了发展其前端产品来弥补关系数据库管理系统支持的不足,力图统一分散的公共应用逻辑,在短时间内响应非数据处理专业人员的复杂查询要求。

作用

  联机分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。决策数据是多维数据,多维数据就是决策的主要内容。OLAP专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。联机分析处理具有灵活的分析功能、直观的数据操作和分析结果可视化表示等突出优点,从而使用户对基于大量复杂数据的分析变得轻松而高效,以利于迅速做出正确判断。它可用于证实人们提出的复杂的假设,其结果是以图形或者表格的形式来表示的对信息的总结。它并不将异常信息标记出来,是一种知识证实的方法。

起源

  联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。   Codd提出OLAP的12条准则来描述OLAP系统:    准则1 OLAP模型必须提供多维概念视图  准则2 透明性准则   准则3 存取能力推测   准则4 稳定的报表能力   准则5 客户/服务器体系结构   准则6 维的等同性准则   准则7 动态的稀疏矩阵处理准则   准则8 多用户支持能力准则   准则9 非受限的跨维操作   准则10 直观的数据操纵   准则11 灵活的报表生成   准则12 不受限的维与聚集层次

分类

  当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是 数据仓库 系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。

OLTP OLAP
用户 操作人员,低层管理人员 决策人员,高级管理人员
功能 日常操作处理 分析决策
DB 设计 面向应用 面向主题
数据 当前的,最新的细节的,二维的分立的 历史的, 聚集的, 多维的
集成的, 统一的
存取 读/写数十条记录 读上百万条记录
工作单位 简单的事务 复杂的查询
DB 大小 100MB-GB 100GB-TB

发展背景

  随着数据库技术的广泛应用,企业信息系统产生了大量的数据,如何从这些海量数据中提取对企业决策分析有用的信息成为企业决策管理人员所面临的重要难题。传统的企业数据库系统(管理信息系统)即联机事务处理系统(On-LineTransactionProcessing,简称OLTP)作为数据管理手段,主要用于事务处理,但它对分析处理的支持一直不能令人满意。因此,人们逐渐尝试对OLTP数据库中的数据进行再加工,形成一个综合的、面向分析的、更好的支持决策制定的 决策支持系统 (DecisionSupportSystem,简称DSS)。企业目前的信息系统的数据一般由DBMS管理,但决策数据库和运行操作数据库在数据来源、数据内容、数据模式、服务对象、访问方式、事务管理乃至物理存储等方面都有不同的特点和要求,因此直接在运行操作的数据库上建立DSS是不合适的。数据仓库(DataWarehouse)技术就是在这样的背景下发展起来的。数据仓库的概念提出于20世纪80年代中期,20世纪90年代,数据仓库已从早起的探索阶段走向实用阶段。业界公认的数据仓库概念创始人W.H.Inmon在《BuildingtheDataWarehouse》一书中对数据仓库的定义是:“数据仓库是支持管理决策过程的、面向主题的、集成的、随时间变化的持久的数据集合”。构建数据仓库的过程就是根据预先设计好的逻辑模式从分布在企业内部各处的OLTP数据库中提取数据并对经过必要的变换最终形成全企业统一模式数据的过程。当前数据仓库的核心仍是RDBMS管理下的一个数据库系统。数据仓库中数据量巨大,为了提高性能,RDBMS一般也采取一些提高效率的措施:采用并行处理结构、新的数据组织、查询策略、索引技术等等。  包括联机分析处理(On-LineAnalyticalProcessing,简称OLAP)在内的诸多应用牵引驱动了数据仓库技术的出现和发展;而数据仓库技术反过来又促进了OLAP技术的发展。联机分析处理的概念最早由关系数据库之父E.F.Codd于1993年提出的。Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的要求,SQL对大数据库的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,Codd提出了多维数据库和多维分析的概念,即OLAP。OLAP委员会对联机分析处理的定义为:使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业维特性的信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是“维”这个概念,因此OLAP也可以说是 多维数据分析 工具的集合。

特点

  在过去的二十年中,大量的企业利用关系型数据库来存储和管理业务数据,并建立相应的应用系统来支持日常业务运作。这种应用以支持业务处理为主要目的,被称为联机事务处理(OLTP,On-line Transaction Processing)应用,它所存储的数据被称为操作数据或者业务数据。  随着市场竞争的日趋激烈,近年来企业更加强调决策的及时性和准确性,这使得以支持决策管理分析为主要目的的应用迅速崛起,这类应用被称为联机分析处理,它所存储的数据被称为信息数据。  联机分析处理的用户是企业中的专业分析人员及管理决策人员,他们在分析业务经营的数据时,从不同的角度来审视业务的衡量指标是一种很自然的思考模式。例如分析销售数据,可能会综合时间周期、产品类别、分销渠道、地理分布、客户群类等多种因素来考量。这些分析角度虽然可以通过报表来反映,但每一个分析的角度可以生成一张报表,各个分析角度的不同组合又可以生成不同的报表,使得IT人员的工作量相当大,而且往往难以跟上管理决策人员思考的步伐。  联机分析处理的主要特点,是直接仿照用户的多角度思考模式,预先为用户组建多维的数据模型,在这里,维指的是用户的分析角度。例如对销售数据的分析,时间周期是一个维度,产品类别、分销渠道、地理分布、客户群类也分别是一个维度。一旦多维数据模型建立完成,用户可以快速地从各个分析角度获取数据,也能动态的在各个角度之间切换或者进行多角度综合分析,具有极大的分析灵活性。这也是联机分析处理在近年来被广泛关注的根本原因,它从设计理念和真正实现上都与旧有的管理信息系统有着本质的区别。  事实上,随着数据仓库理论的发展,数据仓库系统已逐步成为新型的决策管理信息系统的解决方案。数据仓库系统的核心是联机分析处理,但数据仓库包括更为广泛的内容。  -概括来说,数据仓库系统是指具有综合企业数据的能力,能够对大量企业数据进行快速和准确分析,辅助做出更好的商业决策的系统。它本身包括三部分内容:  数据层。实现对企业操作数据的抽取、转换、清洗和汇总,形成信息数据,并存储在企业级的中心信息数据库中。  应用层。通过联机分析处理,甚至是数据挖掘等应用处理,实现对信息数据的分析。  表现层。通过前台分析工具,将查询报表、统计分析、多维联机分析和数据发掘的结论展现在用户面前。  从应用角度来说,数据仓库系统除了联机分析处理外,还可以采用传统的报表,或者采用数理统计和人工智能等数据挖掘手段,涵盖的范围更广;就应用范围而言,联机分析处理往往根据用户分析的主题进行应用分割,例如:销售分析、市场推广分析、客户利润率分析等等,每一个分析的主题形成一个OLAP应用,而所有的OLAP应用实际上只是数据仓库系统的一部分。

逻辑概念和典型操作

  OLAP展现在用户面前的是一幅幅多维视图。维(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等)。  维的层次(Level):人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间维:日期、月份、季度、年)。  维的成员(Member):维的一个取值,是数据项在某维中位置的描述。(“某年某月某日”是在时间维上位置的描述)。  度量(Measure):多维数组的取值。(2000年1月,上海,笔记本电脑,0000)。  OLAP的基本多维分析操作有钻取(Drill-up和Drill-down)、切片(Slice)和切块(Dice)、以及旋转(Pivot)等。  钻取:是改变维的层次,变换分析的粒度。它包括向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)。Drill-up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill-down则相反,它从汇总数据深入到细节数据进行观察或增加新维。  切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。  旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。

体系结构和分类

  数据仓库与OLAP的关系是互补的,现代OLAP系统一般以数据仓库作为基础,即从数据仓库中抽取详细数据的一个子集并经过必要的聚集存储到OLAP存储器中供前端分析工具读取。典型的OLAP系统体系结构如下图所示:  OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型。

1.ROLAP

  ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。不必要将每一个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对OLAP服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等等。

2.MOLAP

  MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。由于MOLAP采用了新的存储结构,从物理层实现起,因此又称为物理OLAP(PhysicalOLAP);而ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(VirtualOLAP)。

3.HOLAP

  由于MOLAP和ROLAP有着各自的优点和缺点(如下表所示),且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。  rolap molap   沿用现有的关系数据库的技术  专为olap所设计  响应速度比molap慢;  现有关系型数据库已经对olap做了很多优化,包括并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、sql 的olap扩展(cube,rollup)等,性能有所提高  性能好、响应速度快  数据装载速度快  数据装载速度慢  存储空间耗费小,维数没有限制  需要进行预计算,可能导致数据爆炸,维数有限;无法支持维的动态变化  借用rdbms存储数据,没有文件大小限制  受操作系统平台中文件大小的限制,难以达到tb 级(只能10~20g)   可以通过sql实现详细数据与概要数据的存储  缺乏数据模型和数据访问的标准  –不支持有关预计算的读写操作  –sql无法完成部分计算  ?无法完成多行的计算  ?无法完成维之间的计算  –支持高性能的决策支持计算  ?复杂的跨维计算  ?多用户的读写操作  ?行级的计算   维护困难  管理简便

实现方式

  同样是仿照用户的多角度思考模式,联机分析处理有三种不同的实现方法:  · 关系型联机分析处理(ROLAP,Relational OLAP)   · 多维联机分析处理(MOLAP,Multi-Dimensional OLAP)   · 前端展示联机分析处理(Desktop OLAP)   其中,前端展示联机分析需要将所有数据下载到客户机上,然后在客户机上进行数据结构/报表格式重组,使用户能在本机实现动态分析。该方式比较灵活,然而它能够支持的数据量非常有限,严重地影响了使用的范围和效率。因此,随着时间的推移,这种方式已退居次要地位,在此不作讨论。

具体实施方法

  以下就ROLAP和MOLAP的具体实施方法进行讨论:

1、关系型联机分析处理的具体实施方法

  顾名思义,关系型联机分析处理是以关系型数据库为基础的。唯一特别之处在于联机分析处理中的数据结构组织的方式。  让我们考察一个例子,假设我们要进行产品销售的财务分析,分析的角度包括时间、产品类别、市场分布、实际发生与预算四方面内容,分析的财务指标包括:销售额、销售支出、毛利(=销售额-销售支出)、费用、纯利(=毛利-费用)等内容,则我们可以建立如下的数据结构:  该数据结构的中心是主表,里面包含了所有分析维度的外键,以及所有的财务指标,可计算推导的财务指标不计在内,我们称之为事实表(Fact Table)。周围的表分别是对应于各个分析角度的维表(Dimension Table),每个维表除了主键以外,还包含了描述和分类信息。无论原来的业务数据的数据结构为何,只要原业务数据能够整理成为以上模式,则无论业务人员据此提出任何问题,都可以用SQL语句进行表连接或汇总(table join and group by)实现数据查询和解答。(当然,有一些现成的ROLAP前端分析工具是可以自动根据以上模型生成SQL语句的)。这种模式被称为星型模式(Star-Schema),可应用于不同的联机分析处理应用中。  以下是另一个采用星型模式的例子,分析的角度和指标截然不同,但数据结构模式一样。我们看到的不是表的数据,而是表的结构。在联机分析处理的数据模型设计中,这种表达方式更为常见:  有时候,维表的定义会变得复杂,例如对产品维,既要按产品种类进行划分,对某些特殊商品,又要另外进行品牌划分,商品品牌和产品种类划分方法并不一样。因此,单张维表不是理想的解决方案,可以采用以下方式,这种数据模型实际上是星型结构的拓展,我们称之为雪花型模式(snow-flake schema).   无论采用星型模式还是雪花型模式,关系型联机分析处理都具有以下特点:   · 数据结构和组织模式需要预先设计和建立;   · 数据查询需要进行表连接,在查询性能测试中往往是影响速度的关键;   · 数据汇总查询(例如查询某个品牌的所有产品销售额),需要进行Group by 操作,虽然实际得出的数据量很少,但查询时间变得更长;  · 为了改善数据汇总查询的性能,可以建立汇总表,但汇总表的数量与用户分析的角度数目和每个角度的层次数目密切相关。例如,用户从8个角度进行分析,每个角度有3个汇总层次,则汇总表的数目高达3的8次方。  可以采取对常用汇总数据建立汇总表,对不常用的汇总数据进行Group by 操作,这样来取得性能和管理复杂度之间的均衡。

2、多维联机分析处理的具体实施方法

  多维联机分析处理实际上是用多维数组的方式对关系型数据表进行处理。下图是ROLAP与MOLAP的对比:  图中左边是ROLAP方式,右边是MOLAP方式,两者对应的是同一个三维模型。MOLAP首先对事实表中的所有外键进行排序,并将排序后的具体指标数值一一写进虚拟的多维立方体中。当然,虚拟的多维立方体只是为了便于理解而构想的,MOLAP实际的数据存储放在数据文件(Data File)中,其数据放置的顺序与虚拟的多维立方体按x,y,z坐标展开的顺序是一致的(如上图)。同时,为了数据查找的方便,MOLAP需要预先建立维度的索引,这个索引被放置在MOLAP的概要文件(Outline)中。  概要文件是MOLAP的核心,相当于ROLAP的数据模型设计。概要文件包括所有维的定义(包括复杂的维度结构)以及各个层次的数据汇总关系(例如在时间维,日汇总至月,月汇总至季,季汇总至年),这些定义往往从关系型维表中直接引入即可。概要文件也包括分析指标的定义,因此可以在概要文件中包含丰富的衍生指标,这些衍生指标由基础指标计算推导出来(例如ROLAP例子1中的纯利和毛利)。概要文件的结构如下图所示:  一旦概要文件定义好,MOLAP系统可以自动安排数据存储的方式和进行数据查询。从MOLAP的数据文件与ROLAP的事实表的对比可以看出,MOLAP的数据文件完全不需要纪录维度的外键,在维度比较多的情况下,这种数据存储方式大量地节省了空间。  但是,如果数据相当稀疏,虚拟的多维立方体中很多数值为空时,MOLAP的数据文件需要对相关的位置留空,而ROLAP的事实表却不会存储这些纪录。为了有效地解决这种情况,MOLAP采用了稀疏维和密集维相结合的处理方式,如下图。  上图的背景是某些客户只通过某些分销渠道才购买,但是只要该客户存在,他在各个月和各个地区内均有消费(例如,华南IBM只通过熊猫国旅定购南航机票,但在华南四省在每个月均有机票订购)。则时间和地区维是密集维,客户和分销渠道是稀疏维,MOLAP将稀疏维建成索引文件(Index File),密集维所对应的数值仍然保留在数据文件中,索引文件不存储空纪录。这样保持了对空间的合理利用。我们也可以看到,如果所有维都是稀疏维,则MOLAP的索引文件就退化成ROLAP的事实表,两者没有区别了。  在实际应用中,不可能所有分析的维度都是密集的,也绝少存在所有分析的维度都是稀疏的,因此稀疏维和密集维并用的模式几乎主导了所有的MOLAP应用。而稀疏维和密集维的定义全部集中在概要文件中,因此,只要预先定义好概要文件,所有的数据分布就自动确定了。  在这种模式中,密集维的组合组成了的数据块(Data Block),每个数据块是I/O读写的基础单位(如上图),所有的数据块组成了数据文件。稀疏维的组合组成了索引文件,索引文件的每一个数据纪录的末尾都带有一个指针,指向要读写的数据块。因此,进行数据查询时,系统先搜索索引文件纪录,然后直接调用指针指向的数据块进行I/O读写(如果该数据块尚未驻留内存),将相应数据块调入内存后,根据密集维的数据放置顺序直接计算出要查询的数据距离数据块头的偏移量,直接提取数据下传到客户端。因此,MOLAP 方式基本上是索引搜索与直接寻址的查询方式相结合,比起ROLAP的表/索引搜索和表连接方式,速度要快得多。

多维联机分析处理的特点

  · 需要预先定义概要文件;   · 数据查询采用索引搜索与直接寻址的方式相结合,不需要进行表连接,在查询性能测试中比起ROLAP有相当大的优势;   · 在进行数据汇总查询之前,MOLAP需要预先按概要文件中定义的数据汇总关系进行计算,这个计算通常以批处理方式运行。计算结果回存在数据文件中,当用户查询时,直接调用计算结果,速度非常快。  · 无论是数据汇总还是计算衍生数据,预先计算的方式实际上是用空间来换时间。当然,用户也可以选择动态计算的方式,用查询时间来换取存储空间。MOLAP可以灵活调整时空的取舍平衡。  · 用户难以使用概要文件中没有定义的数据汇总关系和衍生指标。   · 在大数据量环境下,关系型数据库可以达到TB级的数据量,现有的MOLAP应用局限于基于文件系统的处理和查询方式,其性能会在100GB级别开始下降,需要进行数据分区处理,因此扩展性不如ROLAP。因此,MOLAP多数用于部门级的主题分析应用。

3、其它考虑因素

  联机分析处理其他要素包括假设分析(What-if),复杂计算,数据评估等等。这些因素对用户的分析效用至关重要,但是与ROLAP和MOLAP的核心工作原理的不一定有很紧密的关系,事实上,ROLAP和MOLAP都可以在以上三方面有所建树,只不过实现的方法迥异。因此,这些因素更取决于各个厂商为他们的产品提供的外延功能。对于像IBM的DB2 OLAP Server这样一个成熟的产品来说,这三方面均有独特的优势:

假设分析

  假设分析提出了类似于以下的问题:"如果产品降价5%,而运费增加8%,对不同地区的分销商的进货成本会有什么影响?"这些问题常用于销售预测、费用预算分配、奖金制度确定等等。据此,用户可以分析出哪些角度、哪些因素的变化将对企业产生重要影响;并且,用户可以灵活调节自己手中掌握的资源(例如费用预算等),将它用到最有效的地方中去。  假设分析要求OLAP系统能够随用户的思路调整数据,并动态反映出在调整后对其他数据的影响结果。事实上,进入OLAP的数据分两大类:事实数据和预算数据,例如本月实际发生的销售额是事实数据,上月对本月的销售额估算是预算数据。事实数据一般情况下不容修改,而预算数据则应常常进行调整。DB2 OLAP Server通过详细的权限定义区分了数据的读写权限,允许用户对预算数据进行更改,系统可以对其他受影响的数据进行计算,以反映出"假如发生如上情况,将会引起以下结果"的结论。

复杂计算

  分析人员往往需要分析复杂的衍生数据,诸如:同期对比、期初/期末余额、百分比份额计算、资源分配(按从顶向下的结构图逐级分配)、移动平均、均方差等等。对这些要求,DB2 OLAP Server提供丰富的功能函数以便用户使用。因为只有在无需编程的环境下,商业用户才能更好地灵活利用这些功能进行复杂的真实世界模拟。

数据评估

  数据评估包括两方面内容,有效性评估和商业意义评估。在有效性评估方面,数据抽取、清洗和转换的规则的定义是至关重要的。而合理的数据模型设计能有效防止无效数据的进入。例如在ROLAP中,如果维表没有采用范式设计(normalise design),可能会接受如下的维表:   机构代码 机构名称 所属区县 所属城市 所属省份   001 越秀支行越秀区广州广东  002 祖庙支行 佛山 广州 广东   003 翠屏支行 佛山 南海 广东   004 。。。。。。。。。。。。  显然,002中显示的佛山属于广州市,与003中显示的佛山属于南海市是矛盾的。这显示出数据源有问题,但是如果采用星型模式设计,ROLAP无法自动发现数据源的问题!  在类似情况下,MOLAP的表现稍占优势。因为MOLAP需要预先定义概要文件,而概要文件会详细分析维度的层次关系,因此生成概要文件时会反映数据源的错误。因此,在DB2 OLAP Server中,记录003会被拒收,并纪录在出错日志中,供IT人员更正。  但是,OLAP对数据源有效性的验证能力毕竟是有限的,因此,数据有效性必须从源数据一级和数据抽取/清洗/转换处理一级来进行保障。  对用户而言,数据的商业含义评估更有意义。在商业活动中,指标数值的取值范围是比较稳定的,如果指标数值突然发生变化,或者在同期比较、同类比较中有特殊表现,意味着该指标代表的方方面面具有特别的分析意义。普通的OLAP往往需要用户自己去观察发现异常指标,而DB2 OLAP Server的OLAP Minor(多维数据挖掘功能)能为用户特别地指出哪些条件下的哪些指标偏离常值,从而引起用户的注意和思考。例如:12月份南部的圣诞礼品销售额不到同期类似区域(东部、中部、西部)的50%。  综上所述,无论ROLAP还是MOLAP,都能够实现联机分析处理的基本功能,两者在查询效率,存储空间和扩展性方面各有千秋。IT人员在选择OLAP系统时,既要考虑产品内部的实现机制,同时也应考虑假设分析,复杂计算,数据评估方面的功能,为实现决策管理信息系统打下坚实的基础。

主要厂商产品介绍

Hyperion

  HyperionEssbaseOLAPServer,在上面有超过100个的应用程序,有300多个用Essbase作为平台的开发商。具有几百个计算公式,支持过程的脚本预言,及统计和基于维的计算。  强大的OLAP查询能力,利用EssbaseQueryDesigner,商业用户可以不用IT人员的帮助自己构件复杂的查询。  广泛的应用支持,可以扩展数据仓库和ERP系统的价值,建立对电子商务、CRM、金融、制造业、零售和CPG(consumerpackagedgoods)等应用的分析程序。  Speed-of-Thought的响应时间,支持多用户同时读写  Web-Enabled的,以服务器为中心的体系结构,支持SMP   强大的合作伙伴提供完整的解决方案,60多个包装好的解决方案,300多个咨询和实施公司。  丰富的前端工具,有30多个前端工具可供选择,其中包括Hyperion自己的WiredforOLAP、Spider-ManWebApplication、Objects、EssbaseSpreadsheetAdd-In、WebGateway、Reporting。  HyperionEnterprise,为跨国公司提供的财务整合、报告和分析的解决方案。有3000多家组织在使用此套系统。  功能丰富:支持多种财务标准USGAAP,CanadianGAAP,UKGAAP,国际会计标准(ISA),FASB,HGB。分公司间交易的自动平帐。FAS52货币转换。FAS94。  易用:可通过Excel,Lotus1-2-3和各种浏览器访问系统。  支持公司结构的调整。  跨国公司的支持:同时支持6种语言及各个不同国家的法律和税收要求。  完整的过程控制和审计跟踪,及安全等级的设置。  能与ERP或其他数据源集成  HyperionPillar,预算和计划工具。全球用户超过1500家,提供基于活动的预算,基于项目的计划,集中式计划,销售预测和综合计划。  分布式体系结构  详细计划的制订:允许一线经理制订详细的计划  复杂的建模和分析能力

Oracle

  ExpressServer提供全面的OLAP能力,有全球超过3000家用户  用户可通过Web和电子表格使用  灵活的数据组织方式,数据可以存放在ExpressServer内,也可直接在RDB上使用  有内建的分析函数和4GL来用户自己定制查询

Cogno

  PowerPlay,为商务效率评价BPM(BusinessPerformanceMeasurement)提供全面的报告和分析环境。向决策者提供企业运行效率的各种关键数据,进行各种各样的分析。  只用鼠标点击、拖拉就可以浏览多维数据  自动利用Web发布得到的分析报告  支持多种OLAPServer:MicrosoftOLAPServices、HyperionEssbase、SAPBW、IBMOLAPforDB2   完备的授权和安全体系  NovaView,是MicrosoftSQLServer7.0OLAPServices的客户端应用程序。

MicroStrategy

  MicroStrategy7,是新一代的智能平台(IntelligencePlatform)面向电子商务应用e-business和电子客户关系管理eCRM。  具有强大的分析能力  以Web为中心的界面  支持上百万的用户和TB的数据  快速开发能力,可直接利用已有的数据模式  IntelligenceServer,Oneforallanalyticapplications   Microsoft SQLServer7.0OLAPServices,是SQLServer7.0的OLAP模块,可以使用任何关系数据库或平面文件作为数据源,其中的PivotTableService提供了客户端的数据缓存和计算能力。  智能的Client/Server数据管理,提高响应速度,降低网络流量  通过OLEDBforOLAP,允许不同的客户端访问

BusinessObject

  BusinessObjects,是易用的BI工具,允许用户存取、分析和共享数据。  可应用多种数据源:RDB,ERP,OLAP,Excel等  可应用VBA和开放式对象模型来进行开发定制

IBM

  DB2OLAPServer,是强大的多维分析工具,把HyperionEssbase的OLAP引擎和DB2的关系数据库集成在一起。  与EssbaseAPI完全兼容  数据用星型模型存放在关系数据库DB2中

Brio

  Brio.Enterprise,是强大的易用的BI工具,提供查询,OLAP分析和报告的能力  支持多种语言,包括中文  Brio.Report,强大的企业级报告工具

OLAP相关标准

  APB-1OLAPBenchmarkReleaseII(SPONSOREDBYOLAPCOUNCIL)
扩展阅读:
  • http://www.cnblogs.com/team/DotNetBI.html

联机事务处理

通常在数据库系统中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统(OLTP)实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。

简介

  反映企业当前的运行状态,完成企业管理所包含的日常任务的数据库应用,一般没有复杂的查询和分析处理。在联机事务处理中,事务是被立即执行的,这与批处理相反,一批事务被存储一段时间,然后再被执行。大多数批处理(例如账目交换)是在夜间进行的。OLTP的结果可以在这个数据库中立即获得,这里假设这些事务可以完成。联机事务处理以实时的方式发生。民航定票系统和银行ATM机是联机事务处理系统的例子。  在单一用户、单一数据库环境下执行事务是简单的,这是因为没有冲突问题或对数据库间同步的需求。在分布式环境下,维护多个数据库的完整性是另外一种问题。传统上,大多数联机事务处理系统在大型计算机系统上实现,这是由于它的操作的复杂性,以及需要快速输入/输出、禁止和管理的原因。如果一个事务必须在多个场地进行修改,那么就需要管理机制来防止重写数据并提供同步。其它的需求包括具有卷回失效事务的能力、提供安全性特征,以及如果需要,提供数据恢复的能力。这是通过一个事务处理监督器来处理的。这个监督器保证了事务是完全完成的或是进行卷回的,因而就可以保证数据库状态的正确性。  在一个分布式环境下,写操作经常并行地在多个数据库服务器上发生。这样的并发事务处理需要一个“卷回”机制,以保证在一次写操作中系统失效的情况下,仍保证数据库的完整性。事务要么一起确认,要么放弃。如果一个或多个与事务有关的系统响应不一致,这意味着系统或通信可能出现了故障,因而就会放弃一个事务。  可以看出,当多个用户试图同时改变数据的同一块时,就出现了冲突问题。另外,对多个数据库的写入操作必须进行同步处理,并且必须保证这个写入已经确实被所有的数据库处理完毕了,需要一个监督程序来保证数据的完整性。对在分布式环境下的事务处理有四种需求,联合起来称为“ACID”。

原子性

  (Atomicity):定义工作的独立单元。如果一个事务是分布的,所有影响分离地点数据的子事务都必须象一个事务那样被一起执行。为了保持在多个地点数据的一致性,需要使用下面就将介绍的双阶段认可过程。

一致性

  (Consistency):一致性基本上是一种数据库从一个状态变到同等的另一个状态的需求。事务监督器必须检验所有被影响的数据都是一致的。

孤立性

  (Isolation):事务必须被孤立地执行直到完成,执行期间不受到其它事务的影响。

持续性

  (Durability):这个性质是与事务的最终确认一起进行的。一旦一个事务被检验为对所有受影响的系统都是正确的,它就被认可并且不再需要卷回。

你可能感兴趣的:(数据仓库(ETL/OLAP/OLTP))