增量数据采集的方法和装置制造方法及图纸

技术编号:6536426 阅读:321 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种增量数据采集的方法和装置,属于数据库领域。该方法包括:每隔预设时间检查缓存中与该原始表相应的信息;如果该数据中存在进行过预设目标操作的增量数据,则记录该增量数据。还公开了一种装置,该装置包括:检查模块、记录模块、建立模块和存储模块。本发明专利技术不需要侵入原始表即可进行增量数据采集,节省数据库的资源,且当数据库操作频繁时,由于系统可以根据运行情况预设增量数据采集的间隔时间,使得系统可自行选择时机进行增量数据采集,可均衡数据库负载,提高了用户体验。

【技术实现步骤摘要】

本专利技术涉及数据库领域,特别涉及一种增量数据采集的方法和装置
技术介绍
在数据库中,经常会对原始数据进行插入、删除或更新等操作,进行这些操作的对象可称为增量数据,在某些情况下,需要将一些原始表的增量数据同步到其它一些表中,使这些表的数据保持一致;还有一些情况,需要详细了解一些原始表的变化,用于数据分析和挖掘,在上述情况下一般会进行增量数据采集。现有技术中的增量数据采集一般使用以下两种方法第一种方法是基于Trigger的增量数据采集,当数据库中发生插入、更新或删除的操作时,数据库会自动执行预定义的预存程序,侵入原始表,将原始表中的增量数据采集到备份表中;第二种方法是基于时间戳字段的增量数据采集,是查询原始表数据中代表被操作时间的时间戳字段,将指定时间段中产生的增量数据采集到备份表中。在对现有技术进行分析后,专利技术人发现现有技术至少具有如下缺点上述两种方式都是对数据库中的原始表进行直接操作,需要侵入原始表进行采集,影响系统的进程,用户体验差,其中,第一种方式在操作频繁时会增加数据库负荷,对系统造成性能影响。第二种方式要求原始表必须具有时间戳字段,局限性大,并且对进行了删除操作的增量无法进行记录。
技术实现思路
本专利技术实施例提供了一种增量数据采集的方法和装置。所述技术方案如下一种增量数据采集的方法,包括每隔预设时间检查缓存中与所述原始表相应的信息;如果所述数据中存在进行过预设目标操作的增量数据,则记录所述增量数据。每隔预设时间检查缓存中与所述原始表相应的信息具体包括每隔预设时间检查缓存中与所述原始表相应的版本信息,所述版本信息中包含所述预设时间内所做的操作和所述操作发生的时间。所述检查通过调用f lastiback query完成。记录所述增量数据之后还包括将所述增量存储到所述增量数据备份表中。将所述增量存储到所述增量数据备份表中之前还包括根据原始表和预设的目标操作建立增量数据备份表。一种增量数据采集的装置,包括检查模块,用于每隔预设时间检查缓存中与所述原始表相应的信息;记录模块,用于如果所述数据中存在进行过预设目标操作的增量数据,则记录所述增量数据。所述检查模块具体用于每隔预设时间检查缓存中与所述原始表相应的版本信息, 所述版本信息中包含所述预设时间内所做的操作和所述操作发生的时间。所述检查通过调用f lastiback query完成。所述装置还包括存储模块,用于将所述增量存储到所述增量数据备份表中。所述装置还包括建立模块,用于根据原始表和预设的目标操作建立增量数据备份表。本专利技术实施例提供的技术方案的有益效果是通过对缓存中的数据进行监控以对原始表进行增量数据采集,不需要侵入原始表即可进行增量数据采集,节省数据库的资源,且当数据库操作频繁时,由于系统可以根据运行情况预设增量数据采集的间隔时间,使得系统可自行选择时机进行增量数据采集,可均衡数据库负载,提高了用户体验。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例1提供的一种增量数据采集的方法的流程图;图2是本专利技术实施例2提供的一种增量数据采集的方法的流程图;图3是本专利技术实施例3提供的一种增量数据采集的装置的示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。实施例1为了在进行增量数据采集时提高系统性能,节省数据库资源,本专利技术提供了一种增量数据采集的方法,包括101 每隔预设时间检查缓存中与该原始表相应的信息;102:如果该数据中存在进行过预设目标操作的增量数据,则记录该增量数据。通过对缓存中的数据进行监控以对原始表进行增量数据采集,不需要侵入原始表即可进行增量数据采集,节省数据库的资源,且当数据库操作频繁时,由于系统可以根据运行情况预设增量数据采集的间隔时间,使得系统可自行选择时机进行增量数据采集,可均衡数据库负载,提高了用户体验。实施例2为了在进行增量数据采集时提高系统性能,节省数据库资源,本专利技术提供了一种增量数据采集的方法,具体包括201 根据需要进行增量数据采集的原始表和预设的目标操作建立增量数据备份表;其中,该原始表可以是由系统设定的,也可以是由用户指定的,本专利技术实施例对此不做具体限定。其中,该预设的目标操作可以为对原始表的字段进行的增加、删除或修改等操作。202 每隔预设时间检查缓存中记录的该原始表相应的版本信息;其中,该预设时间是系统根据自身的运行状态设定的,当系统繁忙时,该预设时间可以调整为稍长,当系统空闲时,该预设时间可以调整为稍短。具体地,该检查的过程可以通过调用f lastiback query完成,该f Iastiback功能为数据库的功能之一,FlastAack是Oracle自9i就开始提供的一项特性,在9i中利用Oracle 查询多版本一致的特点,实现从回滚段中读取一定时间内操作过的表数据,可用来进行数据比对,或者修正意外提交造成的错误数据,该项特性也被称为Flastiback Query0其中,该版本信息用于对过去一段时间内提交的数据进行监控,该版本信息包含预设时间内所做的操作和该操作发生的时间或SCN(System Change Number,系统改变号)。SCN在Oracle中理解为一个内部同步时钟,它是数据库中非常重要的一个数据结构。它定义数据库在某个确切时刻提交的版本。在事务提交时,它被赋予一个唯一的标示事务的SCN。203 如果版本信息有变化,则分析该版本信息;具体地,分析版本信息时,可以查看用以记录操作的列的内容,在数据库中,该列可以为VERSIONS_STARTSCN/VERSIONS_STARTTIME,该列用来记录操作时的SCN或时间,如果为空,表示该行记录是在查询范围外创建的;还可以查看VERSIONS_ENDSCN/VERSIONS_ENDTIME,该列用来记录失效时的SCN 或时间,如果为空,说明记录当前时间在当前表内存在,或者已经被删除了,可以配合着 VERSI0NS_0PERATI0N列来看,如果VERSI0NS_0PERATI0N列值为D,说明该列已被删除,如果该列为空,则说明记录在这段时间无操作。204:判断该版本信息中是否有进行过预设的目标操作的增量数据,如果是,执行步骤205,如果否,返回执行步骤202 ;205 记录该增量数据;具体地,该增量数据是从版本信息中提取出来的,本领域技术人员可以获知,该提取方法可以有多种,在此不做赘述。206 根据所记录的增量数据,建立数据库存储过程;具体地,在数据库中一般将这个过程利用建立procedure来实现建立数据库存储过程,在建立该存储过程时,可以根据用户的要求或系统的设置来选择所要存储的内容,确定该内容的范围,例如,目标操作的内容为工号为1-50的员工,在建立存储过程时,可划定一个存储的范围或对存储的内容进行限定,该范围可以为工号为1-25的员工等,该对存储的内容进行限定可以为工号为1-25的女员工等。207 根据数据库存储过程,将该增量数据存储本文档来自技高网...

【技术保护点】
1.一种增量数据采集的方法,其特征在于,包括:每隔预设时间检查缓存中与所述原始表相应的信息;如果所述数据中存在进行过预设目标操作的增量数据,则记录所述增量数据。

【技术特征摘要】
1.一种增量数据采集的方法,其特征在于,包括每隔预设时间检查缓存中与所述原始表相应的信息; 如果所述数据中存在进行过预设目标操作的增量数据,则记录所述增量数据。2.根据权利要求1所述的方法,其特征在于,每隔预设时间检查缓存中与所述原始表相应的信息具体包括每隔预设时间检查缓存中与所述原始表相应的版本信息,所述版本信息中包含所述预设时间内所做的操作和所述操作发生的时间。3.根据权利要求2所述的方法,其特征在于,所述检查通过调用flastibackquery完成。4.根据权利要求1所述的方法,其特征在于,记录所述增量数据之后还包括 将所述增量存储到所述增量数据备份表中。5.根据权利要求4所述的方法,其特征在于,将所述增量存储到所述增量数据备份表中之前还包括根据原始表和预设的目标操作建立增量数...

【专利技术属性】
技术研发人员:陈慕冰
申请(专利权)人:深圳市金蝶中间件有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1