论文部分内容阅读
数据仓库中包含着从各种独立自治的数据源中抽取出来的信息,当数据源发生变化时,数据仓库中的数据也必须被更新以反映这种变化,面对如此大量的数据,采用完全重载的方法显然是不可行的,因而有必要提出一种高效的增量式维护的方法,也就是只将数据源中发生变化的数据捕获并刷新到数据仓库中。建立在数据仓库上的一些应用,如OLAP分析和数据挖掘等,通常会涉及到大批量数据的检索,为了能够提高查询的效率,在数据仓库中会建立一定数量的实视图。目前关于数据仓库的增量式刷新的讨论,大部分都集中在实视图的维护上。本文提出了一个实现数据仓库增量刷新的体系框架,它将不再局限于实视图的维护,而涉及到了一个数据仓库系统运行的整个过程,包括对数据源变化的监控,将捕获到的变化数据传送和集成到数据仓库、对数据仓库的刷新和历史数据的保存等主要部分。当采用传统的方法对数据仓库进行维护时,所捕获到的变化信息将被直接应用到仓库中相应的表或实视图上。文中提出了一种Delta表的方法,变化的数据先被抽取到Delta表中,然后再利用Delta表对数据仓库进行增量维护,该方法能够将复杂的维护过程进行分解,使可控制性和正确性得到进一步的保证。由于数据源的更新和数据仓库的维护是两个分离的过程,这有可能导致异常数据的出现。本文提出了一种补偿算法,它能够有效的消除异常数据,该算法借用了ECA算法的核心思想,但是针对我们所提出的框架,该算法在实现上做了很大改进。在刷新过程中,数据仓库通常是不可访问的,为了减少数据仓库不可见的时间,我们将实视图的维护过程分成了数据传送和刷新两个阶段。在数据传送阶段,数仓库对用户仍然是可访问的,因而这个阶段会做尽可能多的工作以减少刷新阶段所需的时间。