数据抽取方法、装置、计算机设备和存储介质
技术领域
本申请涉及大数据技术领域,特别是涉及一种数据抽取方法、装置、计算机设备和存储介质。
背景技术
随着大数据时代的到来,不同数据库之间的数据交换需求越来越多,而ETL(ExtractTransformLoad,抽取转换加载)用于从源数据库中抽取数据,并将抽取的数据加载到目标数据库中。例如,从RDBMS(RelationalDatabase ManagementSystem,关系数据库管理系统)数据库(例如,Oracle、MySQL等)中抽取数据,并将抽取的数据加载到Hadoop(分布式)数据库中。或者,从Hadoop数据库中抽取数据,并将抽取的数据加载到RDBMS数据库中。
传统技术中,在进行抽取数据时,通常是基于时间窗口、基于数据主键ID增量同步数据、基于数据变化时间增量同步数据等方式抽取数据,通过这些方式抽取数据时,由于无法对源数据库中的数据的抽取状态进行标识,通常无法准确的抽取所有的增量数据,导致抽取数据时出现数据遗漏。
发明内容
基于此,有必要针对上述技术问题,提供一种能够保证抽取数据时不遗漏数据的数据抽取方法、装置、计算机设备和存储介质。
一种数据抽取方法,所述方法包括:
获取主键信息表;所述主键信息表用于存储从第一数据库中抽取并且成功加载至第二数据库中的数据的主键;
将所述主键信息表中的主键与所述第一数据库对应的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键;
从所述第一数据库中抽取与所述第一目标主键对应的数据,对抽取到的数据进行清洗和转换,得到目标加载数据;
获取所述第二数据库对应的目标数据表的唯一键配置信息,根据所述唯一键配置信息对所述目标加载数据进行过滤,将过滤后的所述目标加载数据加载到所述目标数据表中;
获取所述目标加载数据对应的第二目标主键,将获取的所述第二目标主键回写至所述主键信息表中以对所述主键信息表进行更新。
在其中一个实施例中,所述唯一键配置信息中包括至少一个目标字段;所述根据所述唯一键配置信息对所述目标加载数据进行过滤,将过滤后的所述目标加载数据加载到所述目标数据表中,包括:
将所述目标加载数据中所述目标字段对应的字段值与所述目标数据表中所述目标字段对应的字段值进行比对;
当存在比对一致的字段值时,将所述比对一致的字段值对应的目标加载数据过滤掉,将剩下的目标加载数据加载到所述目标数据表中;
当不存在比对一致的字段值时,将所有的目标加载数据加载至所述目标数据表中。
在其中一个实施例中,在所述获取所述第二数据库对应的目标数据表的唯一键配置信息之前,所述方法还包括:
将所述目标加载数据加载至第二数据库的临时数据表中;
所述根据所述唯一键配置信息对所述目标加载数据进行过滤,将过滤后的所述目标加载数据加载到所述目标数据表中,包括:
按照第一预设时间间隔复制所述临时数据表中的目标加载数据;
根据所述唯一键配置信息对已复制的所述目标加载数据进行过滤,将过滤后的所述目标加载数据加载到所述目标数据表中。
在其中一个实施例中,在所述获取所述第二数据库对应的目标数据表的唯一键配置信息之前,所述方法还包括:
将所述目标加载数据写入至异步消息队列中;
所述根据所述唯一键配置信息对所述目标加载数据进行过滤,将过滤后的所述目标加载数据加载到所述目标数据表中,包括:
从所述异步消息队列中读取目标加载数据;
根据所述唯一键配置信息对读取的所述目标加载数据进行过滤,将过滤后的所述目标加载数据加载到所述目标数据表中。
在其中一个实施例中,在所述获取主键信息表之前,所述方法还包括:
将所述第一数据库中的数据实时同步至分布式数据库中,并在所述分布式数据库中创建主键信息表;
所述获取主键信息表,包括:
从所述分布式数据库中获取主键信息表;
所述将所述主键信息表中的主键与所述第一数据库对应的源数据表的主键进行比对,包括:
将所述主键信息表中的主键与分布式数据库中的源数据表的主键进行比对;
从所述第一数据库中抽取与所述第一目标主键对应的数据,包括:
从所述分布式数据库中抽取主键为所述第一目标主键的数据。
在其中一个实施例中,所述将所述主键信息表中的主键与所述第一数据库对应的源数据表的主键进行比对,包括:
将所述主键信息表中的主键与所述第一数据库对应的源数据表中目标时间段对应的主键进行比对;
所述从所述第一数据库中抽取与所述第一目标主键对应的数据,包括:
按照第二预设时间间隔从所述第一数据库中抽取与所述第一目标主键对应的数据。
一种数据抽取装置,所述装置包括:
主键信息表获取模块,用于获取主键信息表;所述主键信息表用于存储从第一数据库中抽取并且成功加载至第二数据库中的数据的主键;
主键比对模块,用于将所述主键信息表中的主键与所述第一数据库对应的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键;
数据抽取模块,用于从所述第一数据库中抽取与所述第一目标主键对应的数据,对抽取到的数据进行清洗和转换,得到目标加载数据;
数据加载模块,用于获取所述第二数据库对应的目标数据表的唯一键配置信息,根据所述唯一键配置信息对所述目标加载数据进行过滤,将过滤后的所述目标加载数据加载到所述目标数据表中;
主键信息表更新模块,用于获取所述目标加载数据对应的第二目标主键,将获取的所述第二目标主键回写至所述主键信息表中以对所述主键信息表进行更新。
在其中一个实施例中,所述唯一键配置信息中包括至少一个目标字段;所述数据加载模块还用于将所述目标加载数据中所述目标字段对应的字段值与所述目标数据表中所述目标字段对应的字段值进行比对;当存在比对一致的字段值时,将所述比对一致的字段值对应的目标加载数据过滤掉,将剩下的目标加载数据加载到所述目标数据表中;当不存在比对一致的字段值时,将所有的目标加载数据加载至所述目标数据表中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意实施例所述的数据抽取方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意实施例所述的数据抽取方法的步骤。
上述数据抽取方法、装置、计算机设备和存储介质,在从第一数据库中抽取数据时,将第一数据库对应的源数据表的主键与主键信息表的主键进行比对,将比对不一致的主键确定为第一目标主键,并根据该第一目标主键从数据库中抽取数据,由于主键信息表中存储的是从第一数据库中抽取并且成功加载至第二数据库中的数据的主键,因此,将第一数据库对应的主键与主键信息表的主键进行比对时,可以将第一数据库中所有未被加载的数据抽取出来,确保不遗漏数据,进一步,数据抽取出来后,进过清洗和转换加载至第二数据库中时,由于根据唯一键配置信息对目标加载数据进行了过滤,可以避免出现重复加载数据的情况,最后通过回写被抽取的数据的主键对主键信息表不断地更新,从而保证每次抽取数据时,主键信息表中存储的都是所有历史抽取数据的主键,确保每次抽取数据时都不会抽取重复的数据。
附图说明
图1为一个实施例中数据抽取方法的应用场景图;
图2为一个实施例中数据抽取方法的流程示意图;
图3为一个实施例中S208的步骤流程示意图;
图4为另一个实施例中数据抽取方法的流程示意图;
图5为一个实施例中数据抽取装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据抽取方法,可以应用于如图1所示的应用环境中,包括数据抽取服务器102、第一数据库104、第二数据库106,数据抽取服务器可实现从第一数据库104抽取数据,并进行清洗和转换等操作,然后加载到第二数据库中。具体来说,数据抽取服务器可以首先获取主键信息表,主键信息表中存储的是从第一数据库中抽取并且成功加载至第二数据库中的数据的主键,将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键,然后根据第一目标主键从第一数据库中抽取数据,对抽取到的数据进行清洗和转换,得到目标加载数据,获取第二数据库对应的目标数据表的唯一键配置信息,根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,进一步,服务器可以获取目标加载数据对应的第二目标主键,将获取的第二目标主键回写至主键信息表中以对主键信息表进行更新。
其中,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据抽取方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,获取主键信息表。
其中,主键信息表用于从第一数据库中抽取并且成功加载至第二数据库中的数据的主键。
在一个实施例中,主键信息表可创建在第一数据库中,服务器直接从第一数据库中获取主键信息表。
在另一个实施例中,为避免修改第一数据库,可将第一数据库的数据实时同步到分布式数据库中,在分布式数据库中创建主键信息表,达到无需入侵第一数据库的目的,本实施例中,服务器从分布式数据库中获取主键信息表。
S204,将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键。
其中,源数据表指的是需要被抽取数据的数据表。源数据表的主键指的是源数据表中的主关键字(primary key),主关键字由源数据表中的一个或多个字段组成,它的值用于唯一地标识源数据表中的一条记录。
在一个实施例中,主键信息表创建在第一数据库中时,可直接将主键信息表与第一数据库中的源数据表的主键进行比对。
在另一实施例中,第一数据库中的数据可以实时同步至分布式数据库中,并在分布式数据库中创造主键信息表,可将主键信息表与分布式数据库中的源数据表的主键进行比对。
进一步,当比对不一致时,服务器将比对不一致的主键确定为第一目标主键。
S206,从第一数据库中抽取与第一目标主键对应的数据,对抽取到的数据进行清洗和转换,得到目标加载数据。
其中,清洗指的是过滤掉不符合要求的数据,包括不完整的数据、错误的数据、重复的数据;转换包括数据格式、数据粒度等维度的转换,以及一些商务规则的计算。服务器抽取第一目标主键对应的数据后,对抽取的数据进行清洗和转换,得到目标加载数据,目标加载数据指的是需要加载至第二数据中的数据。
在一个实施例中,第一数据库可以提供链接关系,在第一数据库和服务器之间建立直接的链接关系,服务器可以通过Select语句直接访问第一数据库进行数据抽取,例如,可通过执行以下SQL语句进行数据抽取:
SELECT……FROM(第一数据表)NOT IN(主键信息表),其中,第一数据表指的是第一数据库中需要被抽取数据的数据表。
S208,获取第二数据库对应的目标数据表的唯一键配置信息,根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
其中,目标数据表指的是数据最终将被加载的目的数据表。唯一键配置信息指的是事先配置的用于对目标数据表中的数据记录进行唯一性约束的信息,唯一键配置信息中包括至少一个目标字段,该目标字段为目标数据表中的字段。服务器通过唯一键配置信息可以对目标加载数据进行过滤,由于唯一键配置信息可以对目标数据表中的数据记录进行唯一性约束,因此过滤后的目标加载数据与目标数据表中的数据不会重复,从而可以避免数据重复加载。
S210,获取目标加载数据对应的第二目标主键,将获取的第二目标主键回写至主键信息表中以对主键信息表进行更新。
具体地,服务器从第一数据库中抽取数据,进行清洗和转换后得到的目标加载数据的主键与源数据表中的主键一般是不相同的,但是目标加载数据中会包含源数据表对应的主键字段。例如,当源数据表的主键为订单编号时,则得到的目标加载数据中同样包含订单编号这一字段,因此,服务器可根据源数据表对应的第一目标主键从目标加载数据中获取对应的第二目标主键。
在一个实施例中,服务器在根据唯一键配置信息对目标加载数据进行过滤后,可直接将目标加载数据插入第二数据库的目标数据表中,当插入成功时,服务器可从目标加载数据中查找与源数据表的主键相同的字段,从而得到第二目标主键,将第二目标主键回写至主键信息表中,从而对主键信息表进行更新。
上述数据抽取方法中,服务器在从第一数据库中抽取数据时,将第一数据库对应的源数据表的主键与主键信息表的主键进行比对,将比对不一致的主键确定为第一目标主键,并根据该第一目标主键从数据库中抽取数据,由于主键信息表中存储的是从第一数据库中抽取并且成功加载至第二数据库中的数据的主键,因此,将第一数据库对应的主键与主键信息表的主键进行比对时,可以将第一数据库中所有未被加载的数据抽取出来,确保不遗漏数据,进一步,数据抽取出来后,进过清洗和转换加载至第二数据库中时,由于根据唯一键配置信息对目标加载数据进行了过滤,可以避免出现重复加载数据的情况,最后通过回写被抽取的数据的主键对主键信息表不断地更新,从而保证每次抽取数据时,主键信息表中存储的都是所有历史抽取数据的主键,确保每次抽取数据时都不会抽取重复的数据。
在一个实施例中,如图3所示,上述S208中根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:
S302,将目标加载数据中目标字段对应的字段值与目标数据表中目标字段对应的字段值进行比对。
S304,当存在比对一致的字段值时,将比对一致的字段值对应的目标加载数据过滤掉,将剩下的目标加载数据加载到目标数据表中。
S306,当不存在比对一致的字段值时,将所有的目标加载数据加载至目标数据表中。
本实施例中,目标加载数据和目标数据表中的数据记录包含同样的字段,因此目标加载数据中必然包含了唯一键配置信息对应的目标字段,将目标加载数据中目标字段对应的字段值与目标数据表中该目标字段对应的字段值进行比对,若是存在比对一致的字段值,说明目标数据表中存在与目标加载数据相同的数据记录,为了保证目标数据表中的数据记录不重复,可以将比对一致的字段值对应的目标加载数据过滤掉,将剩下的目标加载数据加载到目标数据表中,若是不存在比对一致的字段值,说明目标数据表中不存在与目标加载数据相同的数据记录,可以将所有目标加载数据全部加载至目标数据表中。
本实施例中,在进行数据加载时,通过唯一键配置信息进行唯一性冲突检查,可以确保加载至第二数据库中的数据不重复。
在一个实施例中,在获取第二数据库对应的目标数据表的唯一键配置信息之前,方法还包括:将目标加载数据加载至第二数据库的临时数据表中;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:按照第一预设时间间隔复制临时数据表中的目标加载数据;根据唯一键配置信息对已复制的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
本实施例中,服务器在第二数据库中预先创建临时表,在将目标加载数据加载至目标数据表之前,可先将目标加载数据加载至临时表中,目标加载数据被加载到临时表中后,相当于对目标加载数据进行了缓存,服务器可以按照第一预设时间间隔将临时数据表中缓存的数据进行复制以加载到目标数据表中,其中,第一预设时间间隔可根据需要进行设定,一般情况下,设定该时间间隔大于从源数据表中抽取数据的时间间隔,从而可以对多次抽取的目标加载数据进行统一加载,减少对目标加载数据进行过滤的次数,提高对目标加载数据的加载效率。
在一个实施例中,当目标加载数据被成功加载至临时数据表中后,由于临时数据表一直存在,目标加载数据被加载至临时数据表中后最终必然会被加载至目标数据表中,所以,当目标加载数据被成功加载至临时数据表中,服务器即可获取该目标加载数据对应的第二目标主键并回写至主键信息表中,以对主键信息表进行更新。由于临时数据表中并未设置唯一键,因此节省了主键回写时的等待时间,提高了数据抽取的效率。
在一个实施例中,在获取第二数据库对应的目标数据表的唯一键配置信息之前,方法还包括:将目标加载数据写入至异步消息队列中;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:从异步消息队列中读取目标加载数据;根据唯一键配置信息对读取的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
具体地,服务器在将目标加载数据加载至第二数据库时,可先将目标加载数据写入异步消息队列中,再从异步消息队列中获取目标加载数据来加载到第二数据库中,由于异步消息队列具有可靠消息投送特性(gurrantee delivery),可以保证目标加载数据在加载的过程中不丢失。
在一个实施例中,当目标加载数据写入异步消息队列后,最后必然会成功加载至第二数据库中,为了数据抽取的整体执行效率,节省主键回写时的等待时间,服务器可以在目标加载数据被成功写入异步消息队列后,即获取该目标加载数据的第二目标主键,将该第二目标主键回写至主键信息表中,以对主键信息表进行更新。
在一个实施例中,异步消息队列可以为kafka消息队列。
在一个实施例中,如图4所示,提供了一种数据抽取方法,包括以下步骤:
S402,将第一数据库中的数据实时同步至分布式数据库中,并在分布式数据库中创建主键信息表。
S404,从分布式数据库中获取主键信息表。
其中,主键信息表用于存储从分布式数据库中抽取并成功加载至第二数据中的数据的主键。
S406,将主键信息表中的主键与分布式数据库中的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键。
S408,从分布式数据库中抽取主键为第一目标主键的数据,对抽取到的数据进行清洗和转换,得到目标加载数据。
S410,获取第二数据库对应的目标数据表的唯一键配置信息,根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
S412,获取目标加载数据对应的第二目标主键,将获取的第二目标主键回写至主键信息表中以对主键信息表进行更新。
上述实施例中,通过将第一数据库中的数据实时同步至分布式数据库中,并在分布式数据库中创建主键信息表,可以避免修改第一数据库,达到无需入侵第一数据库的目的。进一步,当存在多个第一数据库并且需要从多个第一数据库中抽取数据加载至第二数据库中时,由于事先将第一数据库中的数据都同步到了分布式数据库中,服务器可以集中从分布式数据库中进行数据抽取,提高了数据抽取的效率。
在一个实施例中,将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,包括:将主键信息表中的主键与第一数据库对应的源数据表中目标时间段对应的主键进行比对;从第一数据库中抽取与第一目标主键对应的数据,包括:按照第二预设时间间隔从第一数据库中抽取与第一目标主键对应的数据。
其中,目标时间段用于在对数据进行抽取时限定待抽取数据的时间范围,通过对待抽取数据的时间范围进行限定,可以提高数据抽取的效率。第二预设时间间隔可根据不同业务场景下的时效性要求进行限定,例如,可以限定第二预设时间间隔为5分钟。可以理解的是,第二预设时间间隔越短,数据抽取的时效性越高。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种数据抽取装置500,包括:
主键信息表获取模块502,用于获取主键信息表;主键信息表用于存储从第一数据库中抽取并且成功加载至第二数据库中的数据的主键;
主键比对模块504,用于将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键;
数据抽取模块506,用于从第一数据库中抽取与第一目标主键对应的数据,对抽取到的数据进行清洗和转换,得到目标加载数据;
数据加载模块508,用于获取第二数据库对应的目标数据表的唯一键配置信息,根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中;
主键信息表更新模块510,用于获取目标加载数据对应的第二目标主键,将获取的第二目标主键回写至主键信息表中以对主键信息表进行更新。
在一个实施例中,唯一键配置信息中包括至少一个目标字段;数据加载模块还用于将目标加载数据中目标字段对应的字段值与目标数据表中目标字段对应的字段值进行比对;当存在比对一致的字段值时,将比对一致的字段值对应的目标加载数据过滤掉,将剩下的目标加载数据加载到目标数据表中;当不存在比对一致的字段值时,将所有的目标加载数据加载至目标数据表中。
在一个实施例中,上述装置还包括第一加载模块,用于将目标加载数据加载至第二数据库的临时数据表中;数据加载模块还用于按照第一预设时间间隔复制临时数据表中的目标加载数据;根据唯一键配置信息对已复制的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
在一个实施例中,上述装置还包括第二加载模块,用于将目标加载数据写入至异步消息队列中;数据加载模块还用于从异步消息队列中读取目标加载数据;根据唯一键配置信息对读取的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
在一个实施例中,上述装置还包括:数据同步模块,用于将第一数据库中的数据实时同步至分布式数据库中,并在分布式数据库中创建主键信息表;主键信息表获取模块用于从分布式数据库中获取主键信息表;主键比对模块还用于将主键信息表中的主键与分布式数据库中的源数据表的主键进行比对;数据抽取模块还用于从分布式数据库中抽取主键为第一目标主键的数据,。
在一个实施例中,主键比对模块还用于将主键信息表中的主键与第一数据库对应的源数据表中目标时间段对应的主键进行比对;数据抽取模块还用于按照第二预设时间间隔从第一数据库中抽取与第一目标主键对应的数据。
关于数据抽取装置的具体限定可以参见上文中对于数据抽取方法的限定,在此不再赘述。上述数据抽取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据抽取数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据抽取方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取主键信息表;主键信息表用于存储从第一数据库中抽取并且成功加载至第二数据库中的数据的主键;将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键;从第一数据库中抽取与第一目标主键对应的数据,对抽取到的数据进行清洗和转换,得到目标加载数据;获取第二数据库对应的目标数据表的唯一键配置信息,根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中;获取目标加载数据对应的第二目标主键,将获取的第二目标主键回写至主键信息表中以对主键信息表进行更新。
在一个实施例中,唯一键配置信息中包括至少一个目标字段;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:将目标加载数据中目标字段对应的字段值与目标数据表中目标字段对应的字段值进行比对;当存在比对一致的字段值时,将比对一致的字段值对应的目标加载数据过滤掉,将剩下的目标加载数据加载到目标数据表中;当不存在比对一致的字段值时,将所有的目标加载数据加载至目标数据表中。
在一个实施例中,在获取第二数据库对应的目标数据表的唯一键配置信息之前,该处理器执行计算机程序时实现以下步骤:将目标加载数据加载至第二数据库的临时数据表中;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:按照第一预设时间间隔复制临时数据表中的目标加载数据;根据唯一键配置信息对已复制的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
在一个实施例中,在获取第二数据库对应的目标数据表的唯一键配置信息之前,该处理器执行计算机程序时实现以下步骤:将目标加载数据写入至异步消息队列中;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:从异步消息队列中读取目标加载数据;根据唯一键配置信息对读取的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
在一个实施例中,在获取主键信息表之前,该处理器执行计算机程序时实现以下步骤:将第一数据库中的数据实时同步至分布式数据库中,并在分布式数据库中创建主键信息表;获取主键信息表,包括:从分布式数据库中获取主键信息表;将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,包括:将主键信息表中的主键与分布式数据库中的源数据表的主键进行比对;从第一数据库中抽取与第一目标主键的数据,包括:从分布式数据库中抽取主键为第一目标主键对应的数据。
在一个实施例中,将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,包括:将主键信息表中的主键与第一数据库对应的源数据表中目标时间段对应的主键进行比对;从第一数据库中抽取与第一目标主键对应的数据,包括:按照第二预设时间间隔从第一数据库中抽取与第一目标主键对应的数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取主键信息表;主键信息表用于存储从第一数据库中抽取并且成功加载至第二数据库中的数据的主键;将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,将比对不一致的主键确定为第一目标主键;从第一数据库中抽取与第一目标主键对应的数据,对抽取到的数据进行清洗和转换,得到目标加载数据;获取第二数据库对应的目标数据表的唯一键配置信息,根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中;获取目标加载数据对应的第二目标主键,将获取的第二目标主键回写至主键信息表中以对主键信息表进行更新。
在一个实施例中,唯一键配置信息中包括至少一个目标字段;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:将目标加载数据中目标字段对应的字段值与目标数据表中目标字段对应的字段值进行比对;当存在比对一致的字段值时,将比对一致的字段值对应的目标加载数据过滤掉,将剩下的目标加载数据加载到目标数据表中;当不存在比对一致的字段值时,将所有的目标加载数据加载至目标数据表中。
在一个实施例中,在获取第二数据库对应的目标数据表的唯一键配置信息之前,计算机程序被处理器执行时实现以下步骤:将目标加载数据加载至第二数据库的临时数据表中;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:按照第一预设时间间隔复制临时数据表中的目标加载数据;根据唯一键配置信息对已复制的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
在一个实施例中,在获取第二数据库对应的目标数据表的唯一键配置信息之前,计算机程序被处理器执行时实现以下步骤:将目标加载数据写入至异步消息队列中;根据唯一键配置信息对目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中,包括:从异步消息队列中读取目标加载数据;根据唯一键配置信息对读取的目标加载数据进行过滤,将过滤后的目标加载数据加载到目标数据表中。
在一个实施例中,在获取主键信息表之前,计算机程序被处理器执行时实现以下步骤:将第一数据库中的数据实时同步至分布式数据库中,并在分布式数据库中创建主键信息表;获取主键信息表,包括:从分布式数据库中获取主键信息表;将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,包括:将主键信息表中的主键与分布式数据库中的源数据表的主键进行比对;从第一数据库中抽取与第一目标主键的数据,包括:从分布式数据库中抽取主键为第一目标主键对应的数据。
在一个实施例中,将主键信息表中的主键与第一数据库对应的源数据表的主键进行比对,包括:将主键信息表中的主键与第一数据库对应的源数据表中目标时间段对应的主键进行比对;从第一数据库中抽取与第一目标主键对应的数据,包括:按照第二预设时间间隔从第一数据库中抽取与第一目标主键对应的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。