• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

轻量级数据仓库的实现方法

发布: 2009-9-29 10:36 | 作者: 不详 | 来源: 领测软件测试网 | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

 3.2 数据仓库思想 

    数据仓库中有很多优秀的思想值得软件设计者和数据库设计者借鉴。数据仓库的核心思想之一就是其面向主题的思想。面向主题与面向数据不同,面向主题的粒度要比面向数据的粒度大,面向主题更能反映从人的层面上对数据的理解。主题反映了人对原始数据的第一次加工和对数据所载信息的归类,这种归类带有人们对数据的需求的痕迹。主题因此也构成了需求的主要元素。

    数据仓库的按照主题归类主要是通过对数据块不同层面的切割实现的。数据切割主要包括切片、切块。切片是一种用来在数据仓库中将一个维度中的分析空间限制为数据子集的技术。切块是一种用来在数据仓库中将多个维度中的分析空间限制为数据子集的技术。大型的连锁超市、银行电信网络管理软件中的数据库,这些数据库中的大部分数据有着共同的特性,就是时间的矢量性和多层的地理区域性。时间的矢量性说明数据库中的时间是单向的递增的,不会出现时间倒退的纪录,任何写入数据库中的数据的时间都要比数据库中的最新时间新。多层的地理区域性是指一条数据按照区域的粒度可能属于某个区、某个市、某个省也可能是地理区域的变形,属于某个科室、某个部门、某个集团等。在实际的软件功能中,客户对数据需求最多的就是对这些数据进行不同层面上的聚合运算包括均值运算、求和运算、极值运算等。对同类数据进行的不同层面上的运算事实上就是对时间或者地理维度的切片或者切块。其结果构成了新的事实表,这些事实表的集合就构成了该类数据的一个主题。因此数据仓库是以主题(Subject)为基本组成单位。每个主题包含多个事实表、维表、中间表以及数据立方体,它们在本质上都是一些综合数据表。软件和数据库之间的接口直接从事实表中提取数据,避免了大量的聚合运算,因此可以极大地提高软件的响应速度,提供给用户更加友好的操作环境。

    4 系统实现

    数据仓库是一个庞大的系统,数据仓库的最终目的是提供决策支持。主要是通过把以前存入数据库中的数据通过数据挖掘和知识发现发现某种内在规律,比如顾客的喜好、顾客购买商品之间的关联性等。数据仓库对于很多企业比如超市连锁店、电信行业、保险行业有着很好的应用。但是实施这样一个庞大的工程是昂贵的,动则百万美金以上。这使很多企业望而却步。因此这里提出一种轻量级数据仓库的构建方案。该构建方案汲取了数据仓库的面向主题的思想,虽然该方案的目标主要是提高软件的响应速度,但是由于其面向主题的特性也可以为决策层提供支持,而且这种结构良好、面向主题的数据库系统也可以为以后完整数据仓库的构建所用,减少构建的复杂度。 

    很多数据库管理系统提供商比如Microsoft、Sysbase、Oracle都有其构建数据仓库专门的工具。这些工具由于是为构建数据仓库而设计,因此结构非常的复杂、对数据库设计人员的要求比较高,在软件开发中可实施性比较低。实际上关系型数据库从提出到现在已有30多年的历史,关系型数据库是现在所有数据库中包括面向对象数据库、关系型面向对象数据库发展最为完善的一种。关系型数据库中的存储过程、触发器、发布和订阅模式有足够的能力解决上面的问题。因此利用现有的关系型数据库中这些成熟稳定的工具,就可以构建轻量级的数据仓库。 轻量级数据仓库的构建模型如下图2所示,主要包括如下几个步骤:数据的清洗,根据需求定制主题集合,定制事实表采集规则,编程接口之实现。

    数据清洗是原始数据进入数据仓库的第一步。软件的数据采集器采集到数据库中的数据可能含有不规则、错误的数据,也就是噪声数据,这些数据数量少,但是可能极大地影响结果的正确性,因此必须清洗掉。数据清洗主要是由数据库中的规则以及根据业务定义的清洗规则来实现的。数据库中的规则保证了数据库中的数据是合乎数据类型的而业务的清洗规则保证了数据库中的数据是合乎逻辑的。 

    轻量级数据仓库的第二步就是根据需求定义主题。主题是数据库中以某个表为基表,以其列集为扩展维度而构成的一系列事实表的集合。事实表的构建规则应该尽可能的和需求相吻合,这样可以最大程度上减轻software report 从Center DB 提取数据造成的对数据库的压力。主题和事实表都是可以扩展的,也是可以重复利用的。事实表可以也作为基表进行扩展新的事实表。 



    第三步就是定义事实表的采集规则。由于Software report 不是直接从DB里面提取数据而是从Center DB中提取数据,因此Center DB中的数据必须能够实时地反映DB中数据的变化,因此需要定制一定的采集策略。事实表的采集规则这里主要是指采集的频度策略。不同的事实表对数据的采集频度有不同的需求,例如按天统计的事实表和按周、月、年统计的事实表采集频度肯定不相同。事实表采集规则也是主要依靠需求制定的。 最后一步就是所有这些清洗规则,事实表采集规则之实现。既可以通过数据库数据库之间的接口实现,也可以通过其他编程接口实现。数据库与数据库之间的编程接口主要是通过存储过程和触发器以及数据库之间的发布订阅模式来实现。现在很多语言包括C,C++,JAVA都和数据库之间有方便的接口ADO、DAO、ODBC、JDBC,通过这些接口编程人员可以更加灵活的操作数据库,并对数据库中的数据进行处理,也可以实现数据清洗、事实表采集规则。 

    5 比较 

    轻量级数据仓库和企业级数据仓库相比有如下异同: 企业级数据仓库主要目标是为企业发展提供决策支持。轻量级数据仓库主要目标是提高软件的响应速度。企业级数据仓库的数据源是海量的,可能是10年的数据也可能是20年的数据。轻量级数据仓库的数据源要少的多,主要是软件的数据采集器采集的数据,量级在百万到千万级。企业级数据仓库的数据源是异构的,可能是源于不同的DBMS,也可能是源于不同的存储介质包括磁带、磁盘、光盘。轻量级数据仓库的数据源是同构的,主要是同一种DBMS下的数据。 

    企业级数据仓库和轻量级数据仓库的思想是一致的,都是面向主题的,稳定的,一经写入从不或者很少修改的。企业级数据仓库和轻量级数据仓库都是以星型为扩展模式构建的事实表的集合,本质上把频繁运算的结果集存贮为事实表,从而达到一次运算重复利用的效果。

    6 结论 

    本文描述了轻量级数据仓库的构建模型及实现方法,并和企业级数据仓库做了比较。 该模型可运用于网络管理、电信、银行、超市等业务管理与统计软件中。该模型通过时间分摊、事实表的预运算等方法,提高了软件的响应速度。实验表明通过基于主题的事实表的构建,百万级记录的响应时间有原来的分钟级降到了1~3秒,达到了提高响应速度的目的。 

    

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网