无为

无为则可为,无为则至深!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

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

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

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

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

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

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

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



凡是有该标志的文章,都是该blog博主Caoer(草儿)原创,凡是索引、收藏
、转载请注明来处和原文作者。非常感谢。

posted on 2006-09-07 13:20 草儿 阅读(417) 评论(0)  编辑  收藏 所属分类: BI and DM

只有注册用户登录后才能发表评论。


网站导航: