CN114064783A - 一种导入数据的方法、装置、电子设备及存储介质 - Google Patents
一种导入数据的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114064783A CN114064783A CN202111456419.4A CN202111456419A CN114064783A CN 114064783 A CN114064783 A CN 114064783A CN 202111456419 A CN202111456419 A CN 202111456419A CN 114064783 A CN114064783 A CN 114064783A
- Authority
- CN
- China
- Prior art keywords
- data
- imported
- original
- original table
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种导入数据的方法、装置、电子设备及存储介质,涉及数据处理技术领域。该方法响应于全量导入数据的指令,可以获取待导入的全量数据,并确定数据库中待导入的全量数据需要导入的第一原始表,在获取到第一原始表的表结构后,可以在数据库中创建与第一原始表的表结构一致的临时表,以将待导入的全量数据导入到临时表中,得到目标表,并将第一原始表替换为目标表。由于可以通过创建临时表的方式,将数据导入到临时表中后,再用临时表替换原始表,从而可以解决在进行数据导入的过程中,出现的数据查询为空或不完整问题,且可以在较短时间内将原始表中的数据切换为最新数据,提高数据导入的效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种导入数据的方法、装置、电子设备及存储介质。
背景技术
由于不同数据库对外接口方式不同,获取数据库中数据方法便有差异,导致不同数据库之间数据交互需要定制化开发,而数据文件交互是不同数据库数据交互最为方便通用的方法,Oracle作为常用的OLTP数据库,经常会从外部以文件接收数据。
目前,在将文件数据导入到Oracle数据库的目标表中时,需要先将目标表中的数据全部清除后,再将文件数据导入到目标表。然而,在将文件数据导入到目标表的过程中,会出现数据查询为空或不完整的情况。
发明内容
为解决现有存在的技术问题,本申请实施例提供了一种导入数据的方法、装置、电子设备及存储介质,可以解决在将数据导入到目标表的过程中,出现的数据查询为空或不完整的情况。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种导入数据的方法,所述方法包括:
响应于全量导入数据的指令,获取待导入的全量数据,并确定数据库中所述待导入的全量数据需要导入的第一原始表;
获取所述第一原始表的表结构,并在所述数据库中创建与所述第一原始表的表结构一致的临时表;
将所述待导入的全量数据导入到所述临时表中,得到目标表,并将所述第一原始表替换为所述目标表。
本申请实施例提供的导入数据的方法,响应于全量导入数据的指令,可以获取待导入的全量数据,并确定数据库中待导入的全量数据需要导入的第一原始表,在获取到第一原始表的表结构后,可以在数据库中创建与第一原始表的表结构一致的临时表,以将待导入的全量数据导入到临时表中,得到目标表,并将第一原始表替换为目标表。由于可以通过先创建一个临时表,将全量数据导入到临时表中得到目标表后,再用目标表替换掉原始表的方式完成全量数据的导入,从而不需要将原始表中的数据全量清除后,再导入新数据,防止在进行数据全量导入的过程中,会出现数据查询为空或不完整的情况,且可以在较短时间内将原始表中的数据切换为最新数据,提高导入数据的效率。
在一种可选的实施例中,所述获取所述第一原始表的表结构,并在所述数据库中创建与所述第一原始表的表结构一致的临时表,包括:
根据所述第一原始表的表结构,确定所述第一原始表对应的配置参数信息;
基于所述配置参数信息,在所述数据库中创建与所述第一原始表的表结构一致的临时表。
在该实施例中,可以根据第一原始表的表结构,确定出第一原始表对应的配置参数信息,并基于配置参数信息,在数据库中创建与第一原始表的表结构一致的临时表。从而可以使得创建得到的临时表与全量数据待导入的原始表的表结构一致。
在一种可选的实施例中,所述配置参数信息中还包括所述第一原始表的索引信息和约束信息;所述得到目标表之后,所述方法还包括:
创建所述目标表的索引信息和约束信息,并删除所述第一原始表,以及将所述目标表的索引信息和约束信息更改为与所述第一原始表的索引信息和约束信息一致。
在该实施例中,配置参数信息中还可以包括有第一原始表的索引信息和约束信息,则在将待导入的全量数据导入到临时表中,得到目标表后,还可以创建目标表的索引信息和约束信息,并删除第一原始表,以及将目标表的索引信息和约束信息更改为与第一原始表的索引信息和约束信息一致。从而可以保留原始表中原有的索引信息和约束信息,完成从原始表到目标表的替换。
在一种可选的实施例中,所述方法还包括:
响应于增量导入数据的指令,获取待导入的增量数据,并确定所述数据库中所述待导入的增量数据需要导入的第二原始表;
将所述待导入的增量数据与所述第二原始表中的数据进行匹配,确定出所述第二原始表中与所述待导入的增量数据相匹配的目标数据;
从所述第二原始表中删除所述目标数据,并将所述待导入的增量数据导入到删除所述目标数据后的第二原始表中。
在该实施例中,响应于增量导入数据的指令,可以获取待导入的增量数据,并确定数据库中待导入的增量数据需要导入的第二原始表,将待导入的增量数据与第二原始表中的数据进行匹配,确定出第二原始表中与待导入的增量数据相匹配的目标数据,然后从第二原始表中删除目标数据,并将待导入的增量数据导入到删除目标数据后的第二原始表中。由于可以通过先将增量数据与该增量数据待导入的原始表中的数据进行匹配,确定出相匹配的目标数据,并将目标数据从原始表中删除,再将增量数据导入到原始表中的方式完成增量数据的导入,从而可以解决相关技术中只支持将新增数据导入到空白表中,不支持将新增数据导入到存在数据的表中,以及无法对表中的已有数据做更新替换的问题。
在一种可选的实施例中,所述将所述待导入的增量数据与所述第二原始表中的数据进行匹配,确定出所述第二原始表中与所述待导入的增量数据相匹配的目标数据,包括:
根据所述第二原始表的表结构得到所述第二原始表对应的配置参数信息,并根据所述配置参数信息,确定所述第二原始表包括的多条表数据;
针对每条表数据,分别执行以下操作:将所述表数据分别与所述待导入的增量数据中包含的多个增量数据进行匹配,若所述表数据与所述多个增量数据中的设定增量数据相匹配,则将所述表数据作为目标数据。
在该实施例中,可以根据第二原始表的表结构得到第二原始表对应的配置参数信息,并根据配置参数信息,确定出第二原始表包括的多条表数据,针对每条表数据,可以分别执行以下操作:将表数据分别与待导入的增量数据中包含的多个增量数据进行匹配,若表数据与多个增量数据中的设定增量数据相匹配,则将表数据作为目标数据。从而可以通过将增量数据与原始表中的多条表数据进行一一匹配的方式,确定出原始表中与增量数据相匹配的目标数据。
在一种可选的实施例中,从所述第二原始表中删除所述目标数据,并将所述待导入的增量数据导入到删除所述目标数据后的第二原始表中,包括:
确定出每次进行匹配的表数据的设定条数和增量数据的设定个数,针对每次匹配中的每条表数据,分别执行以下操作:
将所述表数据分别与所述设定个数的增量数据进行匹配,若所述表数据与所述设定个数的增量数据中的设定增量数据相匹配,则将所述表数据从所述第二原始表中删除,并将所述设定个数的增量数据导入到删除所述表数据的第二原始表中;
若所述表数据与所述设定个数的增量数据均不匹配,则将所述设定个数的增量数据导入到所述第二原始表中。
在该实施例中,确定出每次进行匹配的表数据的设定条数和增量数据的设定个数,针对每次匹配中的每条表数据,可以分别执行以下操作:将表数据分别与设定个数的增量数据进行匹配,若表数据与设定个数的增量数据中的设定增量数据相匹配,则将表数据从第二原始表中删除,并将设定个数的增量数据导入到删除表数据的第二原始表中,若表数据与设定个数的增量数据均不匹配,则将设定个数的增量数据导入到第二原始表中。从而可以分批次地确定出原始表中与增量数据相匹配的表数据,并每次执行将相匹配的表数据从原始表中删除,将该次进行匹配的增量数据导入到原始表中的过程,最终完成增量数据的导入。
第二方面,本申请实施例还提供了一种导入数据的装置,包括:
第一导入确定单元,用于响应于全量导入数据的指令,获取待导入的全量数据,并确定数据库中所述待导入的全量数据需要导入的第一原始表;
临时表创建单元,用于获取所述第一原始表的表结构,并在所述数据库中创建与所述第一原始表的表结构一致的临时表;
目标表替换单元,用于将所述待导入的全量数据导入到所述临时表中,得到目标表,并将所述第一原始表替换为所述目标表。
在一种可选的实施例中,所述临时表创建单元,具体用于:
根据所述第一原始表的表结构,确定所述第一原始表对应的配置参数信息;
基于所述配置参数信息,在所述数据库中创建与所述第一原始表的表结构一致的临时表。
在一种可选的实施例中,所述配置参数信息中还包括所述第一原始表的索引信息和约束信息;所述目标表替换单元,还用于:
创建所述目标表的索引信息和约束信息,并删除所述第一原始表,以及将所述目标表的索引信息和约束信息更改为与所述第一原始表的索引信息和约束信息一致。
在一种可选的实施例中,所述装置还包括:
第二导入确定单元,用于响应于增量导入数据的指令,获取待导入的增量数据,并确定所述数据库中所述待导入的增量数据需要导入的第二原始表;
匹配数据确定单元,用于将所述待导入的增量数据与所述第二原始表中的数据进行匹配,确定出所述第二原始表中与所述待导入的增量数据相匹配的目标数据;
数据导入单元,用于从所述第二原始表中删除所述目标数据,并将所述待导入的增量数据导入到删除所述目标数据后的第二原始表中。
在一种可选的实施例中,所述匹配数据确定单元,具体用于:
根据所述第二原始表的表结构得到所述第二原始表对应的配置参数信息,并根据所述配置参数信息,确定所述第二原始表包括的多条表数据;
针对每条表数据,分别执行以下操作:将所述表数据分别与所述待导入的增量数据中包含的多个增量数据进行匹配,若所述表数据与所述多个增量数据中的设定增量数据相匹配,则将所述表数据作为目标数据。
在一种可选的实施例中,所述数据导入单元,具体用于:
确定出每次进行匹配的表数据的设定条数和增量数据的设定个数,针对每次匹配中的每条表数据,分别执行以下操作:
将所述表数据分别与所述设定个数的增量数据进行匹配,若所述表数据与所述设定个数的增量数据中的设定增量数据相匹配,则将所述表数据从所述第二原始表中删除,并将所述设定个数的增量数据导入到删除所述表数据的第二原始表中;
若所述表数据与所述设定个数的增量数据均不匹配,则将所述设定个数的增量数据导入到所述第二原始表中。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的导入数据的方法。
第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面的导入数据的方法。
第五方面,本申请实施例一种计算机程序产品,其包括计算机指令,所述计算机指令存储在计算机可读存储介质中;当计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令时,所述处理器执行该计算机指令,使得所述计算机设备执行上述任一种导入数据的方法的步骤。
第二方面至第五方面中任意一种实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种导入数据的方法的流程图;
图2为本申请实施例提供的另一种导入数据的方法的流程图;
图3为本申请实施例提供的又一种导入数据的方法的流程图;
图4为本申请实施例提供的又一种导入数据的方法的流程图;
图5为本申请实施例提供的又一种导入数据的方法的流程图;
图6为本申请实施例提供的一种导入数据的装置的结构示意图;
图7为本申请实施例提供的另一种导入数据的装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
Oracle:是甲骨文公司的一款关系数据库管理***。包括相互联系的逻辑组织和存取这些数据的一套程序(数据库管理***软件)。关系数据库管理***就是管理关系数据库,并将数据逻辑组织的***。
Spring batch:是一个轻量级的、完美的大数据量批处理框架,使用JAVA语言并基于Spring框架为基础,提供日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理组件。
下面将结合附图,对本申请实施例提供的技术方案进行详细说明。
下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供了一种导入数据的方法,如图1所示,包括如下步骤:
步骤S101,响应于全量导入数据的指令,获取待导入的全量数据,并确定数据库中待导入的全量数据需要导入的第一原始表。
在将数据全量导入到Oracle数据库中时,可以获取待导入的全量数据,并在Oracle数据库中确定出该全量数据需要导入的第一原始表。
步骤S102,获取第一原始表的表结构,并在数据库中创建与第一原始表的表结构一致的临时表。
具体地,可以根据第一原始表的表结构,确定第一原始表对应的配置参数信息,并基于配置参数信息,在数据库中创建与第一原始表的表结构一致的临时表。
步骤S103,将待导入的全量数据导入到临时表中,得到目标表,并将第一原始表替换为目标表。
具体地,由于确定出的配置参数信息中还包括有第一原始表的索引信息和约束信息,则在将待导入的全量数据导入到临时表中,得到目标表后,还可以创建目标表的索引信息和约束信息,并删除第一原始表,以及将目标表的索引信息和约束信息更改为与第一原始表的索引信息和约束信息一致。
在一种实施例中,本申请实施例还提供了一种导入数据的方法,如图2所示,包括如下步骤:
步骤S201,响应于增量导入数据的指令,获取待导入的增量数据,并确定数据库中待导入的增量数据需要导入的第二原始表。
在将数据增量导入到Oracle数据库中时,可以获取待导入的增量数据,并在Oracle数据库中确定出该增量数据需要导入的第二原始表。
步骤S202,将待导入的增量数据与第二原始表中的数据进行匹配,确定出第二原始表中与待导入的增量数据相匹配的目标数据。
具体地,可以根据第二原始表的表结构得到第二原始表对应的配置参数信息,并根据配置参数信息,确定出第二原始表包括的多条表数据。
然后,针对每条表数据,可以分别执行以下操作:将表数据分别与待导入的增量数据中包含的多个增量数据进行匹配,若表数据与多个增量数据中的设定增量数据相匹配,则将表数据作为目标数据。
步骤S203,从第二原始表中删除目标数据,并将待导入的增量数据导入到删除目标数据后的第二原始表中。
具体地,可以先确定出每次进行匹配的表数据的设定条数和增量数据的设定个数,然后针对每次匹配中的每条表数据,可以分别执行以下操作:
将表数据分别与设定个数的增量数据进行匹配,若表数据与设定个数的增量数据中的设定增量数据相匹配,则将表数据从第二原始表中删除,并将设定个数的增量数据导入到删除表数据的第二原始表中;
若表数据与设定个数的增量数据均不匹配,则将设定个数的增量数据导入到第二原始表中。
例如,待导入的增量数据中包含有数据A1、数据A2、数据A3、数据A4、数据A5和数据A6共6条数据,该增量数据需要导入的原始表中包含有表数据B1、表数据B2、表数据B3、表数据B4、表数据B5、表数据B6、表数据B7和表数据B8共8条表数据,且每次可以将原始表中的4条表数据分别与增量数据中的3条数据进行匹配。
第一次匹配:将表数据B1、表数据B2、表数据B3和表数据B4分别与数据A1、数据A2和数据A3进行匹配,即将表数据B1分别与数据A1、数据A2和数据A3进行匹配,将表数据B2分别与数据A1、数据A2和数据A3进行匹配,将表数据B3分别与数据A1、数据A2和数据A3进行匹配,将表数据B4分别与数据A1、数据A2和数据A3进行匹配。经过匹配确定表数据B2与数据A2相匹配、表数据B3与数据A3相匹配,则可以将表数据B3和表数据B3从原始表中删除,并将数据A1、数据A2和数据A3导入到原始表中。
第二次匹配:将表数据B5、表数据B6、表数据B7和表数据B8分别与数据A4、数据A5和数据A6进行匹配,即将表数据B5分别与数据A4、数据A5和数据A6进行匹配,将表数据B6分别与数据A4、数据A5和数据A6进行匹配,将表数据B7分别与数据A4、数据A5和数据A6进行匹配,将表数据B8分别与数据A4、数据A5和数据A6进行匹配。经过匹配确定表数据B5、表数据B6、表数据B7和表数据B8与数据A4、数据A5和数据A6均不匹配,则可以将数据A4、数据A5和数据A6导入到原始表中。
经过两次匹配,可以将包含5条数据的增量数据导入到原始表中,且在将增量数据导入到原始表中之后,此时,原始表中包含有表数据B1、表数据B4、表数据B5、表数据B6、表数据B7、表数据B8、数据A1、数据A2、数据A3、数据A4、数据A5和数据A6。
数据文件交互是不同数据库数据交互最为方便通用的方法,Oracle作为常用的数据库,经常会从外部以文件接收数据,在将外部的数据导入到Oracle数据库中时,可以采用Spring batch进行数据导入。
在采用Spring batch将外部数据导入到Oracle数据库时,可以采用两种导入方式,一种是全量导入,另一种是增量导入。
具体地,在采用全量导入方式将待导入数据导入到Oracle数据中的目标表时,可以按照图3中示出的过程进行实现。如图3所示,可以包括以下步骤:
步骤S301,获取需要导入的原始表的结构。
步骤S302,根据原始表的结构,生成配置参数信息。
根据获取到的原始表的结构,可以生成spring batch配置参数信息。
其中,生成的配置参数信息中可以包含有原始表的字段信息,如字段长度,字段内容等,还可以包含有原始表的索引信息和约束信息等。
步骤S303,基于配置参数信息,创建临时表。
其中,创建的临时表位于Oracle数据库中,并且,临时表的结构与原始表的结构一致。
步骤S304,将待导入数据导入到临时表中,得到目标表。
在创建得到临时表后,可以将需要导入的数据导入到临时表中。并且,可以将导入数据后的临时表作为目标表。
步骤S305,创建目标表的索引信息和约束信息。
在导入数据后,根据配置参数信息创建目标表的索引信息和约束信息。
步骤S306,将原始表替换为目标表。
在将数据导入到临时表得到目标表,并创建目标表对应的索引信息和约束信息后,可以将数据库中的原始表删除,只保留目标表。
步骤S307,将目标表的索引信息和约束信息更改为与原始表的索引信息和约束信息一致。
在从数据库中删除原始表后,可以将目标表的索引信息和约束信息更改为与原始表的索引信息和约束信息一致。
在采用增量导入方式将待导入数据导入到Oracle数据中的目标表时,可以按照图4中示出的过程进行实现。如图4所示,可以包括以下步骤:
步骤S401,获取需要导入的目标表的结构。
步骤S402,根据目标表的结构,生成配置参数信息。
步骤S403,根据配置参数信息,确定出目标表包括的多条表数据。
步骤S404,确定每次进行匹配的表数据的设定条数和待导入数据的设定个数。
每次进行匹配的目标表中包括的表数据条数和待导入数据中包括的数据个数都有限制,且进行匹配的数据条数可以具体根据实际中的匹配情况和执行匹配过程的服务器或终端的性能情况进行指定,本申请实施例在此不作限定。
步骤S405,针对每次匹配中的每条表数据,分别执行以下操作:将表数据分别与设定个数的增量数据进行匹配,若表数据与设定个数的待导入数据中的设定数据相匹配,则将表数据从目标表中删除,并将设定个数的待导入数据导入到删除表数据的目标表中。
步骤S406,针对每次匹配中的每条表数据,分别执行以下操作:将表数据分别与设定个数的增量数据进行匹配,若表数据与设定个数的待导入数据均不匹配,则将设定个数的待导入数据导入到目标表中。
具体地,在每次将目标表中的表数据分别与待导入数据进行匹配时,可以采用字段匹配方式执行匹配过程。
在采用Spring batch将外部数据全量导入到Oracle数据库中时,也可以采用如图4所示的增量导入方式进行数据导入。增量导入方式在进行数据导入时,整体效率上会略低于全量导入方式,但是不需要在数据库中新创建一个临时表。
在一些实施例中,在采用Spring batch将外部数据导入到Oracle数据库时,也可以只执行通过将待导入数据与Oracle数据库中的目标表包括的表数据进行匹配,确定出相匹配的目标数据,并从目标表中删除目标数据的过程,该过程可以如图5所示,包括以下步骤:
步骤S501,获取需要导入的目标表的结构。
步骤S502,根据目标表的结构,生成配置参数信息。
步骤S503,根据配置参数信息,确定出目标表包括的多条表数据。
步骤S504,确定每次进行匹配的表数据的设定条数和待导入数据的设定个数。
步骤S505,针对每次匹配中的每条表数据,分别执行以下操作:将表数据分别与设定个数的增量数据进行匹配,若表数据与设定个数的待导入数据中的设定数据相匹配,则将表数据从目标表中删除。
本申请实施例提供的导入数据的方法,可以分别实现将外部数据全量导入到数据库中的目标表中,将外部数据增量导入到数据库中的目标表中的过程。在将外部数据全量导入到数据库中的目标表中时,需要先创建一个与外部数据需要导入的目标表的结构相一致的临时表,并将外部数据导入到临时表,再用临时表替换目标表,并保留目标表中原有的索引信息和约束信息,从而可以解决相关技术中,在将外部数据导入到目标表的过程中,目标表中的数据被全部清空而出现的数据查询为空或不完整问题。本申请实施例中的全量导入方式可在极短时间内将目标表中切换成最新数据,完成数据导入到数据库中的过程,且在进行数据导入的过程中,能够无间断地提供数据查询服务,同时也可以提高导入数据的效率。
在将外部数据增量导入到数据库中的目标表中时,不需要新增临时表,而是将外部数据与目标表中的数据作字段匹配,确定出目标表中与外部数据相匹配的目标数据,并在从目标表中将目标数据删除后,再将外部数据导入至目标表中,从而可以解决相关技术中,在目标表中存在数据的情况下,无法对目标表中的已有数据进行更新替换的问题。
此外,本申请实施例提供的导入数据的方法,还可以根据外部数据与数据库中的目标表中的表数据进行匹配,将目标表中与外部数据相匹配的目标数据删除,从而可以解决相关技术中,无法部分删除目标表中的已有数据,只能全部删除目标表中的已有数据的问题。并且,通过提供数据的全量导入、增量导入和删除方式,可以方便数据导入数据库,以及对数据库中的数据进行处理的操作。
与图1所示的导入数据的方法基于同一发明构思,本申请实施例中还提供了一种导入数据的装置。由于该装置是本申请导入数据的方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
图6示出了本申请实施例提供的一种导入数据的装置的结构示意图,如图6所示,该导入数据的装置包括第一导入确定单元601、临时表创建单元602和目标表替换单元603。
其中,第一导入确定单元601,用于响应于全量导入数据的指令,获取待导入的全量数据,并确定数据库中待导入的全量数据需要导入的第一原始表;
临时表创建单元602,用于获取第一原始表的表结构,并在数据库中创建与第一原始表的表结构一致的临时表;
目标表替换单元603,用于将待导入的全量数据导入到临时表中,得到目标表,并将第一原始表替换为目标表。
在一种可选的实施例中,临时表创建单元602,具体用于:
根据第一原始表的表结构,确定第一原始表对应的配置参数信息;
基于配置参数信息,在数据库中创建与第一原始表的表结构一致的临时表。
在一种可选的实施例中,配置参数信息中还包括第一原始表的索引信息和约束信息;目标表替换单元603,还用于:
创建目标表的索引信息和约束信息,并删除第一原始表,以及将目标表的索引信息和约束信息更改为与第一原始表的索引信息和约束信息一致。
在一种可选的实施例中,与图2所示的导入数据的方法基于同一发明构思,本申请实施例中还提供了一种导入数据的装置。由于该装置是本申请导入数据的方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
如图7所示,该导入数据的装置还可以包括第二导入确定单元701、匹配数据确定单元702和数据导入单元703。
其中,第二导入确定单元701,用于响应于增量导入数据的指令,获取待导入的增量数据,并确定数据库中待导入的增量数据需要导入的第二原始表;
匹配数据确定单元702,用于将待导入的增量数据与第二原始表中的数据进行匹配,确定出第二原始表中与待导入的增量数据相匹配的目标数据;
数据导入单元703,用于从第二原始表中删除目标数据,并将待导入的增量数据导入到删除目标数据后的第二原始表中。
在一种可选的实施例中,匹配数据确定单元702,具体用于:
根据第二原始表的表结构得到第二原始表对应的配置参数信息,并根据配置参数信息,确定第二原始表包括的多条表数据;
针对每条表数据,分别执行以下操作:将表数据分别与待导入的增量数据中包含的多个增量数据进行匹配,若表数据与多个增量数据中的设定增量数据相匹配,则将表数据作为目标数据。
在一种可选的实施例中,数据导入单元703,具体用于:
确定出每次进行匹配的表数据的设定条数和增量数据的设定个数,针对每次匹配中的每条表数据,分别执行以下操作:
将表数据分别与设定个数的增量数据进行匹配,若表数据与设定个数的增量数据中的设定增量数据相匹配,则将表数据从第二原始表中删除,并将设定个数的增量数据导入到删除表数据的第二原始表中;
若表数据与设定个数的增量数据均不匹配,则将设定个数的增量数据导入到第二原始表中。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。该电子设备可以用于执行导入数据的过程。在该实施例中,电子设备的结构可以如图8所示,包括存储器801以及一个或多个处理器802。
存储器801,用于存储处理器802执行的计算机程序。存储器801可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器801可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。
处理器802,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器802,用于调用存储器801中存储的计算机程序时实现上述导入数据的方法。
本申请实施例中不限定上述存储器801和处理器802之间的具体连接介质。本公开实施例在图8中以存储器801和处理器802之间通过总线803连接,总线803在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的导入数据的方法。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (15)
1.一种导入数据的方法,其特征在于,包括:
响应于全量导入数据的指令,获取待导入的全量数据,并确定数据库中所述待导入的全量数据需要导入的第一原始表;
获取所述第一原始表的表结构,并在所述数据库中创建与所述第一原始表的表结构一致的临时表;
将所述待导入的全量数据导入到所述临时表中,得到目标表,并将所述第一原始表替换为所述目标表。
2.如权利要求1所述的方法,其特征在于,所述获取所述第一原始表的表结构,并在所述数据库中创建与所述第一原始表的表结构一致的临时表,包括:
根据所述第一原始表的表结构,确定所述第一原始表对应的配置参数信息;
基于所述配置参数信息,在所述数据库中创建与所述第一原始表的表结构一致的临时表。
3.如权利要求2所述的方法,其特征在于,所述配置参数信息中还包括所述第一原始表的索引信息和约束信息;所述得到目标表之后,所述方法还包括:
创建所述目标表的索引信息和约束信息,并删除所述第一原始表,以及将所述目标表的索引信息和约束信息更改为与所述第一原始表的索引信息和约束信息一致。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于增量导入数据的指令,获取待导入的增量数据,并确定所述数据库中所述待导入的增量数据需要导入的第二原始表;
将所述待导入的增量数据与所述第二原始表中的数据进行匹配,确定出所述第二原始表中与所述待导入的增量数据相匹配的目标数据;
从所述第二原始表中删除所述目标数据,并将所述待导入的增量数据导入到删除所述目标数据后的第二原始表中。
5.如权利要求4所述的方法,其特征在于,所述将所述待导入的增量数据与所述第二原始表中的数据进行匹配,确定出所述第二原始表中与所述待导入的增量数据相匹配的目标数据,包括:
根据所述第二原始表的表结构得到所述第二原始表对应的配置参数信息,并根据所述配置参数信息,确定所述第二原始表包括的多条表数据;
针对每条表数据,分别执行以下操作:将所述表数据分别与所述待导入的增量数据中包含的多个增量数据进行匹配,若所述表数据与所述多个增量数据中的设定增量数据相匹配,则将所述表数据作为目标数据。
6.如权利要求5所述的方法,其特征在于,从所述第二原始表中删除所述目标数据,并将所述待导入的增量数据导入到删除所述目标数据后的第二原始表中,包括:
确定出每次进行匹配的表数据的设定条数和增量数据的设定个数,针对每次匹配中的每条表数据,分别执行以下操作:
将所述表数据分别与所述设定个数的增量数据进行匹配,若所述表数据与所述设定个数的增量数据中的设定增量数据相匹配,则将所述表数据从所述第二原始表中删除,并将所述设定个数的增量数据导入到删除所述表数据的第二原始表中;
若所述表数据与所述设定个数的增量数据均不匹配,则将所述设定个数的增量数据导入到所述第二原始表中。
7.一种导入数据的装置,其特征在于,包括:
第一导入确定单元,用于响应于全量导入数据的指令,获取待导入的全量数据,并确定数据库中所述待导入的全量数据需要导入的第一原始表;
临时表创建单元,用于获取所述第一原始表的表结构,并在所述数据库中创建与所述第一原始表的表结构一致的临时表;
目标表替换单元,用于将所述待导入的全量数据导入到所述临时表中,得到目标表,并将所述第一原始表替换为所述目标表。
8.如权利要求7所述的装置,其特征在于,所述临时表创建单元,具体用于:
根据所述第一原始表的表结构,确定所述第一原始表对应的配置参数信息;
基于所述配置参数信息,在所述数据库中创建与所述第一原始表的表结构一致的临时表。
9.如权利要求8所述的装置,其特征在于,所述配置参数信息中还包括所述第一原始表的索引信息和约束信息;所述目标表替换单元,还用于:
创建所述目标表的索引信息和约束信息,并删除所述第一原始表,以及将所述目标表的索引信息和约束信息更改为与所述第一原始表的索引信息和约束信息一致。
10.如权利要求7所述的装置,其特征在于,所述装置还包括:
第二导入确定单元,用于响应于增量导入数据的指令,获取待导入的增量数据,并确定所述数据库中所述待导入的增量数据需要导入的第二原始表;
匹配数据确定单元,用于将所述待导入的增量数据与所述第二原始表中的数据进行匹配,确定出所述第二原始表中与所述待导入的增量数据相匹配的目标数据;
数据导入单元,用于从所述第二原始表中删除所述目标数据,并将所述待导入的增量数据导入到删除所述目标数据后的第二原始表中。
11.如权利要求10所述的装置,其特征在于,所述匹配数据确定单元,具体用于:
根据所述第二原始表的表结构得到所述第二原始表对应的配置参数信息,并根据所述配置参数信息,确定所述第二原始表包括的多条表数据;
针对每条表数据,分别执行以下操作:将所述表数据分别与所述待导入的增量数据中包含的多个增量数据进行匹配,若所述表数据与所述多个增量数据中的设定增量数据相匹配,则将所述表数据作为目标数据。
12.如权利要求11所述的装置,其特征在于,所述数据导入单元,具体用于:
确定出每次进行匹配的表数据的设定条数和增量数据的设定个数,针对每次匹配中的每条表数据,分别执行以下操作:
将所述表数据分别与所述设定个数的增量数据进行匹配,若所述表数据与所述设定个数的增量数据中的设定增量数据相匹配,则将所述表数据从所述第二原始表中删除,并将所述设定个数的增量数据导入到删除所述表数据的第二原始表中;
若所述表数据与所述设定个数的增量数据均不匹配,则将所述设定个数的增量数据导入到所述第二原始表中。
13.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~6中任一所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~6中任一所述方法的步骤。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1~6所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111456419.4A CN114064783A (zh) | 2021-12-02 | 2021-12-02 | 一种导入数据的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111456419.4A CN114064783A (zh) | 2021-12-02 | 2021-12-02 | 一种导入数据的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064783A true CN114064783A (zh) | 2022-02-18 |
Family
ID=80228259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111456419.4A Pending CN114064783A (zh) | 2021-12-02 | 2021-12-02 | 一种导入数据的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064783A (zh) |
-
2021
- 2021-12-02 CN CN202111456419.4A patent/CN114064783A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210303537A1 (en) | Log record identification using aggregated log indexes | |
JP2022500727A (ja) | データベースにおけるツームストーンレコードの早期除去のためのシステムおよび方法 | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN109684270B (zh) | 数据库归档方法、装置、***、设备及可读存储介质 | |
CN105354315A (zh) | 分布式数据库中子表***的方法、子表节点和*** | |
CN113420026B (zh) | 数据库表结构变更方法、装置、设备及存储介质 | |
US20180373741A1 (en) | Systems and methods of creation and deletion of tenants within a database | |
WO2022111380A1 (zh) | 信息处理方法、装置和存储介质 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN108415934A (zh) | 一种Hive表修复方法、装置、设备及计算机可读存储介质 | |
CN111488483B (zh) | 曲库更新方法、装置、终端和非临时性计算机可读存储介质 | |
CN113326288A (zh) | 数据处理方法、装置、电子设备 | |
CN109977104B (zh) | 数据管理方法及装置 | |
CN103809915A (zh) | 一种磁盘文件的读写方法和装置 | |
CN116450607A (zh) | 数据处理方法、设备及存储介质 | |
CN110888863A (zh) | 一种状态字段优化方法、装置、电子设备及存储介质 | |
CN114064783A (zh) | 一种导入数据的方法、装置、电子设备及存储介质 | |
CN113076086B (zh) | 元数据管理***和使用其对模型对象进行建模的方法 | |
AU2019350694A1 (en) | Identification of records for post-cloning tenant identifier translation | |
CN114138182B (zh) | 一种分布式云硬盘的跨存储在线克隆方法、***及装置 | |
CN112464049B (zh) | 号码详单下载方法、装置和设备 | |
CN110222105B (zh) | 数据汇总处理方法及装置 | |
CN114675995A (zh) | 数据备份方法、装置和电子设备 | |
CN113760600A (zh) | 一种数据库备份方法、数据库还原方法和相关装置 | |
CN104765748A (zh) | 一种将复制表转换为分片表的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |