充值信息

赞助信息

推荐给好友 上一篇 | 下一篇

面向商业OLAP的并行数据抽取接口设计



    目前大多数企业都先后拥有了自己的信息管理系统,基本满足了企业的联机事物处理要求。近年来,伴随商业竞争的日趋激烈和信息产业的快速发展,单纯的联机事物处理已经很难满足企业的发展需要,企业决策者迫切需要的是具有联机分析处理(OLAP,Online Analytical Processing)功能的决策支持系统。OLAP专门用于支持复杂的分析操作,具有汇总、合并和聚集功能,以及从不同角度观测信息的能力,侧重于对高层管理人员的决策支持。

    在信息化社会中,企业为了自身的发展和运作,收集了大量的信息和数据,用于分析自身的业务运行状态。而决策所需要的是综合性的、规范的、关键的信息和数据,很少使用或者不使用大量的细节信息和数据。据统计,源数据库存放的细节数据与决策时需要的有效数据之比非常悬殊,大约是1000∶1, 因此决策者们希望设计一种数据抽取系统,建立专为决策者使用的专业数据库,存放有效数据,从而改进决策者对数据的利用率。

    针对上述应用要求,提出了一种面向商业OLAP的并行数据抽取接口设计方案。首先对企业的各种数据源进行数据清理,然后整合各种异构数据源为统一的数据存储模式,最后为企业决策者建立了用于OLAP的专业数据库。整个数据抽取系统基于企业服务器组成的并行网络,采用Master-Slave计算模式,因而具有良好的可伸缩性和可扩展性。

1 面向商业OLAP的系统设计

    一般的大型商务公司下属若干家分公司。总公司拥有数台数据库服务器,通过局域网互连,各分公司分别拥有自己的客户机,这些客户机通过专用网络与总公司的局域网连接,总公司进行OLAP的数据应来自各分公司提供的数据。

    但是,分公司存放的数据可能是大量细节性数据和异构数据源数据(如文本等),这就使得数据的存储模式不统一,不符合OLAP的要求。因此首要问题就是需要设计一个数据抽取接口,首先对各分公司的数据进行清理工作,然后再把清理后的分公司数据进行集成和变换,整合成为与总公司数据库统一的数据存储模式,最终形成总公司一级进行OLAP的专业数据库。

    基于上述分析,提出了整个系统的结构设计,如图1所示。系统共有3层,分公司层是各分公司的数据库和一些异构数据源,其中存放了大量的细节数据和不规范数据;数据抽取层包括数据抽取接口和感应器,数据抽取接口的主要作用是对分公司级的数据进行预处理,形成规范的总公司级的统一数据存储模式。感应器设定了一个数据量阀值,当各分公司的变动数据量超过这个阀值时,数据抽取接口开始工作;总公司层包括专门为决策分析而设计的专业数据库和决策支持查询应用。


图1 整个系统的结构设计图


2 数据抽取接口设计中的数据预处理

    在整个接口设计中,数据预处理是一个非常重要的部分。现实世界中的应用数据存在着许多不一致数据、不完整数据和噪声数据,产生这种现象的原因是多方面的,主要有滥用缩写词、数据输入错误、数据中的内嵌控制信息、不同的惯用语、重复记录、丢失值、拼写变化、不同的计量单位、过时的编码等9个方面,因此预处理是必须的。数据预处理包括数据清理、数据集成和变换、数据规约。

    2.1 数据清理

    数据清理主要包括2个方面的工作:填补丢失的数据、清除噪声数据。

    当分析数据时,可能会发现许多元组的一些属性没有记录值,这将对数据分析的结果产生不利影响。在抽取接口的设计中采用了填入同一类元组在该属性上的平均值的方法来填入空缺值。此方法通过分类属性,计算每种属性的平均值,将平均值填入对应属性的空缺值中,使分析结果更加逼近真实情况。例如,公司的客户编码从1到k,v(i)表示客户i的销售额,其中1≤i≤k,客户销售额的平均值记为υave。若客户2、16、30的销售额为空,则应该把υave填入υ(2)、υ(16)、υ(30)。

    噪声指没有包含在任何分组当中的数据对象,应该被丢弃,否则会影响分析结果的准确性。噪声数据可以通过聚类分析检测到。其主要思想就是将一组数据按照某种相似性划分为若干组,遗留在所有小组之外的零散数据将被作为一种噪声数据而剔除。在抽取接口的设计中采用了V.Barnett和T.Lewis提出的基于统计的孤立点检测来发现并去除噪声数据。该方法要求数据集的分布参数(如平均值和方差),但计算复杂度为线性,适合商业型数据。

    2.2 数据集成和变换

    数据集成将多个数据源中的数据结合起来存放在一个一致的数据存储中。数据源可能包括多个数据库、文本文档、电子表格。

    对于大多数商务公司,可能会存在多个不同的数据库,其它的数据源一般都是文本文档和电子表格。对于不同的数据库之间可以利用数据库中的元数据(关于数据的数据),使多个数据库中的实体匹配。对于文本文档和电子表格,可以通过编制数据管道将其导入数据库。

    数据集成剩下的问题就是冗余问题了。这里对于冗余数据采用相关分析的方法来检测数据之间的相关性,然后把冗余的数据删除。对于给定的两个属性,相关分析可以度量一个属性在多大程度上蕴涵另一个属性。属性A和属性B之间的相关性可以用下面的公式度量:


    其中,n是元组个数,A/B分别是A/B的平均值,σA和σB分别是A和B的标准差。如果公式值大于0,则A和B是正相关的。该值越大,表明A或B偏离均值越多,即两个属性的相关性就越大。因此,一个很大的值表明A(或B)可以作为冗余数据被去掉。

    进行数据变换的主要目的是使数据规范化,转换成适合OLAP的形式。因为OLAP用到的数据基本是数值型的,而有的数据值非常大,不利于决策分析,把这些数据投影到一个相对较小的区间,在相对较小的数值区间上分析会比较容易。

    主要的方法有:Z-Score规范化、小数定标规范化、最小-最大规范化。

    Z-Score规范化基于属性值的平均值的标准差来进行规范化,当存在噪声数据时,该方法比较有效;小数定标规范化通过移动属性的小数点位置进行规范化,该方法易破坏原始数据之间的关系;最小一最大规范化对原始数据进行线性变换。假定υmax和υmin分别为属性A的最大和最小值,属性A的值υ被规范成υ’,由下面的公式计算:


    其中[υn_max,υn_min]是新的值区间。这种方法保持了原始数据值之间的关系,由于在数据清理阶段已经处理了噪声数据,因此实际设计时采用了这种方法。

    2.3 数据规约

    数据归约技术用来降低分析数据量。通过数据规约后,得到的数据集要小得多,而且分析结果也几乎相同。由于针对的是大量的商业数值型数据,因此设计采用了数据立方体聚集的方法来进行数据规约。这种方法可以对数据按不同维度进行汇总计算,形成多个高层次的数据立方体,从而减低了数据量,提高了OLAP的效率。

21/212>


 

评分:0

我来说两句