一种变更数据抽取的方法及装置制造方法及图纸

技术编号:16346166 阅读:27 留言:0更新日期:2017-10-03 22:25
本发明专利技术公开了变更数据抽取的方法及装置,包括:获取源数据库的数据的信息;结合数据的时间字段,对源数据库进行全量抽取,将抽取的数据传输到目标数据库;结合数据的状态字段,获取目标数据库中处于变动状态的数据的记录主键,将记录主键存储于第二数据表中;对源数据库进行增量抽取,将抽取的数据传输到目标数据库;将记录主键对应的数据从目标数据库中删除,依据记录主键从源数据库中重新进行数据的抽取,将抽取的数据传输到目标数据库;清空第二数据表中的记录主键,重新获取目标数据库中处于变动状态的数据的记录主键,并存储于第二数据表中。解决了现有技术数据增量抽取时,对源数据库进行修改,影响源系统业务正常开展的问题。

【技术实现步骤摘要】
一种变更数据抽取的方法及装置
本专利技术涉及数据库
,更具体地,涉及一种变更数据抽取的方法及装置。
技术介绍
数据抽取工作可看作是ETL(Extract-Transform-Load,数据的抽取、转换和装载)过程,常常在多个系统相互协作时用到。由于不同系统由不同单位承建或者系统数据库类型不一致,往往导致新建设的系统不能够直接与原系统使用相同的数据库。为保证系统间协作的正常运转,因此需要使用数据抽取技术进行系统间的数据同步。数据抽取技术需要保证在不影响原系统正常业务开展的情况下,实时或定时更新目标系统的数据库。数据抽取包括全量抽取和增量抽取两种类型,当数据表的数据量较大时,如果每次都进行全量抽取的方式,会导致抽取效率低,影响工作的开展,因此在这种情况下需要进行增量抽取。而增量抽取在数据抽取实施过程中还存在各种问题。现有的数据增量抽取方案,多是通过对源数据库做相应程度的修改(如,修改表结构、创建临时表等)来进一步实施的,这些增量抽取的方案在一定程度上影响到了源数据库的性能,可能导致源系统业务无法正常开展。因此,在数据增量抽取的实际操作中不允许对已有数据库进行结构变动。因此,提供一种变更数据抽取的方法及装置,解决现有技术中在进行数据增量抽取时,需对源数据库进行修改,从而影响源系统业务的正常开展的问题,是本领域亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种变更数据抽取的方法及装置,解决现有技术中在进行数据增量抽取时,需对源数据库进行修改,从而影响源系统业务的正常开展的问题。为了解决上述技术问题,本专利技术提出一种变更数据抽取的方法,包括:获取源数据库的数据的信息,其中,所述数据的信息,包括:时间字段、状态字段和记录主键;获取所述源数据库的时间,记作全量抽取时间,并将所述全量抽取时间存储于第一数据表中;结合所述数据的时间字段,对所述源数据库进行全量抽取,获取所述全量抽取时间以前的所有数据,并将抽取的所述数据传输到目标数据库;结合所述数据的状态字段,获取所述目标数据库中处于变动状态的所述数据的记录主键,并将所述记录主键存储于第二数据表中;获取所述第一数据表中最后一次更新的抽取时间,并将所述抽取时间作为增量抽取开始时间;再次获取所述源数据库的时间,记作增量抽取结束时间,并将所述增量抽取结束时间存储于第一数据表中;结合所述数据的时间字段,对所述源数据库进行增量抽取,获取所述增量抽取开始时间到所述增量抽取结束时间之间的所有数据,并将抽取的所述数据传输到目标数据库;获取所述第二数据表中的所述记录主键,将所述记录主键对应的所述数据从目标数据库中删除,同时依据所述记录主键从源数据库中重新进行数据的抽取,将抽取的所述数据传输到目标数据库;清空所述第二数据表中的所述记录主键,结合所述数据的状态字段,重新获取所述目标数据库中处于变动状态的所述数据的记录主键,并将新获取的所述记录主键存储于第二数据表中。进一步地,将所述全量抽取时间存储于第一数据表中,包括:将所述全量抽取时间生成传递变量;进一步为:获取所述源数据库的时间,记作全量抽取时间,将所述全量抽取时间转变为具有传递变量特性的所述全量抽取时间,并将所述全量抽取时间存储于第一数据表中。进一步地,将最后一次更新的所述抽取时间作为增量抽取开始时间,包括:将最后一次更新的所述抽取时间生成传递变量;进一步为:获取所述第一数据表中最后一次更新的抽取时间,并将最后一次更新的所述抽取时间作为增量抽取开始时间,将所述抽取时间转变为具有传递变量特性的所述增量抽取开始时间。进一步地,将所述增量抽取结束时间存储于第一数据表中,包括:将所述增量抽取结束时间生成传递变量;进一步为:再次获取所述源数据库的时间,记作增量抽取结束时间,将所述增量抽取结束时间,转变为具有传递变量特性的所述增量抽取结束时间,并将所述增量抽取结束时间存储于第一数据表中。进一步地,获取所述第二数据表中的所述记录主键,包括:将所述记录主键依次生成传递变量,进一步为:获取所述第二数据表中的所述记录主键,将所述记录主键依次生成具有传递变量特性的所述记录主键,将所述记录主键对应的所述数据从目标数据库中删除,同时依据所述记录主键从源数据库中重新进行数据的抽取,将抽取的所述数据传输到目标数据库。还包括,一种变更数据抽取的装置,其特征在于,该装置包括:数据获取单元、全量抽取时间获取单元、全量抽取单元、记录主键存储单元、增量抽取开始时间获取单元、增量抽取结束时间获取单元、增量抽取单元、目标数据库更新单元和第二数据表更新单元,其中;所述数据获取单元与所述全量抽取单元和所述增量抽取单元相连接,用于:获取源数据库的数据的信息,其中,所述数据的信息,包括:时间字段、状态字段和记录主键;所述全量抽取时间获取单元与所述全量抽取单元相连接,用于:获取所述源数据库的时间,记作全量抽取时间,并将所述全量抽取时间存储于第一数据表中;所述全量抽取单元与所述数据获取单元、所述全量抽取时间获取单元和所述记录主键存储单元相连接,用于:结合所述数据的时间字段,对所述源数据库进行全量抽取,获取所述全量抽取时间以前的所有数据,并将抽取的所述数据传输到目标数据库;所述记录主键存储单元与所述全量抽取单元和所述目标数据库更新单元相连接,用于:结合所述数据的状态字段,获取所述目标数据库中处于变动状态的所述数据的记录主键,并将所述记录主键存储于第二数据表中;所述增量抽取开始时间获取单元与所述增量抽取单元相连接,用于:获取所述第一数据表中最后一次更新的抽取时间,并将所述抽取时间作为增量抽取开始时间;所述增量抽取结束时间获取单元与所述增量抽取单元相连接,用于:再次获取所述源数据库的时间,记作增量抽取结束时间,并将所述增量抽取结束时间存储于第一数据表中;所述增量抽取单元与所述数据获取单元、所述增量抽取开始时间获取单元、所述增量抽取开始时间获取单元和所述目标数据库更新单元相连接,用于:结合所述数据的时间字段,对所述源数据库进行增量抽取,获取所述增量抽取开始时间到所述增量抽取结束时间之间的所有数据,并将抽取的所述数据传输到目标数据库;所述目标数据库更新单元与所述记录主键存储单元、所述增量抽取单元和所述第二数据表更新单元相连接,用于:获取所述第二数据表中的所述记录主键,将所述记录主键对应的所述数据从目标数据库中删除,同时依据所述记录主键从源数据库中重新进行数据的抽取,将抽取的所述数据传输到目标数据库;所述第二数据表更新单元与所述目标数据库更新单元相连接,用于:清空所述第二数据表中的所述记录主键,结合所述数据的状态字段,重新获取所述目标数据库中处于变动状态的所述数据的记录主键,并将新获取的所述记录主键存储于第二数据表中。进一步地,所述全量抽取时间获取单元,进一步为:所述全量抽取时间获取单元,用于:获取所述源数据库的时间,记作全量抽取时间,将所述全量抽取时间转变为具有传递变量特性的所述全量抽取时间,并将所述全量抽取时间存储于第一数据表中。进一步地,所述增量抽取开始时间获取单元,进一步为:所述增量抽取开始时间获取单元,用于:获取所述第一数据表中最后一次更新的抽取时间,并将最后一次更新的所述抽取时间作为增量抽取开始时间,将所述抽取时间转变为具有传递变量特性的所述增量抽取开始时间。进一步地,所述增本文档来自技高网...
一种变更数据抽取的方法及装置

