一种数据批量导入方法、装置及电子设备与流程

文档序号:26951469发布日期:2021-10-16 01:41阅读:85来源:国知局
一种数据批量导入方法、装置及电子设备与流程

1.本技术涉及数据处理领域,尤其涉及一种数据批量导入方法、装置及电子设备。


背景技术:

2.相关技术中,将批量的数据导入目标数据库的做法通常是:获取一个待导入的数据,遍历目标数据库中的已存储数据,以查找目标数据库中是否已存储有与待导入数据相同的已存储数据,若是,表明该待存储数据相对于目标数据库中的数据是重复数据,则不对其执行导入操作。如果目标数据库中已存储的数据较多,则在判断待导入数据是否是重复数据的过程中执行查找所耗费的时间较多。在待导入数据也较多的情况下,由查找造成的数据导入效率低下的现象将更加明显。


技术实现要素:

3.本技术提供了一种数据批量导入方法、装置及电子设备,以解决现有技术中存在的针对批量的待导入数据进行数据导入时耗费的时间较多的问题。
4.第一方面,本技术提供了一种数据批量导入方法,该方法包括:获取待导入数据和参照数据库,其中,待导入数据是待导入目标数据库的数据,参照数据库包含多个第一位置,参照数据库中与已存储数据对应的第一位置保存有指定标记,已存储数据是目标数据库中存储的数据,第一位置和已存储数据之间的对应关系是采用指定方式确定出的;针对每个待导入数据,采用指定方式,确定参照数据库中与之对应的第一位置;在待导入数据对应的第一位置中未保存有指定标记的情况下,将待导入数据导入目标数据库。
5.在本说明书一个可选的实施例中,获取参照数据库之后,该方法还包括:针对每个待导入数据,若待导入数据在参照数据库中对应的第一位置中保存有指定标记,则对目标数据库中的各已存储数据进行查找;若未查找到与待导入数据相同的已存储数据,则将待导入数据导入目标数据库。
6.在本说明书一个可选的实施例中,参照数据库还包括多个第二位置,每个第一位置至少对应一个第二位置,第二位置中保存的已存储数据是与第二位置对应的第一位置在目标数据中对应的已存储数据,其中,获取参照数据库之后,该方法还包括:针对每个待导入数据,若待导入数据在参照数据库中对应的第一位置中保存有指定标记,则将待导入数据在参照数据库中对应的第一位置确定为指定位置;在指定位置对应的第二位置中的已存储数据与待导入数据不同的情况下,将待导入数据导入目标数据库。
7.在本说明书一个可选的实施例中,将待导入数据导入目标数据库,包括:将指定标记保存至待导入数据在参照数据库中对应的第一位置中,并将待导入数据导入目标数据库。
8.在本说明书一个可选的实施例中,目标数据库建立于存储设备的磁盘中,存储设备还包括内存,其中,获取参照数据库,包括:在内存中,确定出指定区域;将数据库模板存储至指定区域;将指定标记保存至数据库模板中对应有已存储数据的第一位置中,得到参
照数据库。
9.在本说明书一个可选的实施例中,获取参照数据库,包括:针对每个已存储数据进行哈希计算,根据哈希计算得到的第一结果确定第一目标角标,将数据块模板中对应于第一目标角标的第一位置,作为已存储数据对应的第一位置,将指定标记保存至已存储数据对应的第一位置中,得到参照数据库;针对每个待导入数据,采用指定方式,确定参照数据库中与之对应的第一位置,包括:针对每个待导入数据进行哈希计算,根据哈希计算得到的第二结果确定第二目标角标,将数据块模板中对应于第二目标角标的第一位置,作为参照数据库中与之对应的第一位置。
10.在本说明书一个可选的实施例中,获取参照数据库之前,该方法还包括:确定本次数据批量导入时采用的主键;获取参照数据库,包括:根据已存储数据对应于主键的字段,生成参照数据库;采用指定方式,确定参照数据库中与之对应的第一位置,包括:采用指定方式,对待导入数据对应于主键的字段进行处理,以确定参照数据库中与之对应的第一位置。
11.在本说明书一个可选的实施例中,针对每个已存储数据进行哈希计算,包括:针对每个已存储数据对应于主键的字段进行哈希计算;针对每个待导入数据进行哈希计算,包括:针对每个待导入数据对应于主键的字段进行哈希计算。
12.第二方面,本技术提供了一种数据批量导入装置,该装置包括:待导入数据获取模块,配置为:获取待导入数据,待导入数据是待导入目标数据库的数据;待导入数据获取模块,配置为:获取待导入数据,其中,待导入数据是待导入目标数据库的数据;参照数据库获取模块,配置为:获取参照数据库,其中,参照数据库包含多个第一位置,参照数据库中与已存储数据对应的第一位置保存有指定标记,已存储数据是目标数据库中存储的数据,第一位置和已存储数据之间的对应关系是采用指定方式确定出的;第一位置确定模块,配置为:针对每个待导入数据,采用指定方式,确定参照数据库中与之对应的第一位置;第一导入模块,配置为:在待导入数据对应的第一位置中未保存有指定标记的情况下,将待导入数据导入目标数据库。
13.第三方面,本技术提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
14.存储器,用于存放计算机程序;
15.处理器,用于执行存储器上所存放的程序时,实现前述第一方面中任一种数据处理方法的步骤。
16.第四方面,本技术提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现前述第一方面中任一种数据处理方法的步骤。
17.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
18.本技术实施例提供的方法,在对待导入数据执行导入之前获取参照数据库。参照数据库中的第一位置能表示出该第一位置在目标数据库中是否对应有已存储数据。在目标数据库中对应有已存储数据的第一位置中保存有指定标记,而在目标数据库中未对应有已存储数据的第一位置中未保存有指定标记。则可以通过待导入数据在参照数据库中对应的第一位置是否保存有指定标记,判断出该待导入数据是否是重复数据。本说明书中的方法,通过在目标数据库的已存储数据和参照数据库的第一位置之间建立对应关系、在待导入数
据和参照数据库的第一位置之间建立对应关系的方式,根据对应关系判断以及第一位置中保存指定标记与否,判断出待导入数据是否是重复数据,针对非重复的待导入数据执行导入,而无需在针对待导入数据是否是重复数据的判断过程中以遍历的方式对目标数据库中的已存储数据进行查询,能够有效的解决现有技术中存在的针对批量的待导入数据执行数据导入时,在查找重复时间的过程中耗费的时间较多的问题。
附图说明
19.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为本技术实施例提供的一种数据批量导入涉及的场景示意图;
22.图2为本技术实施例提供的一种数据批量导入过程的流程示意图;
23.图3a为本技术实施例提供的一种数据批量导入过程,根据目标数据库中的已存储数据建立或更新参照数据库的过程示意图;
24.图3b为本技术实施例提供的一种数据批量导入过程,确定待导入数据和参照数据库之间的对应关系的过程示意图;
25.图4a为本技术实施例提供的另一种数据批量导入过程,根据目标数据库中的已存储数据建立或更新参照数据库的过程示意图;
26.图4b为本技术实施例提供的另一种数据批量导入过程,确定待导入数据和参照数据库之间的对应关系的过程示意图;
27.图5为对应于图2方法过程的数据批量导入装置示意图;
28.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
29.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.针对批量数据的导入过程,影响导入效率的因素是多方面。在影响导入效率的各因素中,数据访问的次数对批量数据导入效率的影响较为明显。
31.以将批量的待导入数据导入目标数据库、目标数据库建立在磁盘中为例,假设目标数据库中用于存储数据的存储位置有一千万个,则将批量的待导入数据中的某一个待导入数据导入目标数据库时,要对目标数据库查询一千万次,若一千万次的查询结果均示出该待导入数据是非重复数据,则可以将该待导入输入导入目标数据库。可见,针对该待导入数据,在导入目标数据之前的查重阶段耗费的时间较多。相关技术中对目标数据库进行查询的方法例如b树遍历查询,b树的二分查找耗时较为严重。在采用b树进行查找时,虽然单条数据的查询算法复杂度为logn,然而,在针对批量数据执行导入时的算法复杂度为n*
logn。
32.此外,相关技术中在执行数据批量导入时,需要将磁盘上的数据加载到内存中,使得耗费的io成本较高。
33.若待导入的数据较多,则前述的、由查重和/或对磁盘的读取耗费的时间成本将急剧增加。
34.有鉴于此,为解决现有技术中存在的、针对批量数据的导入过程耗费时间较多的问题,本说明书提供一种数据批量导入方法。
35.本说明书中的方法执行过程中涉及的硬件架构可以包括:数据导入工具和存储设备。数据导入工具即为本说明书中的数据批量导入方法的执行主体。存储设备为目标数据库提供存储介质。在本说明书一个可选的实施例中,该硬件架构还可以包括终端。终端可以视为待导入数据的来源。
36.本说明书中的批量数据导入过程涉及的业务场景可以是针对批量数据的数据迁移场景等。示例性地,本说明书中的数据批量导入过程涉及的场景如图1所示,在图1所示的示例中,数据导入工具用于将待导入数据导入目标数据库。
37.如图2所示,本说明书提供的数据批量导入方法可以包括以下步骤:
38.s200:获取待导入数据。
39.在本说明书中,目标数据库用于存储数据,目标数据库中可以包括多个用于存储数据的存储位置,某一已存储数据在目标数据库中的存储位置示例性的如图3a所示。在目标数据库的至少部分存储位置尚未存储有数据的情况下(如图3a所示的存储位置2和存储位置4为空),目标数据库可以继续存入数据。其中,已经存储在目标数据库中的数据即为已存储数据,如图3a所示的已存储数据1、已存储数据3和已存储数据m。
40.本说明书对目标数据库的类型不做限制。示例性地,目标数据库可以是关系型数据库、层次式数据库或者网络式数据库等。此外,本说明书对目标数据库依赖的存储介质不做限制,示例性地,目标数据库采用的存储介质是磁盘。
41.本说明中的待导入数据是需要导入目标数据库、且还没有导入至目标数据库的数据。待导入数据可以为多个,如图4b所示的待导入数据1至待导入数据p。在本说明书中的过程适用于批量数据导入的场景,待导入数据的量可以较为庞大。
42.s202:获取参照数据库。
43.在本说明书中,参照数据库包含多个第一位置,示例性的如图3a所示。不同的第一位置对应的已存储数据不同,在某些可选的示例中,可能存在某一个第一位置对应的已存储数据为多个的情形。在如图3a所示的示例中,已存储数据3和已存储数据m均对应于第一位置n。
44.在本说明书中,一方面,第一位置用于表示出目标数据库中是否存储有与第一位置对应的已存储数据,在目标数据库中存储有已存储数据时,第一位置中保存有指定标记;另一方面,第一位置还用于表示出其与已存储数据之间的对应关系。
45.指定标记可以是某一字符。指定标记具体为何可以根据实际的需求确定。示例性地,可以以“1”作为指定标记,如图3a所示。则在目标数据库中对应有已存储数据的第一位置中保存1(指定标记),而在目标数据库中未对应有已存储数据的第一位置中不保存指定标记,或者保存除指定标记以外的其他标记,例如标记“0”。
46.在本说明书一个可选的实施例中,参照数据库在目标数据库为空(目标数据库中尚未导入过任何数据)的即建立。然后存储建立的参照数据库,在此后的向目标数据库中导入数据的过程中,根据导入的数据更新参照数据库。
47.在本说明书另一个可选的实施例中,在第一次向目标数据库导入数据之后,建立参照数据库,根据目标数据库中的已存储数据对参照数据库中的第一位置中保存的数据进行修改,以得到参照数据库。然后存储建立的参照数据库。在此后的向目标数据库中导入数据的过程中,根据导入的数据更新参照数据库。
48.在本说明书再一个可选的实施例中,可以每次在执行针对待导入数据的导入时,重新根据目标数据库中的已存储数据获取参照数据库。在完成本次数据导入之后,删除参照数据库。
49.可见,本说明书中的参照数据库的生成时机,可以根据实际的需求确定。
50.可选地,获取参照数据库的过程可以是:采用指定方式对目标数据库中的各已存储数据进行处理,得到各已存储数据各自在数据库模板中对应的第一位置。然后,对数据库模板中对应有已存储数据的第一位置保存指定标记,得到参照数据库。
51.为使得参照数据库中未对应有已存储数据的第一位置,能够与未对应有已存储数据的第一位置区分开来。在本说明书一个可选的实施例中,如图3a所示,可以首先获取数据库模板,采用非指定标记(例如,“0”)对数据库模板中的各第一位置进行初始化(即,将数据库模板中的各第一位置中保存非指定标记),示例性地,数据库模板如图3a所示。之后,根据已存储数据,对初始化后的数据库模板中的至少部分第一位置中保存的标记进行调整。
52.在本说明书中,第一位置和已存储数据之间的对应关系,是采用指定方式确定出的。具体地,可以对每个已存储数据,采用指定方式对该已存储数据进行处理,根据得到的处理结果,在各个第一位置中,筛选出与已存储数据对应的第一位置。也就是说,采用指定方式确定出的已存储数据和第一位置之间的对应关系是与已存储数据本身的属性(例如,已存储数据的取值,在如图3a所示的示例中,已存储数据1的取值即为“a1b1

c1”)相关的,则针对每个已存储数据,均能够确定出唯一的、与之对应的第一位置。
53.可见,本说明书中的参照数据库至少包括由各第一位置按次序排布成的一列。
54.需要说明的是,本说明书对步骤s200和步骤s202的执行次序不做限制。
55.s204:针对每个待导入数据,采用指定方式,确定参照数据库中与之对应的第一位置。
56.采用指定方式为待导入数据确定其对应的第一位置的过程,与采用指定方式为已存储数据确定其对应的第一位置的过程相似。具体地,可以对每个待导入数据,采用指定方式对该待导入数据进行处理,根据得到的处理结果,在各个第一位置中,筛选出与待导入数据对应的第一位置,示例性的如图3b所示。也就是说,采用指定方式确定出的待导入数据和第一位置之间的对应关系是与待导入数据本身的属性(例如,已存储数据的取值)相关的,则针对每个待导入数据,均能够确定出唯一的、与之对应的第一位置。在如图3b所示的示例中,待导入数据1对应于参照数据库中的第一位置3。
57.由于,针对每个待导入数据确定出的第一位置是唯一的,则在后续步骤中,可以基于该待导入数据对应的第一位置保存标记的情况(例如,是否保存有指定标记),判断出该待导入数据是否是重复数据(目标数据库中已存储有与该待导入数据相同的数据的情况
下,该待导入数据即为重复数据)。可见,针对该待导入数据是否是重复数据的判断过程中执行的查找,在理想状态下,仅需进行一次即可。也就是说,相较于相关技术中的遍历目标数据库中的所有已存储数据以进行查询的方式,本说明书中的过程能够有效的减少数据导入过程执行查询的次数。特别是待导入数据是批量数据的情况下,本说明书中的过程针对数据导入过程涉及的重复数据的查询的环节,消耗的时间更少。
58.s206:在待导入数据对应的第一位置中未保存有指定标记的情况下,将待导入数据导入目标数据库。
59.若待导入数据在参照数据库中对应的第一位置中保存有指定标记,如图3b所示,待导入数据1在参照数据库中的对应的第一位置1中未保存有指定标记,表明待导入数据1不是重复数据,可以将其导入目标数据库。待导入数据2在参照数据库中的对应的第一位置3中保存有指定标记,表明待导入数据2有可能是重复数据。
60.可见,通过本说明书中的批量数据导入过程,在对待导入数据执行导入之前(即,步骤s206之前)获取参照数据库。参照数据库中的第一位置能表示出该第一位置在目标数据库中是否对应有已存储数据。具体地,在目标数据库中对应有已存储数据的第一位置中保存有指定标记,而在目标数据库中未对应有已存储数据的第一位置中未保存有指定标记。则可以通过待导入数据在参照数据库中对应的第一位置是否保存有指定标记,判断出该待导入数据是否是重复数据。
61.通过本说明书中的过程,在目标数据库的已存储数据和参照数据库的第一位置之间建立对应关系、在待导入数据和参照数据库的第一位置之间建立对应关系的方式,根据对应关系判断以及第一位置中保存指定标记与否,判断出待导入数据是否是重复数据,针对非重复的待导入数据执行导入,而无需在针对待导入数据是否是重复数据的判断过程中以遍历的方式对目标数据库中的已存储数据进行查询,能够有效的解决现有技术中存在的针对批量的待导入数据执行数据导入时,在查找重复时间的过程中耗费的时间较多的问题。
62.由前述内容可知,本说明书中的指定方式能够基于已存储数据的属性,建立第一位置与已存储数据之间的对应关系;并基于待导入数据的属性,建立第一位置与待导入数据之间的对应关系。
63.为确定出该对应关系,在本说明书一个可选的实施例中,基于第一位置与已存储数据之间的对应关系生成参照数据库的过程可以是:数据库模板包括多个第一位置,各第一位置通过角标加以区分(示例性地,各第一位置在数据库模板是按照次序排布的,角标示出第一位置在数据库模板中的次序)。针对每个已存储数据进行哈希(hash)计算,根据哈希计算得到的第一结果确定第一目标角标(示例性地,可以将第一结果除以指定数值,得到的余数作为第一目标角标。指定数据可以与目标数据库中的存储位置的数量正相关),将数据块模板中对应于第一目标角标的第一位置(即,角标与第一目标角标相同的第一位置),作为已存储数据对应的第一位置,在已存储数据对应的第一位置保存指定标记,得到参照数据库。
64.相对应地,确定待导入数据和第一位置之间的对应关系的过程可以是:针对每个待导入数据进行哈希计算,根据哈希计算得到的第二结果确定第二目标角标,将数据块模板中对应于第二目标角标的第一位置(即,角标与第二目标角标相同的第一位置),作为参
照数据库中与之对应的第一位置。
65.需要说明的是,本说明书对进行哈希计算时采用的哈希函数不做具体限制,示例性地,md4、md5、shs等哈希函数在条件允许的情况下,均可以作为本说明书中进行哈希计算时采用的哈希函数。
66.需要说明的是,本说明书中的指定方式除基于哈希计算的处理方式之外,还可以针对已存储数据的各个维度(例如,数据的生成时间、数据的大小等)的属性,确定出已存储数据与第一位置之间的对应关系。示例性地,可以针对每个已存储数据,将该已存储数据的生成时间编码为第一数值(例如,生成时间是2021年6月16日,可以将生成时间的各位相加以进行编码,得到的第一数值为18),将已存储数据的数据的大小编码为第二数值(例如,数据大小是35k,可以将数据大小的各位相加以进行编码,得到的第二数值是8)。将第一数值和第二数值进行组合(例如,18和8进行组合的结果可以是188),得到第一目标角标。
67.相对应的,根据待导入数据的各个维度的属性,确定出待导入数据与第一位置之间的对应关系的方式,可以与前述的确定已存储数据与第一位置之间的对应关系的方式相似,在此不做赘述。
68.此外,还可以通过其他指定方式确定第一位置与已存储数据之间的对应关系、以及确定第一位置与待导入数据之间的对应关系,在此不一一列举。
69.在本说明书进一步可选的实施例中,为减少哈希计算时进行的数据处理的量,可以在获取参照数据库之前,确定本次数据批量导入时采用的主键,在如图3a所示的示例中,各已存储数据的字段分别对应于键1至键k,其中键1是主键。则对已存储数据进行哈希计算的过程可以是:针对每个已存储数据对应于主键的字段进行哈希计算。对待导入数据进行哈希计算的过程可以是:针对每个待导入数据对应于主键的字段进行哈希计算。
70.在本说明书中,主键可以根据实际的需求确定。在一个可选的实施例中,主键可以是数据的流水号等。在数据的量较大,通过某一主键难以对两个或两个以上的数据进行区分,则本说明书中的过程采用的主键可以是多个。
71.由前述内容可知,无论是采用哈希计算的方式确定与第一位置的对应关系、还是采用数据的属性的方式确定与第一位置的对应关系,在批量数据导入的过程中,均有可能存在一定的冲突的情况。示例性地,在以前述的采用哈希计算确定对应关系的示例中,若存在哈希冲突,存在多个已存储数据对应于同一个第一位置的情形,如图3a所示的示例中,已存储数据3和已存储数据m均对应于第一位置n。此时,若针对某一待导入数据,在参照数据库中确定出的其对应的第一位置中保存有指定标记,目标数据库中也未必存储有与该待导入数据相同的已存储数据。
72.由此,在本说明书一个可选的实施例中,针对每个待导入数据,若待导入数据在参照数据库中对应的第一位置中保存有指定标记,则对目标数据库中的各已存储数据进行查找。若未查找到与待导入数据相同的已存储数据,则将待导入数据导入目标数据库。由于冲突(例如哈希冲突)的现象并非普遍现象,则本说明书中的过程需要对目标数据库中的已存储数据进行的查找,相较于现有技术耗费的时间也是较少的。并且,在本实施例中,即使存在冲突的现象,也能够精确的判断出待导入数据是否是重复数据。
73.在相关技术中,对批量数据进行导入所耗费的时间造成影响的不仅仅是由查找重复数据引起的,还有可能是由对磁盘中的数据进行读取引起的,即io成本较高也会增加对
批量数据进行导入所耗费的时间。
74.有鉴于此,在本说明书一个可选的实施例中,目标数据库是建立于磁盘中的。生成参照数据库的过程可以是:在磁盘对应的内存中,确定出指定区域。将数据库模板存储至指定区域。对数据库模板中对应有已存储数据的第一位置保存指定标记,得到参照数据库。
75.在该实施例中,由于参照数据库是建立的内存中的,则在基于参照数据库确定重复数据的过程,能够较大程度的减少对磁盘的访问,有利于降低io成本。
76.在待导入数据在参照数据库中对应的第一位置中保存有指定标记的情况下,为减少对目标数据库的访问造成的io成本,在本说明书一个可选的实施例中,参照数据库还包括多个第二位置,示例性地如图4a所示,每个第一位置对应至少一个第二位置,第二位置中保存的已存储数据是与第二位置对应的第一位置在目标数据中对应的已存储数据。针对每个待导入数据,若待导入数据在参照数据库中对应的第一位置中保存有指定标记,则将待导入数据在参照数据库中对应的第一位置确定为指定位置。判断指定位置对应的第二位置中的已存储数据与待导入数据是否相同,示例性的如3b所示,待导入数据3在参照数据库中对应的第一位置n中保存有指定标记1,则判断待导入数据与第二位置n1、第二位置n2中的已存储数据之一是否相同。若否,则将待导入数据导入目标数据库。若是,则表明该待处理数据时重复数据,可选地不将待导入数据导入目标数据库。
77.在该实施例中,即使出现了由于冲突造成的、需要对已存储数据进行查询的情形,也无需对磁盘进行访问,直接通过对参照数据库中第二位置中的数据进行查找即可。并且,在参照数据库中第一位置和第二位置之间存在对应关系,则在本实施例中,即使对参照数据库中的第二位置的数据进行查找,也无需对所有第二位置的数据进行查找,仅需对该待导入数据对应的第二位置进行查找即可。能够有效的减小查找造成的时间消耗。
78.在冲突较为严重的情况下,一个第一位置可以对应有多个第二位置。
79.通过前述内容可知,本书名数中的过程能够有效的确定出待导入数据相对于已存储数据的重复数据。然而,在实际的批量数据导入过程中,还可能存在某一待导入数据和另一待导入数据重复的现象。示例性地,若待导入数据1和待导入数据4是相同的数据,待导入数据1已经导入目标数据库中,成为目标数据库中的已存储数据,此时,若再将待导入数据4导入目标数据库,则会出现将重复的数据导入目标数据库的情况。
80.有鉴于此,为应对待导入数据中存在重复数据的现象,在本说明书一个可选的实施例中,针对每个待导入数据,在待导入数据对应的第一位置中未保存有指定标记的情况下,将待导入数据在参照数据库中对应的第一位置中保存指定标记,并将待导入数据导入目标数据库。一方面,能够实现将非重复的待导入数据导入目标数据库中,实现本说明书的目的;另一方面,在将待导入数据导入目标数据库的过程中,根据已经导入目标数据库的待导入数据对参照数据库进行更新,使得参照数据库中各第一位置保存指定标记的状态也能够及时的跟随目标数据库中已存储的数据的变化而变化,有效的识别出待导入数据中的重复数据,以避免将重复的待导入数据导入目标数据库中。
81.可见,本说明书中的批量数据导入过程能够有效的对待导入数据进行去重,而可以对待导入数据中的重复数据的产生的原由在所不计。在某些较为具体的场景中,待导入数据中的重复数据有可能是由于执行数据导入的操作人员的错误操作或环境因素造成的。例如,执行数据导入操作的人员张三在昨日将批次标识为a的待导入数据导入至目标数据
库的过程中发生了停电,导致数据导入操作终断,此时,部分的待导入数据已经被导入目标数据库中,而另一部分的待导入数据还没有被导入目标数据库中。今日,张三再次针对批次标识为a的待导入数据导入至目标数据库的操作,则批次标识为a的待导入数据中由于已经有部分待导入数据已经被导入目标数据库,则该部分待导入数据即为重复数据。
82.由于张三是针对批次标识为a的待导入数据执行导入操作的操作人员,张三知晓昨日发生的数据导入操作终断的情形,张三可以预计到目标数据库中待导入数据中的重复数据的量。则在本说明书一个可选的实施例中,可以由终端生成数据导入指令,数据导入指令中携带有待导入数据和指定数量。指定数量是大于等于0的整数。指定数量用于确定每个第一位置对应的第二位置的数量。在指定数量为0时,参照数据库中不包含第二位置。指定数量的数值越大,表明待导入数据中的重复数据越多。指定数量可以是中高端对应的操作人员输入的。
83.然后,终端将数据导入指令发送至本案的数据导入工具。本案的数据导入工具从数据导入指令中解析出待导入数据和指定数量。然后,确定出指定数量个第二位置,根据确定出的各第二位置、各第一位置以及第一位置和第二位置之间的对应关系生成数据库模板。之后根据数据库模板生成参照数据库。
84.可见,通过本实施例实现的批量数据的导入,能够在生成参照数据库的过程中有预见性的确定第二位置的数量,使得参照数据库在使用过程中尽量避免第二位置不足或第二位置冗余占用存储空间的现象。
85.实现的数据导入指令的生成过程对操作人员的指引,在本说明书进一步可选的实施例中。在终端发送数据导入之前,由本案的数据导入工具生成提示信息,发送至终端。提示信息包括:指定数量输入提示。终端接收提示信息之后,将提示信息添加至向用户(例如,前述的操作人员)展示的页面中,使得操作人员根据提示信息,在终端中输入指定数量。
86.基于同样的思路,本说明书进一步提供一种数据批量导入装置,本说明书中的数据批量导入装置应用于服务端,如图5所示,该数据批量导入装置包括以下模块中的一个或多个:
87.待导入数据获取模块500,配置为:获取待导入数据,待导入数据是待导入目标数据库的数据;
88.参照数据库获取模块502,配置为:获取参照数据库,其中,待导入数据是待导入目标数据库的数据,参照数据库包含多个第一位置,参照数据库中与已存储数据对应的第一位置保存有指定标记,已存储数据是目标数据库中存储的数据,第一位置和已存储数据之间的对应关系是采用指定方式确定出的;
89.第一位置确定模块504,配置为:针对每个待导入数据,采用指定方式,确定参照数据库中与之对应的第一位置;
90.第一导入模块506,配置为:在待导入数据对应的第一位置中未保存有指定标记的情况下,将待导入数据导入目标数据库。
91.在本说明书一个可选的实施例中,数据批量导入装置还可以包括:第二导入模块508。
92.第二导入模块508,配置为:针对每个待导入数据,若待导入数据在参照数据库中对应的第一位置中保存有指定标记,则对目标数据库中的各已存储数据进行查找;若未查
找到与待导入数据相同的已存储数据,则将待导入数据导入目标数据库。
93.在本说明书一个可选的实施例中,参照数据库还包括多个第二位置,每个第一位置至少对应一个第二位置,第二位置中保存的已存储数据是与第二位置对应的第一位置在目标数据中对应的已存储数据。数据批量导入装置还可以包括:第三导入模块510。
94.第三导入模块510,配置为:针对每个待导入数据,若待导入数据在参照数据库中对应的第一位置中保存有指定标记,则将待导入数据在参照数据库中对应的第一位置确定为指定位置;在指定位置对应的第二位置中的已存储数据与待导入数据不同的情况下,将待导入数据导入目标数据库。
95.在本说明书一个可选的实施例中,第一导入模块506具体配置为:将指定标记保存至待导入数据在参照数据库中对应的第一位置中,并将待导入数据导入目标数据库。
96.在本说明书一个可选的实施例中,目标数据库建立于存储设备的磁盘中,存储设备还包括内存。参照数据库获取模块502具体配置为:在内存中,确定出指定区域;将数据库模板存储至指定区域;将指定标记保存至数据库模板中对应有已存储数据的第一位置中,得到参照数据库。
97.在本说明书一个可选的实施例中,参照数据库获取模块502具体配置为:针对每个已存储数据进行哈希计算,根据哈希计算得到的第一结果确定第一目标角标,将数据块模板中对应于第一目标角标的第一位置,作为已存储数据对应的第一位置,将指定标记保存至已存储数据对应的第一位置中,得到参照数据库。
98.在本说明书一个可选的实施例中,第一位置确定模块504具体配置为:针对每个待导入数据进行哈希计算,根据哈希计算得到的第二结果确定第二目标角标,将数据块模板中对应于第二目标角标的第一位置,作为参照数据库中与之对应的第一位置。
99.在本说明书一个可选的实施例中,数据批量导入装置还可以包括:主键确定模块512。主键确定模块512具体配置为:确定本次数据批量导入时采用的主键。
100.在本说明书一个可选的实施例中,参照数据库获取模块502具体配置为:针对每个已存储数据对应于主键的字段进行哈希计算。第一位置确定模块504具体配置为:针对每个待导入数据对应于主键的字段进行哈希计算。
101.如图6所示,本技术实施例提供了一种空调器控制设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,
102.存储器113,用于存放计算机程序;
103.在本技术一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的数据批量导入的控制方法,包括:
104.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的数据批量导入的步骤。
105.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设
备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
106.以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1