CN115757581A - 文本数据导入数据库的方法及装置 - Google Patents
文本数据导入数据库的方法及装置 Download PDFInfo
- Publication number
- CN115757581A CN115757581A CN202211493920.2A CN202211493920A CN115757581A CN 115757581 A CN115757581 A CN 115757581A CN 202211493920 A CN202211493920 A CN 202211493920A CN 115757581 A CN115757581 A CN 115757581A
- Authority
- CN
- China
- Prior art keywords
- text data
- database
- primary key
- reading result
- key value
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文本数据导入数据库的方法及装置,其中该方法包括:本发明实施例中,获取数据库中数据表的多个主键值;根据数据表的多个主键值,建立平衡二叉树;逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;在第一文本数据读取完成时,将第二文本数据导入数据库,可以快速将文本数据导入数据库,缓解数据库的调用压力,提高批量程序的执行效率。
Description
技术领域
本发明涉及计算机数据处理技术领域,尤其涉及一种文本数据导入数据库的方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在批量程序中,经常需要将海量的文本数据导入到数据库中。程序将按行存放的文本数据导入数据库的过程中,需要根据主键更新数据库中的内容,逐条导入或分多批次导入。当导入文本数据巨大,会导致大量调用数据库,不但对数据库造成压力,占用数据库锁时间长,而且调用来回过程严重拉长整个批量程序的执行时间。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种文本数据导入数据库的方法,用以快速将文本数据导入数据库,缓解数据库的调用压力,提高批量程序的执行效率,该方法包括:
获取数据库中数据表的多个主键值;
根据数据表的多个主键值,建立平衡二叉树;
逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;
根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;
在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;
在第一文本数据读取完成时,将第二文本数据导入数据库。
本发明实施例还提供一种文本数据导入数据库的装置,用以快速将文本数据导入数据库,缓解数据库的调用压力,提高批量程序的执行效率,该装置包括:
主键值获取模块,用于获取数据库中数据表的多个主键值;
平衡二叉树建立模块,用于根据数据表的多个主键值,建立平衡二叉树;
第一文本数据读取模块,用于逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;
查找模块,用于根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;
筛选模块,用于在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;
第二文本数据导入模块,用于在第一文本数据读取完成时,将第二文本数据导入数据库。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述文本数据导入数据库的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述文本数据导入数据库的方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述文本数据导入数据库的方法。
本发明实施例中,获取数据库中数据表的多个主键值;根据数据表的多个主键值,建立平衡二叉树;逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;在第一文本数据读取完成时,将第二文本数据导入数据库。
在批量程序执行过程中,对于待导入数据库中的大量文本数据,本发明实施例根据由数据库表的主键值建立的平衡二叉树,对大量文本数据进行筛选,再将筛选得到的有效文本数据导入数据库,可以大大减少数据库导入的数据量,快速将文本数据导入数据库,减少数据库的调用时间,进而提高了批量程序的执行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中文本数据导入数据库的方法的处理流程图;
图2为本发明实施例中遍历平衡二叉树的方法流程图;
图3为本发明实施例中文本数据导入数据库的结构示意图;
图4为本发明实施例中文本数据导入数据库的装置的一具体实例结构示意图;
图5为本发明一实施例的计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
首先,对本发明实施例中的技术名词进行介绍:
平衡二叉树:一种数据结构,用于查找,查找速度较快;二叉查找树是当前节点的左节点及其子树均小于当前节点,当前节点的右节点及其子树均大于当前节点;平衡二叉树是树深度比较均衡的二叉查找树。
主键:数据库的表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行,这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义PRIMARY KEY约束来创建主,一个表只能有一个PRIMARY KEY约束,而且PRIMARYKEY约束中的列不能接受空值。由于PRIMARY KEY约束确保唯一数据,所以经常用来定义标识列。
发明人发现,程序将记录按行存放的文本数据转化导入数据库的过程中,需要根据主键更新数据库中的内容,逐条导入或分多批次导入。当导入文本数据巨大,会导致大量调用数据库,对数据库造成压力,导入过程缓慢,拉长程序执行时间。因此,本发明提供了一种文本数据导入数据库的方法可以解决上述问题。
图1为本发明实施例中文本数据导入数据库的方法的处理流程图。如图1所示,本发明实施例中文本数据导入数据库的方法可以包括:
步骤101、获取数据库中数据表的多个主键值;
步骤102、根据数据表的多个主键值,建立平衡二叉树;
步骤103、逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;
步骤104、根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;
步骤105、在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;
步骤106、在第一文本数据读取完成时,将第二文本数据导入数据库。
下面介绍本发明实施例中文本数据导入数据库的方法的具体实施步骤:
首先可以获取数据库中数据表的多个主键值,并根据数据表的多个主键值,建立平衡二叉树。具体实施时,对于特殊键值,例如整数类型的键值且满足键值的固定范围,不必使用平衡二叉树处理,而采用哈希数组方式,可以节省建立平衡二叉树的时间,并且查找速度更快,进一步提高将文本数据导入数据库的效率。
在一个实施例中,所述数据库为关系型数据库。
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
在根据数据表的多个主键值,建立平衡二叉树之后,可以逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果,然后根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值。具体实施时,每行第一文本数据的读取结果可以包括每行文本数据的关键字、主题内容、预设字符等。
图2为本发明实施例中遍历平衡二叉树的方法流程图。如图2所示,在一个实施例中,根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值,包括:
步骤201、根据每行第一文本数据的读取结果,从头部开始遍历平衡二叉树;
步骤202、将每行第一文本数据的读取结果,与平衡二叉树中的每一主键值进行比对;
步骤203、在比对结果一致时,确定查找到与读取结果匹配的主键值。
具体实施时,平衡二叉树中的每一主键值可以表示原有数据库表中每一行应该存放的内容,而在数据量巨大的第一文本数据中,并不是所有数据都需要导入到数据库中,其中包含了很多与数据库表中内容无关的数据,所以可以将每行第一文本数据的读取结果,与平衡二叉树中的每一主键值进行比对,若比对结果一致,说明对应行的文本数据是需要存储在数据库表中的数据。
在查找到与读取结果匹配的主键值时,可以将对应行的第一文本数据筛选至第二文本数据;在第一文本数据读取完成时,将第二文本数据导入数据库。
在一个实施例中还可以包括:在查找不到与读取结果匹配的主键值时,将对应行的第一文本数据删除。
具体实施时,对于第一文本数据中的每行数据,若可以在先前建立的平衡二叉树中查找到匹配的的主键值时,可以将该行数据筛选至第二文本数据;若无法在先前建立的平衡二叉树中查找到匹配的的主键值时,可以将该行数据直接删除。如此,在第一文本数据读取完成时,第二文本数据中已经包含了数据库需要的所有数据,而第二文本数据中的数据量已经大大减少,可以快速将第二文本数据导入数据库中,减少数据库的调用时间,进而提高了批量程序的执行效率。
下面举一例对本发明实施例中文本数据导入数据库的方法进行详细描述:
(1)在将批量程序执行过程中产生的大量文本数据导入相应的数据库之前,获取数据库中数据表的多个主键值;
(2)根据数据表的多个主键值,建立平衡二叉树;
(3)逐行读取待导入数据库的大量文本数据,根据每行文本数据的读取结果,遍历平衡二叉树,查找是否有与每行文本数据的读取结果匹配的主键值;
(4)若有,则将对应行的文本数据筛选至一个新文本中;若没有,则将对应行的文本数据直接删除;
(5)在读取完原有的大量文本数据时,将新文本中的数据导入数据库。
本发明实施例中还提供了一种文本数据导入数据库的装置,如下面的实施例所述。由于该装置解决问题的原理与文本数据导入数据库的方法相似,因此该装置的实施可以参见文本数据导入数据库的方法的实施,重复之处不再赘述。
图3为本发明实施例中文本数据导入数据库的结构示意图。如图3所示,本发明实施例中文本数据导入数据库的装置具体可以包括:
主键值获取模块301,用于获取数据库中数据表的多个主键值;
平衡二叉树建立模块302,用于根据数据表的多个主键值,建立平衡二叉树;
第一文本数据读取模块303,用于逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;
查找模块304,用于根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;
筛选模块305,用于在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;
第二文本数据导入模块306,用于在第一文本数据读取完成时,将第二文本数据导入数据库。
在一个实施例中,所述数据库为关系型数据库。
在一个实施例中,查找模块304具体用于:
根据每行第一文本数据的读取结果,从头部开始遍历平衡二叉树;
将每行第一文本数据的读取结果,与平衡二叉树中的每一主键值进行比对;
在比对结果一致时,确定查找到与读取结果匹配的主键值。
图4为本发明实施例中文本数据导入数据库的装置的一具体实例结构示意图。如图4所示,在实施例中,图3所示的文本数据导入数据库的装置还包括:
删除模块401,用于:
在查找不到与读取结果匹配的主键值时,将对应行的第一文本数据删除。
基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述文本数据导入数据库的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述文本数据导入数据库的方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述文本数据导入数据库的方法。
综上所述,本发明实施例中,获取数据库中数据表的多个主键值;根据数据表的多个主键值,建立平衡二叉树;逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;在第一文本数据读取完成时,将第二文本数据导入数据库。在批量程序执行过程中,对于待导入数据库中的大量文本数据,本发明实施例根据由数据库表的主键值建立的平衡二叉树,对大量文本数据进行筛选,再将筛选得到的有效文本数据导入数据库,可以大大减少数据库导入的数据量,快速将文本数据导入数据库,减少数据库的调用时间,进而提高了批量程序的执行效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种文本数据导入数据库的方法,其特征在于,包括:
获取数据库中数据表的多个主键值;
根据数据表的多个主键值,建立平衡二叉树;
逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;
根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;
在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;
在第一文本数据读取完成时,将第二文本数据导入数据库。
2.如权利要求1所述的方法,其特征在于,所述数据库为关系型数据库。
3.如权利要求1所述的方法,其特征在于,根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值,包括:
根据每行第一文本数据的读取结果,从头部开始遍历平衡二叉树;
将每行第一文本数据的读取结果,与平衡二叉树中的每一主键值进行比对;
在比对结果一致时,确定查找到与读取结果匹配的主键值。
4.如权利要求1所述的方法,其特征在于,还包括:
在查找不到与读取结果匹配的主键值时,将对应行的第一文本数据删除。
5.一种文本数据导入数据库的装置,其特征在于,包括:
主键值获取模块,用于获取数据库中数据表的多个主键值;
平衡二叉树建立模块,用于根据数据表的多个主键值,建立平衡二叉树;
第一文本数据读取模块,用于逐行读取待导入数据库的第一文本数据,得到每行第一文本数据的读取结果;
查找模块,用于根据每行第一文本数据的读取结果,遍历平衡二叉树,查找与读取结果匹配的主键值;
筛选模块,用于在查找到与读取结果匹配的主键值时,将对应行的第一文本数据筛选至第二文本数据;
第二文本数据导入模块,用于在第一文本数据读取完成时,将第二文本数据导入数据库。
6.如权利要求5所述的装置,其特征在于,所述数据库为关系型数据库。
7.如权利要求5所述的装置,其特征在于,查找模块具体用于:
根据每行第一文本数据的读取结果,从头部开始遍历平衡二叉树;
将每行第一文本数据的读取结果,与平衡二叉树中的每一主键值进行比对;
在比对结果一致时,确定查找到与读取结果匹配的主键值。
8.如权利要求5所述的装置,其特征在于,还包括删除模块,用于:
在查找不到与读取结果匹配的主键值时,将对应行的第一文本数据删除。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至4任一所述方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至4任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211493920.2A CN115757581A (zh) | 2022-11-25 | 2022-11-25 | 文本数据导入数据库的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211493920.2A CN115757581A (zh) | 2022-11-25 | 2022-11-25 | 文本数据导入数据库的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757581A true CN115757581A (zh) | 2023-03-07 |
Family
ID=85338368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211493920.2A Pending CN115757581A (zh) | 2022-11-25 | 2022-11-25 | 文本数据导入数据库的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757581A (zh) |
-
2022
- 2022-11-25 CN CN202211493920.2A patent/CN115757581A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220027383A1 (en) | Data normalization using data edge platform | |
CN110019218B (zh) | 数据存储与查询方法及设备 | |
US9953102B2 (en) | Creating NoSQL database index for semi-structured data | |
US10769147B2 (en) | Batch data query method and apparatus | |
CN103514201B (zh) | 一种非关系型数据库的数据查询方法和装置 | |
EP1234258B1 (en) | System for managing rdbm fragmentations | |
US20150006509A1 (en) | Incremental maintenance of range-partitioned statistics for query optimization | |
US9218394B2 (en) | Reading rows from memory prior to reading rows from secondary storage | |
CN107577787B (zh) | 关联数据信息入库的方法及系统 | |
US20230161765A1 (en) | System and method for disjunctive joins using a lookup table | |
CN109254962B (zh) | 一种基于t-树的索引优化方法、装置及存储介质 | |
CN113918605A (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
CN111475511A (zh) | 基于树状结构的数据存储方法、访问方法、装置及设备 | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
CN111125216B (zh) | 数据导入Phoenix的方法及装置 | |
CN111125090B (zh) | 数据存取方法及装置 | |
CN111159192B (zh) | 基于大数据的数据入库方法、装置、存储介质和处理器 | |
Liu et al. | Performance evaluation and optimization of multi-dimensional indexes in hive | |
CN111078728A (zh) | 一种数据库归档模式下跨库查询方法和装置 | |
CN113434511B (zh) | 一种基于希尔伯特曲线的聚类索引方法 | |
CN115757581A (zh) | 文本数据导入数据库的方法及装置 | |
CN112463785B (zh) | 一种数据质量监控方法、装置、电子设备及存储介质 | |
CN113495901A (zh) | 一种面向可变长数据块的快速检索方法 | |
CN108073596B (zh) | 一种olap数据库的数据删除方法及装置 | |
CN112749189A (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 |