【技术保护点】
一种变更数据抽取的方法,其特征在于,包括:获取源数据库的数据的信息,其中,所述数据的信息,包括:时间字段、状态字段和记录主键;获取所述源数据库的时间,记作全量抽取时间,并将所述全量抽取时间存储于第一数据表中;结合所述数据的时间字段,对所述源数据库进行全量抽取,获取所述全量抽取时间以前的所有数据,并将抽取的所述数据传输到目标数据库;结合所述数据的状态字段,获取所述目标数据库中处于变动状态的所述数据的记录主键,并将所述记录主键存储于第二数据表中;获取所述第一数据表中最后一次更新的抽取时间,并将所述抽取时间作为增量抽取开始时间;再次获取所述源数据库的时间,记作增量抽取结束时间,并将所述增量抽取结束时间存储于第一数据表中;结合所述数据的时间字段,对所述源数据库进行增量抽取,获取所述增量抽取开始时间到所述增量抽取结束时间之间的所有数据,并将抽取的所述数据传输到目标数据库;获取所述第二数据表中的所述记录主键,将所述记录主键对应的所述数据从目标数据库中删除,同时依据所述记录主键从源数据库中重新进行数据的抽取,将抽取的所述数据传输到目标数据库;清空所述第二数据表中的所述记录主键,结合所述数据的状态字段,重新获取所述目标数据库中处于变动状态的所述数据的记录主键,并将新获取的所述记录主键存储于第二数据表中。...

【技术特征摘要】
1.一种变更数据抽取的方法,其特征在于,包括:获取源数据库的数据的信息,其中,所述数据的信息,包括:时间字段、状态字段和记录主键;获取所述源数据库的时间,记作全量抽取时间,并将所述全量抽取时间存储于第一数据表中;结合所述数据的时间字段,对所述源数据库进行全量抽取,获取所述全量抽取时间以前的所有数据,并将抽取的所述数据传输到目标数据库;结合所述数据的状态字段,获取所述目标数据库中处于变动状态的所述数据的记录主键,并将所述记录主键存储于第二数据表中;获取所述第一数据表中最后一次更新的抽取时间,并将所述抽取时间作为增量抽取开始时间;再次获取所述源数据库的时间,记作增量抽取结束时间,并将所述增量抽取结束时间存储于第一数据表中;结合所述数据的时间字段,对所述源数据库进行增量抽取,获取所述增量抽取开始时间到所述增量抽取结束时间之间的所有数据,并将抽取的所述数据传输到目标数据库;获取所述第二数据表中的所述记录主键,将所述记录主键对应的所述数据从目标数据库中删除,同时依据所述记录主键从源数据库中重新进行数据的抽取,将抽取的所述数据传输到目标数据库;清空所述第二数据表中的所述记录主键,结合所述数据的状态字段,重新获取所述目标数据库中处于变动状态的所述数据的记录主键,并将新获取的所述记录主键存储于第二数据表中。2.根据权利要求1所述的变更数据抽取的方法,其特征在于,将所述全量抽取时间存储于第一数据表中,包括:将所述全量抽取时间生成传递变量;进一步为:获取所述源数据库的时间,记作全量抽取时间,将所述全量抽取时间转变为具有传递变量特性的所述全量抽取时间,并将所述全量抽取时间存储于第一数据表中。3.根据权利要求1所述的变更数据抽取的方法,其特征在于,将最后一次更新的所述抽取时间作为增量抽取开始时间,包括:将最后一次更新的所述抽取时间生成传递变量;进一步为:获取所述第一数据表中最后一次更新的抽取时间,并将最后一次更新的所述抽取时间作为增量抽取开始时间,将所述抽取时间转变为具有传递变量特性的所述增量抽取开始时间。4.根据权利要求1所述的变更数据抽取的方法,其特征在于,将所述增量抽取结束时间存储于第一数据表中,包括:将所述增量抽取结束时间生成传递变量;进一步为:再次获取所述源数据库的时间,记作增量抽取结束时间,将所述增量抽取结束时间,转变为具有传递变量特性的所述增量抽取结束时间,并将所述增量抽取结束时间存储于第一数据表中。5.根据权利要求1所述的变更数据抽取的方法,其特征在于,获取所述第二数据表中的所述记录主键,包括:将所述记录主键依次生成传递变量,进一步为:获取所述第二数据表中的所述记录主键,将所述记录主键依次生成具有传递变量特性的所述记录主键,将所述记录主键对应的所述数据从目标数据库中删除,同时依据所述记录主键从源数据库中重新进行数据的抽取,将抽取的所述数据传输到目标数据库。6.一种变更数据抽取的装置,其特征在于,该装置包括:数据获取单元、全量抽取时间获取单元、全量抽取单元、记录主键存储单元、增量抽取开始时间获取单元、增量抽取结束时间获取单元、增量抽取单元、目标数据库更新单元和第二数据表更新单元,其中;所述数据获取单元与所述全量抽取单元和所述增量抽取单元相连接,用于:获取源数据库的数据的信息,其中,所述数据的信息,包括:时间字段、状态字段和记录主键;所述全量抽取时间获取...

【专利技术属性】
技术研发人员:谢中凯柳宇刚牛兴波马述杰张佳宁彭凯
申请(专利权)人:泰华智慧产业集团股份有限公司
类型:发明
国别省市:山东,37

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

1