CN117520266A - 文件的处理方法、系统和电子设备及存储介质 - Google Patents
文件的处理方法、系统和电子设备及存储介质 Download PDFInfo
- Publication number
- CN117520266A CN117520266A CN202311474876.5A CN202311474876A CN117520266A CN 117520266 A CN117520266 A CN 117520266A CN 202311474876 A CN202311474876 A CN 202311474876A CN 117520266 A CN117520266 A CN 117520266A
- Authority
- CN
- China
- Prior art keywords
- data block
- target database
- data
- file
- processing
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 30
- 238000003672 processing method Methods 0.000 title abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 178
- 238000000034 method Methods 0.000 claims abstract description 86
- 208000025174 PANDAS Diseases 0.000 claims description 28
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 claims description 28
- 240000004718 Panda Species 0.000 claims description 28
- 235000016496 Panda oleosa Nutrition 0.000 claims description 28
- 238000004458 analytical method Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000004140 cleaning Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 abstract description 12
- 230000000903 blocking effect Effects 0.000 abstract description 11
- 230000009286 beneficial effect Effects 0.000 abstract description 9
- 238000013523 data management Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 19
- 238000012546 transfer Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 8
- 238000007405 data analysis Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002354 daily effect Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000779 depleting effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
- G06F16/258—Data format conversion from or to a database
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种文件的处理方法、系统以及一种电子设备和一种计算机可读存储介质,应用于文件处理设备,所述方法包括:获取待处理的文件;按照预设的参数尺寸分块读取所述文件的多个数据块;将每个所述数据块分别存储至目标数据库中;对所述目标数据库进行处理。本发明实施例通过分块处理、并行化处理和数据存储到目标数据库中等策略,可以显著提高对大型文件的处理效率和数据管理能力,同时降低内存占用。这些优点使其成为处理大型文件的有益技术方案。与传统的处理CSV文件的方法相比,它更适用于大规模数据处理和管理。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种文件的处理方法、一种文件的处理系统以及一种电子设备和一种计算机可读存储介质。
背景技术
逗号分隔值(Comma-Separated Values,简称CSV)是一种常用的文本文件格式,用于存储和交换表格数据。CSV文件由纯文本组成,使用逗号(或其他分隔符)来分隔各个数据字段。CSV文件具有简单易懂、跨平台兼容等特点。CSV是一种简单、通用且易于使用的数据存储格式,适用于各种数据处理和交换场景。它在数据分析、数据交换和数据备份等方面都具有重要的作用。
在处理超大的CSV文件时,常常会面临内存不足的问题。传统的读取整个文件到内存中的方法可能会导致程序崩溃或运行缓慢。当前处理超大CSV文件的技术方案主要包括以下几种:
1)逐行读取和处理:这是最基本的处理超大CSV文件的方法。通过逐行读取文件,并对每一行进行处理,可以避免将整个文件加载到内存中。这种方法效率较低,特别是对于非常大的文件,会导致处理时间过长。
2)分割文件:将超大的CSV文件分割成多个较小的文件,然后分别处理每个小文件。这样可以减少内存的使用,并提高处理效率。分割文件可以按行数、文件大小或其他规则进行。这种方法需要额外的文件管理和合并步骤,提高数据处理的复杂度。
3)使用内存映射文件:内存映射文件是一种将文件映射到内存中的技术。通过将超大CSV文件映射到内存中,可以直接在内存中进行读取和处理,而无需将整个文件加载到内存中。这种方法可以提高处理速度,并减少内存的使用。然而,内存映射文件的使用具有一定风险,特别是对于非常大的文件,可能会导致内存不足或性能问题。
4)使用流式处理框架:流式处理框架如Apache Spark、Apache Flink等可以处理超大的CSV文件。这些框架使用分布式计算和内存管理技术,可以对大规模数据进行并行处理。它们提供了高级的数据处理操作和优化机制,可以有效地处理超大CSV文件。然而,使用这些框架需要一定的学习成本,并且需要配置和管理分布式计算环境。
由上述内容可知,当前处理超大CSV文件的技术方案的处理时间长、处理难度大、有一定安全风险且需要一定的学习成本。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种文件的处理方法、一种文件的处理系统以及一种电子设备和一种计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种文件的处理方法,应用于文件处理设备,所述方法包括:获取待处理的文件;按照预设的参数尺寸分块读取所述文件的多个数据块;将每个所述数据块分别存储至目标数据库中;对所述目标数据库进行处理。
可选地,所述按照预设的参数尺寸分块读取所述文件的多个数据块,包括:将预先为Pandas库设定的chunk size参数传递至read_csv函数;利用所述read_csv函数按照所述chunk size参数分块读取所述文件的多个所述数据块。
可选地,在所述将每个所述数据块分别存储至目标数据库中之前,所述方法还包括:利用所述Pandas库对所述数据块进行清洗处理、转换处理和分析处理中的至少一种处理。
可选地,所述将每个所述数据块分别存储至目标数据库中,包括:将每个所述数据块在所述目标数据库中的目标字段,确定为每个所述数据块在所述目标数据库中的索引信息。
可选地,在所述将每个所述数据块分别存储至目标数据库中之前,所述方法还包括:基于PooledDB库为所述目标数据库创建连接池。
可选地,所述将每个所述数据块分别存储至目标数据库中,包括:在每次存储所述数据块至所述目标数据库之前,从所述连接池获取所述文件处理设备与所述目标数据库之间的连接关系;根据所述连接关系将每个所述数据块分别存储至所述目标数据库中。
可选地,所述对所述目标数据库进行处理,包括:按照预设周期对所述目标数据库进行更新处理。
可选地,所述按照预设周期对所述目标数据库进行更新处理,包括:获取新文件;按照所述参数尺寸分块读取所述新文件的多个新数据块;为每个所述新数据块创建索引信息;根据所述数据块的索引信息和所述新数据块的索引信息,对所述目标数据库进行增量更新处理。
可选地,所述对所述目标数据库进行增量更新处理,包括:判断具有相同索引信息的所述新数据块和所述数据块的数据内容是否相同;若具有相同索引信息的所述新数据块和所述数据块的数据内容不相同,则将所述数据块的至少一个字段的字段内容替换为所述新数据块中对应字段的字段内容。
可选地,所述对所述目标数据库进行增量更新处理,包括:判断所述目标数据库中是否存在与所述新数据块的索引信息相同的所述数据块;若所述目标数据库中不存在与所述新数据块的索引信息相同的所述数据块,则在所述目标数据库中插入所述新数据块。
本发明实施例还公开了一种文件的处理系统,应用于文件处理设备,所述系统包括:文件获取模块,用于获取待处理的文件;数据块读取模块,用于按照预设的参数尺寸分块读取所述文件的多个数据块;数据块存储模块,用于将每个所述数据块分别存储至目标数据库中;数据库处理模块,用于对所述目标数据库进行处理。
可选地,所述数据块读取模块,包括:参数传递模块,用于将预先为Pandas库设定的chunk size参数传递至read_csv函数;数据块分块读取模块,用于利用所述read_csv函数按照所述chunk size参数分块读取所述文件的多个所述数据块。
可选地,所述系统还包括:数据块处理模块,用于在所述数据块存储模块将每个所述数据块分别存储至目标数据库中之前,利用所述Pandas库对所述数据块进行清洗处理、转换处理和分析处理中的至少一种处理。
可选地,所述数据块存储模块,用于将每个所述数据块在所述目标数据库中的目标字段,确定为每个所述数据块在所述目标数据库中的索引信息。
可选地,所述系统还包括:连接池创建模块,用于在所述数据块存储模块33将每个所述数据块分别存储至目标数据库中之前,基于PooledDB库为所述目标数据库创建连接池。
可选地,所述数据块存储模块,包括:连接关系获取模块,用于在每次存储所述数据块至所述目标数据库之前,从所述连接池获取所述文件处理设备与所述目标数据库之间的连接关系;存储模块,用于根据所述连接关系将每个所述数据块分别存储至所述目标数据库中。
可选地,所述数据库处理模块,用于按照预设周期对所述目标数据库进行更新处理。
可选地,所述数据库处理模块,包括:新文件获取模块,用于获取新文件;新数据块读取模块,用于按照所述参数尺寸分块读取所述新文件的多个新数据块;新索引创建模块,用于为每个所述新数据块创建索引信息;增量更新处理模块,用于根据所述数据块的索引信息和所述新数据块的索引信息,对所述目标数据库进行增量更新处理。
可选地,所述增量更新处理模块,包括:数据内容判断模块,用于判断具有相同索引信息的所述新数据块和所述数据块的数据内容是否相同;字段内容替换模块,用于若具有相同索引信息的所述新数据块和所述数据块的数据内容不相同,则将所述数据块的至少一个字段的字段内容替换为所述新数据块中对应字段的字段内容。
可选地,所述增量更新处理模块,包括:索引信息判断模块,用于判断所述目标数据库中是否存在与所述新数据块的索引信息相同的所述数据块;新数据块插入模块,用于若所述目标数据库中不存在与所述新数据块的索引信息相同的所述数据块,则在所述目标数据库中插入所述新数据块。
本发明实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上所述的一种文件的处理方法。
本发明实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如上所述的一种文件的处理方法。
本发明实施例包括以下优点:
本发明实施例提供的一种文件的处理方案,应用于文件处理设备。该文件处理设备可以为终端设备或者服务器。该文件处理设备获取待处理的文件。然后,按照预设的参数尺寸分块读取文件的多个数据块。进而,将每个数据块分别存储至目标数据库中。最终,对目标数据库进行处理。
本发明实施例提出的上述文件处理方案,特别是适用于大型文件的方案,相对于处理超大CSV文件的传统技术方案(如逐行读取和处理、分割文件、内存映射文件等)可以带来以下有益效果:
本发明实施例采用了分块读取文件的策略,将文件分成多个数据块,然后将每个数据块分别存储到目标数据库中。这种方式可以有效地降低内存的使用,因为每个数据块的大小是可控的,不需要一次性将整个文件加载到内存中。因此,可以更高效地处理大型文件,减少处理时间。将文件分块存储到目标数据库中可以实现数据的并行化处理。不同的数据块可以同时存储和处理,从而提高数据处理的速度。这对于大型文件来说尤为重要,因为传统的逐行处理方式可能导致处理时间过长。将数据块分别存储到目标数据库中,可以确保数据的安全性和一致性。如果在处理过程中出现错误或中断,只需要重新处理受影响的数据块,而不是整个文件。这有助于保持数据的完整性。将数据块存储到目标数据库中可以提供更好的数据管理和查询能力。目标数据库可以是关系型数据库或其他类型的数据存储系统,允许进行高级查询和分析操作。
总体而言,本发明实施例提供的文件处理方案通过分块处理、并行化处理和数据存储到目标数据库中等策略,可以显著提高对大型文件的处理效率和数据管理能力,同时降低内存占用。这些优点使其成为处理大型文件的有益技术方案。与传统的处理CSV文件的方法相比,它更适用于大规模数据处理和管理。
附图说明
图1是本发明实施例的一种文件的处理方法的步骤流程图;
图2是本发明实施例的一种基于PooledDB库和Pandas库处理超大CSV文件的方法的步骤流程图;
图3是本发明实施例的一种文件的处理系统的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例提出的上述文件处理方案是一通用性的解决方案,可用于处理各种不同类型的文件,不仅限于CSV。它通过按照预设的参数尺寸分块读取文件的多个数据块,将每个数据块分别存储到目标数据库中。这种分块处理减轻了内存压力,提高了处理效率。同时,数据存储在目标数据库中,可提供数据持久性和查询能力,使数据更易于访问和分析。此方案适用于各种文件规模,可轻松扩展到不同需求,同时提供了更多的数据处理和管理选项,以及数据库级别的安全性。这相对于传统处理大型CSV文件的技术方案更加通用、灵活,解决了内存压力问题,提高了效率和数据管理能力。
参照图1,示出了本发明实施例的一种文件的处理方法的步骤流程图。该文件的处理方法可以应用于文件处理设备,该文件的处理方法具体可以包括如下步骤:
步骤101,获取待处理的文件。
在本发明的实施例中,这一步骤旨在确定和获取需要处理的文件,无论这些文件位于本地文件系统、远程服务器、云存储或其他地方。以下是对该步骤的详细介绍:首先,需要明确文件的来源和存储位置。这可以包括本地计算机、远程服务器、云存储服务或其他文件来源。例如,如果文件存储在本地计算机上,文件路径可能是类似于"C:\data\myfile.csv"的本地文件路径;如果文件位于远程服务器上,可能需要提供服务器地址、用户名和密码等信息来获取文件。然后,确保具备足够的访问权限以获取文件。这可能涉及文件系统权限、网络访问权限或云存储凭据。例如,如果需要通过文件传输协议(FileTransfer Protocol,简称FTP)获取文件,你需要提供FTP服务器的地址、用户名和密码。如果文件位于远程位置,可能需要进行文件传输,例如使用FTP、超文本传输协议(Hyper TextTransfer Protocol,简称HTTP)、安全文件传输协议(Secure File Transfer Protocol,简称SFTP)或其他协议。这可以包括文件下载或复制文件到本地环境。接下来,在获取文件后,通常需要进行文件验证以确保文件的完整性和正确性。这可以包括检查文件的哈希值或文件大小,以确保没有损坏或未完整的部分。
举例说明:假设有一个CSV文件,存储在远程服务器上,文件路径为ftp://example.com/data/mydata.csv。为了获取该CSV文件,需要连接到example.com的FTP服务器,提供用户名和密码,然后下载文件到本地计算机。
步骤102,按照预设的参数尺寸分块读取文件的多个数据块。
在本发明的实施例中,这一步骤的目标是将大型CSV文件分成多个数据块,以便逐块进行处理。以下是该步骤的详细介绍:首先,需要确定如何分块文件。这通常基于预设的参数尺寸,例如每个数据块包含的行数或每个数据块的大小。这些参数尺寸根据系统资源和性能要求进行设置。一旦参数尺寸确定,文件被按照这些参数尺寸分块读取。而且,还可以为每个数据块分配唯一的编号或标识符,以便后续处理和管理。这有助于跟踪和区分不同的数据块。
举例说明:假设有一个包含10000行的CSV文件,希望将其分成10个数据块,每个数据块包含1000行。按照每1000行为一个数据块的规则,逐行读取文件,并将每个数据块保存在内存中。
步骤103,将每个数据块分别存储至目标数据库中。
在本发明的实施例中,在这一步骤中,每个数据块被分别存储至目标数据库,以实现数据的持久性和易访问。以下是详细介绍:首先,可以建立与目标数据库的连接。目标数据库可以是关系型数据库或其他数据存储系统。连接需要数据库的地址、凭证和其他相关信息。每个数据块被存储到目标数据库中。这通常涉及将数据块的内容转化为目标数据库可接受的格式,然后插入数据库表中。例如,使用结构化查询语言(Structured QuevyLanguage,简称SQL)语句将数据块插入到数据库表中。考虑到数据的完整性,可以使用事务管理来确保数据的一致性。如果在将数据块插入目标数据库时出现错误,可以回滚事务以确保不会留下不一致的数据。
举例说明:连接到一个名为"mydatabase"的数据库,有一个名为"data_table"的表,将每个数据块分别插入到该表中。如果在插入时发生错误,使用事务管理来确保数据表不会被不一致的数据污染。
步骤104,对目标数据库进行处理。
在本发明的实施例中,这一步骤涉及对目标数据库中的数据进行进一步处理。具体处理过程可以包括但不限于:查询、分析、统计等等。以下是详细介绍:数据查询:可以使用SQL或其他查询语言来从目标数据库中检索所需的数据。这包括条件查询、连接多个表、聚合数据等操作。数据分析:针对从目标数据库中检索的数据,进行各种数据分析操作,如统计分析、图形化展示、机器学习模型训练等。数据报告和导出:根据分析的结果,生成数据报告或将数据导出到其他文件格式,以满足特定需求。性能优化:可以针对目标数据库进行性能优化,包括索引创建、查询性能优化、存储结构优化等操作。
举例说明:从目标数据库中查询特定日期范围内的数据,然后计算销售总额并生成销售报告。报告可以以便携式文档格式(Portable Document Format,简称PDF)或电子表格(Excel)格式导出,以供分享和分析。
本发明实施例提供的一种文件的处理方案,应用于文件处理设备。该文件处理设备可以为终端设备或者服务器。该文件处理设备获取待处理的文件。然后,按照预设的参数尺寸分块读取文件的多个数据块。进而,将每个数据块分别存储至目标数据库中。最终,对目标数据库进行处理。
本发明实施例提出的上述文件处理方案,特别是适用于大型文件的方案,相对于处理超大CSV文件的传统技术方案(如逐行读取和处理、分割文件、内存映射文件等)可以带来以下有益效果:
本发明实施例采用了分块读取文件的策略,将文件分成多个数据块,然后将每个数据块分别存储到目标数据库中。这种方式可以有效地降低内存的使用,因为每个数据块的大小是可控的,不需要一次性将整个文件加载到内存中。因此,可以更高效地处理大型文件,减少处理时间。将文件分块存储到目标数据库中可以实现数据的并行化处理。不同的数据块可以同时存储和处理,从而提高数据处理的速度。这对于大型文件来说尤为重要,因为传统的逐行处理方式可能导致处理时间过长。将数据块分别存储到目标数据库中,可以确保数据的安全性和一致性。如果在处理过程中出现错误或中断,只需要重新处理受影响的数据块,而不是整个文件。这有助于保持数据的完整性。将数据块存储到目标数据库中可以提供更好的数据管理和查询能力。目标数据库可以是关系型数据库或其他类型的数据存储系统,允许进行高级查询和分析操作。
总体而言,本发明实施例提供的文件处理方案通过分块处理、并行化处理和数据存储到目标数据库中等策略,可以显著提高对大型文件的处理效率和数据管理能力,同时降低内存占用。这些优点使其成为处理大型文件的有益技术方案。与传统的处理CSV文件的方法相比,它更适用于大规模数据处理和管理。
在本发明的一种示例性实施例中,按照预设的参数尺寸分块读取文件的多个数据块的一种实施方式为,将预先为Pandas库设定的chunk size参数传递至read_csv函数,利用read_csv函数按照chunk size参数分块读取文件的多个数据块。按照预设的参数尺寸分块读取文件的多个数据块的实施方式是通过使用Pandas库的read_csv函数,结合chunksize参数来实现的。这种方法可降低内存消耗,对大型CSV文件进行高效处理。其中,Pandas库是Python(一种广泛使用的解释型、高级和通用的编程语言)中的一个数据处理和分析库。它提供了灵活且高效的数据结构(如Series和DataFrame),以及丰富的数据操作和分析工具。read_csv函数是Pandas库中用于读取CSV文件的函数。它能够将CSV文件加载到Pandas库的DataFrame中。当处理大型文件时,可以使用chunk size参数来将文件分块读取。例如:
chunk size是预设的参数尺寸,表示每个数据块包含的行数和列数。它可以根据系统资源和性能要求进行设置。较小的chunk size值将导致更多的数据块,但减小了每个数据块的内存消耗。
按照chunk size分块读取文件:通过使用read_csv函数,传递chunk size参数,CSV文件将按照chunk size的行数和列数被分割为多个数据块。每个数据块都被加载到一个独立的DataFrame中,以便进一步处理。
处理数据块:在循环中,可以逐个迭代数据块,并对每个数据块进行处理。这可以包括数据分析、清理、转换或任何其他需要的操作。处理数据块时,可以只有一个或几个数据块被加载到内存中,这降低了内存消耗,特别是当处理大型CSV文件时。
举例说明:假设有一个名为sales_data.csv的大型CSV文件,包含了数百万行销售数据。希望计算每个销售员的总销售额。首先,设置chunk_size为1000行,然后使用read_csv函数按照chunk_size分块读取文件。接下来,在循环中遍历每个数据块,并在每个数据块中计算销售员的总销售额。这种方式降低了内存消耗,能够处理大型文件,而不会耗尽系统内存。
本发明实施例通过将文件分割为多个数据块,每次只加载一个或几个数据块到内存中,降低了内存消耗,特别适用于处理大型CSV文件。分块读取文件使数据处理更高效,因为每个数据块都能够以较小的内存开销进行处理。适用于需要处理大型CSV文件的情况,而无需担心内存不足问题。
在本发明的一种示例性实施例中,在将每个数据块分别存储至目标数据库中之前,可以利用Pandas库对数据块进行清洗处理、转换处理和分析处理中的至少一种处理。其中,数据清洗是数据处理过程中的一项关键任务,旨在识别和修复数据中的错误、不一致性或不完整性。清洗可以包括去除重复项、处理缺失值、纠正数据类型错误等。Pandas库提供了一系列数据清洗工具。数据转换涉及将数据从一种形式转换为另一种形式,以满足特定需求或分析要求。这可以包括重塑数据结构、创建新的特征、进行数值计算等。Pandas库提供了各种数据转换功能。数据分析是数据科学的核心任务之一,它旨在从数据中提取洞见和信息。这包括统计分析、可视化、建模、聚类等各种技术。Pandas库结合其他数据科学库(如NumPy、Matplotlib、Scikit-Learn等)可以进行各种分析处理。
举例说明:假设有一个数据块,其中包含销售数据,包括销售日期、销售额和销售员。可以使用Pandas库进行以下处理:
数据清洗:检查数据块中是否有缺失的销售日期或销售额,并填充缺失值。还可以去除重复的数据行。
数据转换:可以创建一个新的列,表示每个销售额的百分比,或者按照不同的时间范围重塑数据,以进行季度或年度分析。
数据分析:可以将数据按销售员分组,然后计算每个销售员的总销售额,以便了解谁是销售冠军。
本发明实施例通过数据清洗,可以提高数据块的质量,减少错误和不一致性,使数据块更可靠。数据转换和重塑可以使数据块更适合特定分析或应用,提高了数据块的可用性和可操作性。通过数据分析,可以从数据块中提取有价值的信息,帮助做出决策和洞察业务趋势。
在本发明的一种示例性实施例中,将每个数据块分别存储至目标数据库中的一种实施方式为,将每个数据块在目标数据库中的目标字段,确定为每个数据块在目标数据库中的索引信息。将每个数据块分别存储至目标数据库中,并确定每个数据块在目标数据库中的目标字段为索引信息,允许对数据块进行更快速的检索和查询。
在这个实施方式中,为每个数据块在目标数据库中选择一个或多个目标字段作为索引字段。索引字段是数据库中用于加速数据检索的字段。这些字段通常包括唯一标识符或其他可用于快速定位数据的属性,如频繁查询的字段。选择合适的目标字段对于后续的查询操作非常重要。一旦确定了目标字段,将为这些字段在数据库中创建索引。索引是一种数据结构,用于加速数据的检索操作。它们允许数据库引擎更快速地找到匹配特定条件的数据,而不必扫描整个数据表。不同类型的数据库提供不同类型的索引,例如B树索引、哈希索引等。可以使用创建的索引字段来进行查询和检索操作。这些操作可以包括条件查询、排序、连接等。由于使用了索引,查询通常会更快速,因为数据库引擎可以更快地定位匹配的数据块。
举例说明:假设有一个目标数据库中的数据块,包含了大量的商品信息,包括商品标识(identification,简称ID)、商品名称、价格和库存量。决定将商品ID作为索引字段,然后在目标数据库中创建一个B树索引。这使得在需要查找特定商品信息时,数据库可以通过商品ID迅速定位到相关数据块,而不必扫描整个数据表。
本发明实施例由于使用了索引,查询数据块操作的速度大大加快,提高了数据块的可访问性。对于大型数据库,索引可以显著提高查询性能,减少了数据扫描的时间。索引字段的选择和创建使数据管理更有效,能够更容易地找到和操作数据块。索引允许执行更复杂的查询操作,包括多条件查询、连接多个表等,而仍能保持高性能。
在本发明的一种示例性实施例中,在将每个数据块分别存储至目标数据库中之前,基于PooledDB库为目标数据库创建连接池。用于优化数据库连接的管理,有助于提高数据库访问的效率和性能。其中,数据库连接池是一种管理数据库连接的技术,它允许在应用程序中创建一组可重复使用的数据库连接。连接池中的连接可以被多个线程或进程共享,以降低连接和断开连接的开销。这有助于减少数据库连接的资源占用,提高了数据库访问的效率。PooledDB库是一种Python库,用于创建和管理数据库连接池。它提供了简单的接口来配置和管理数据库连接,允许应用程序有效地使用数据库连接,而不需要每次都手动创建和关闭连接。
使用PooledDB库创建一个数据库连接池。连接池通常需要以下参数:
数据库类型。
数据库连接信息(如主机地址、端口、用户名、密码)。
最大连接数:连接池中允许的最大连接数量。
最小连接数:连接池中保持的最小连接数量。
等其他连接池配置选项。
一旦连接池被创建,可以从连接池中获取与目标数据库连接,使用它来执行数据库操作,然后将连接放回连接池中以供其他请求使用。这种连接复用方式减少了创建和关闭连接的开销。
举例说明:假设使用PooledDB库创建一个数据库连接池,配置如下:
数据库类型:MySQL
主机地址:localhost
端口:3306
用户名:myuser
密码:mypassword
最大连接数:20
最小连接数:5
一旦连接池创建完毕,可以通过从连接池中获取连接并执行数据库操作来访问数据库。连接在使用后会被放回连接池中以供其他请求使用。
本发明实施例中的连接池减少了目标数据库连接的创建和关闭开销,提高了目标数据库访问的性能。连接池有效地管理目标数据库连接,减少了资源的浪费,特别是在高并发应用中。连接池允许多次使用同一连接,减少了每次操作的连接建立时间。连接池允许配置最大和最小连接数,以避免连接数过多或过少的问题。
在本发明的一种示例性实施例中,将每个数据块分别存储至目标数据库中的一种实施方式为,在每次存储数据块至目标数据库之前,从连接池获取文件处理设备与目标数据库之间的连接关系;根据连接关系将每个数据块分别存储至目标数据库中。将每个数据块分别存储至目标数据库中的一种实施方式是在存储数据块之前从连接池获取文件处理设备与目标数据库之间的连接关系,然后根据这个连接关系将每个数据块分别存储至目标数据库中。这种方式有助于有效地管理数据库连接,降低连接建立和断开的开销,提高数据库访问的效率。
连接关系是文件处理设备与目标数据库之间的连接信息,包括数据库类型、主机地址、端口、用户名、密码等。每个连接关系对应于一个连接池,用于管理与目标数据库的连接。一旦获取了连接关系,可以使用该连接关系来将数据块存储至目标数据库中。这可以包括执行INSERT、UPDATE或其他数据库操作,将数据块的内容插入到数据库表中。
在每次处理数据块前,连接关系从连接池中获取,用于与目标数据库建立连接。一旦数据块处理完成,连接关系被释放回连接池,以供其他请求使用。这种连接复用方式减少了连接的创建和关闭开销。
举例说明:假设有一个连接池管理多个数据库连接关系,每个连接关系对应一个目标数据库。在处理数据块时,从连接池中获取与目标数据库的连接关系,然后将数据块存储至目标数据库中。例如,可以处理销售数据块,将其插入到名为sales_data的数据库表中。接着,释放连接关系以供其他数据块处理。
本发明实施例中连接关系的复用减少了连接的创建和关闭开销,提高了目标数据库访问的性能。连接池有效地管理目标数据库连接,减少了资源的浪费,特别是在高并发应用中。连接池允许多次使用同一连接关系,减少了每次操作的连接建立时间。通过连接池可以轻松管理连接关系的数量,以避免连接数过多或过少的问题。
在本发明的一种示例性实施例中,对目标数据库进行处理的一种实施方式为,按照预设周期对目标数据库进行更新处理。按照预设周期对目标数据库进行更新处理是一种数据维护和管理策略,它涉及在规定的时间间隔内对数据库执行更新操作。这种方式通常用于确保数据库中的数据保持最新,并允许对数据进行周期性的处理。其中,预设周期是规定的时间间隔,例如每小时、每天、每周或其他合适的时间段。在每个周期内,执行数据库更新操作。数据库更新处理是指对数据库中的数据进行添加、修改、删除或其他操作,以确保数据的准确性和完整性。这可以包括插入新数据、更新现有数据、删除过期数据等。数据库更新通常是自动化任务,通过调度工具或脚本来执行。这样可以确保在预设周期内自动执行维护任务,而无需手动干预。
举例说明:假设有一个电子商务网站的目标数据库,其中存储了商品信息。为了保持商品信息的新鲜性,每天晚上(每天是预设周期)执行数据库更新处理。在更新处理中,可能会发生以下操作:
同步新商品信息:将新商品信息从供应商的数据源中导入到数据库中。
更新价格:根据供应商提供的价格信息,更新现有商品的价格。
删除下架商品:删除已下架的商品信息,以保持数据库中只包含有效商品。
备份数据:在执行更新处理前,可能会执行数据库备份操作,以防止数据丢失。
本发明实施例通过定期更新处理,数据库中的数据保持准确和最新,有助于避免过时或错误的数据。自动执行数据库更新任务减少了手动干预的需求,提高了维护效率。定期更新处理可以清理无效或冗余的数据,提高数据的完整性。在执行更新处理前,可以进行数据备份,以防止数据丢失。
在本发明的一种示例性实施例中,按照预设周期对目标数据库进行更新处理的一种实施方式为,获取新文件。按照上述参数尺寸分块读取新文件的多个新数据块。为每个新数据块创建索引信息。根据数据块的索引信息和新数据块的索引信息,对目标数据库进行增量更新处理。在每个预设周期内,获取新的CSV文件。这些新的CSV文件可能包含了新数据块,例如新的销售记录、日志文件等。获取到新文件后,根据上述预设的参数尺寸,将新文件分块读取成多个数据块。对于每个新数据块创建索引信息。索引信息可以包括标识符、时间戳、唯一键等,用于唯一标识每个新数据块。这些索引信息将用于与目标数据库中的数据块进行匹配和更新。使用新数据块的索引信息和目标数据库中已有数据块的索引信息,执行增量更新处理。这可以包括以下操作:
插入新数据:如果新数据块中的数据在目标数据库中不存在,将其插入到目标数据库中。
更新现有数据:如果数据已存在但需要更新,执行更新操作,以保持数据的最新性。
删除过时数据:如果目标数据库中的数据在新数据块中不再存在,执行删除操作,以保持数据库的完整性。
举例说明:假设有一个电子商务网站,每天获取销售数据的新文件。这些新文件包含了最新的销售记录。按照预设周期(每天),系统执行以下步骤:
1.获取新文件:从销售数据源获取当天的新销售记录文件。
2.分块读取新文件:将新文件按照每小时分块读取,生成多个新数据块,每个数据块包含了一个小时的销售记录。
3.创建索引信息:为每个新数据块创建索引,包括日期和时间戳。
4.增量更新处理:使用新数据块的索引信息和目标数据库中已有数据块的索引信息,执行增量更新处理。这包括将新销售记录插入到数据库中,更新已存在的记录,以及删除不再存在的记录。
本发明实施例通过增量更新处理,使得目标数据库中的数据保持最新,确保对最新信息的访问。定期处理可以清理不再需要的数据,保持目标数据库的完整性。只需传输和处理新数据,而不是整个目标数据库,减少了网络传输和处理开销。自动执行周期性的更新处理,减少手动干预,提高维护效率。
在本发明的一种示例性实施例中,对目标数据库进行增量更新处理的一种实施方式为,判断具有相同索引信息的新数据块和数据块的数据内容是否相同;若具有相同索引信息的新数据块和数据块的数据内容不相同,则将数据块的至少一个字段的字段内容替换为新数据块中对应字段的字段内容。对目标数据库进行增量更新处理,其中判断具有相同索引信息的新数据块和数据块的数据内容是否相同,并在不同的情况下执行替换操作,是本发明实施例中的一种数据维护策略。增量更新处理是指对目标数据库中的数据执行部分更新操作,以保持数据的最新性和完整性。这通常包括插入新数据、更新现有数据或删除不再需要的数据。
在实际应用过程中,对于每个新数据块,根据其索引信息,检查目标数据库中是否已经存在具有相同索引信息的数据块。如果具有相同索引信息的新数据块和数据块存在,执行数据内容比较。这涉及比较字段值,以确定是否存在不同之处。如果新数据块和数据块的数据内容不相同,执行替换操作。这可以包括将数据块的至少一个字段的字段内容替换为新数据块中对应字段的字段内容,以保持数据的一致性。
举例说明:假设有一个库存管理系统的目标数据库,其中包含产品的库存信息。每天会接收新的库存数据文件。按照预设周期(每天),从库存数据源获取新的库存数据块,包括产品标识符、库存数量等信息。判断具有相同索引信息的数据块是否存在:根据产品标识符检查目标数据库中是否已存在具有相同索引信息(产品标识符)的数据块。如果已存在的数据块与新数据块具有相同的索引信息,执行数据内容比较,以检查库存数量是否有变化。如果库存数量不相同,将目标数据库中的数据块的库存数量字段内容替换为新数据块中的库存数量,以反映最新库存情况。
本发明实施例通过比较和替换操作,保持了目标数据库中的数据一致性,确保库存信息是最新的。只更新发生变化的数据,减少了冗余数据的存储。只需传输和处理发生变化的数据,而不是整个目标数据库,降低了网络传输和处理开销。自动执行周期性的增量更新处理,减少手动干预,提高维护效率。
在本发明的一种示例性实施例中,对目标数据库进行增量更新处理的一种实施方式为,判断目标数据库中是否存在与新数据块的索引信息相同的数据块;若目标数据库中不存在与新数据块的索引信息相同的数据块,则在目标数据库中插入新数据块。对目标数据库进行增量更新处理,其中判断目标数据库中是否存在与新数据块的索引信息相同的数据块,并在目标数据库中插入新数据块,是本发明实施例中的另一种数据维护策略。在实际应用过程中,对于每个新数据块,检查目标数据库中是否已存在具有相同索引信息(如相同的标识符)的数据块。如果目标数据库中不存在与新数据块的索引信息相同的数据块,执行插入操作。这包括将新数据块插入到数据库中,以保持数据库的最新性。
举例说明:假设有一个电子商务网站的目标数据库,其中存储了产品信息。每天会接收新的产品数据文件,其中包含产品的标识符、名称、价格等信息。按照预设周期(每天),从产品数据源获取新的产品数据块,包括产品标识符、名称、价格等信息。根据产品标识符检查目标数据库中是否已存在具有相同索引信息(产品标识符)的数据块。如果目标数据库中不存在具有相同索引信息的数据块,将新产品数据块插入到数据库中,以确保最新的产品信息已记录。
本发明实施例通过插入新数据块,保持了目标数据库的完整性,确保包含最新信息的记录。在更新处理中,只插入新数据,而不修改现有数据,从而保持了数据的一致性。只需传输和处理新数据,而不是整个目标数据库,降低了网络传输和处理开销。自动执行周期性的增量更新处理,减少手动干预,提高维护效率。
基于上述关于一种文件的处理方法的实施例的相关说明,下面介绍一种基于PooledDB库和Pandas库处理超大CSV文件的方法。参照图2,示出了本发明实施例的一种基于PooledDB库和Pandas库处理超大CSV文件的方法的步骤流程图。一种基于PooledDB库和Pandas库处理超大CSV文件的方法具体可以包括如下步骤:
步骤201,获取CSV文件。
步骤202,设置Pandas库的chunk size参数。
步骤203,根据chunk size参数读取CSV文件的数据块。
步骤204,对每个数据块进行解析,从数据块中提取出需要的字段,对字段中的内容进行分析处理。
步骤205,利用PooledDB库创建数据库连接池,从数据库连接池中获取一个与目标数据库的连接。
步骤206,基于连接将分析处理后的数据块存储至目标数据库的数据表中。
步骤207,获取新CSV文件。
步骤208,为新CSV文件创建索引。
步骤209,根据新CSV文件的索引和目标数据库中已存在的数据块的索引,对目标数据库进行增量更新。
步骤210,在对目标数据库进行操作之后,释放数据库连接池中的连接。
上述基于PooledDB库和Pandas库的处理超大CSV文件的方法,使用Pandas库的chunk size参数,可以将CSV文件分块读取,每次只加载一个数据块到内存中,显著减少了内存使用,特别对于超大CSV文件而言,避免了内存溢出问题。分块读取CSV文件和并行处理数据块,大大提高了处理效率。同时,Pandas库提供了丰富的数据处理和分析工具,有助于高效地处理数据块。可以对每个数据块进行解析、字段提取和内容分析处理。这允许对数据进行清洗、转换和规范化,以确保数据的质量和一致性。使用PooledDB库创建数据库连接池,有助于管理数据库连接,减少了连接建立和断开的开销。这提高了数据库访问的效率和资源利用率。增量更新操作可以确保目标数据库中的数据保持最新。只有新数据需要进行更新,这减少了不必要的数据传输和处理,降低了系统开销。通过增量更新和清洗处理,有助于维护数据的完整性,确保数据的准确性和一致性。只需传输新CSV文件和增量更新数据,而不是整个CSV文件或数据库,降低了网络传输和存储开销。使用Pandas库和数据库连接池,具有较高的灵活性,可以适应不同的数据处理需求和数据库类型。
总之,本发明实施例结合了Pandas库的数据处理能力和PooledDB库的数据库连接管理,能够高效、安全、自动地处理超大CSV文件,并确保数据的及时性和完整性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明实施例的一种文件的处理系统的结构框图。该文件的处理系统应用于文件处理设备,该文件的处理系统具体可以包含如下模块。
文件获取模块31,用于获取待处理的文件;
数据块读取模块32,用于按照预设的参数尺寸分块读取所述文件的多个数据块;
数据块存储模块33,用于将每个所述数据块分别存储至目标数据库中;
数据库处理模块34,用于对所述目标数据库进行处理。
在本发明的一种示例性实施例中,所述数据块读取模块32,包括:
参数传递模块,用于将预先为Pandas库设定的chunk size参数传递至read_csv函数;
数据块分块读取模块,用于利用所述read_csv函数按照所述chunk size参数分块读取所述文件的多个所述数据块。
在本发明的一种示例性实施例中,所述系统还包括:
数据块处理模块,用于在所述数据块存储模块33将每个所述数据块分别存储至目标数据库中之前,利用所述Pandas库对所述数据块进行清洗处理、转换处理和分析处理中的至少一种处理。
在本发明的一种示例性实施例中,所述数据块存储模块33,用于将每个所述数据块在所述目标数据库中的目标字段,确定为每个所述数据块在所述目标数据库中的索引信息。
在本发明的一种示例性实施例中,所述系统还包括:
连接池创建模块,用于在所述数据块存储模块33将每个所述数据块分别存储至目标数据库中之前,基于PooledDB库为所述目标数据库创建连接池。
在本发明的一种示例性实施例中,所述数据块存储模块33,包括:
连接关系获取模块,用于在每次存储所述数据块至所述目标数据库之前,从所述连接池获取所述文件处理设备与所述目标数据库之间的连接关系;
存储模块,用于根据所述连接关系将每个所述数据块分别存储至所述目标数据库中。
在本发明的一种示例性实施例中,所述数据库处理模块34,用于按照预设周期对所述目标数据库进行更新处理。
在本发明的一种示例性实施例中,所述数据库处理模块34,包括:
新文件获取模块,用于获取新文件;
新数据块读取模块,用于按照所述参数尺寸分块读取所述新文件的多个新数据块;
新索引创建模块,用于为每个所述新数据块创建索引信息;
增量更新处理模块,用于根据所述数据块的索引信息和所述新数据块的索引信息,对所述目标数据库进行增量更新处理。
在本发明的一种示例性实施例中,所述增量更新处理模块,包括:
数据内容判断模块,用于判断具有相同索引信息的所述新数据块和所述数据块的数据内容是否相同;
字段内容替换模块,用于若具有相同索引信息的所述新数据块和所述数据块的数据内容不相同,则将所述数据块的至少一个字段的字段内容替换为所述新数据块中对应字段的字段内容。
在本发明的一种示例性实施例中,所述增量更新处理模块,包括:
索引信息判断模块,用于判断所述目标数据库中是否存在与所述新数据块的索引信息相同的所述数据块;
新数据块插入模块,用于若所述目标数据库中不存在与所述新数据块的索引信息相同的所述数据块,则在所述目标数据库中插入所述新数据块。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种文件的处理方法和一种文件的处理系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种文件的处理方法,其特征在于,应用于文件处理设备,所述方法包括:
获取待处理的文件;
按照预设的参数尺寸分块读取所述文件的多个数据块;
将每个所述数据块分别存储至目标数据库中;
对所述目标数据库进行处理。
2.根据权利要求1所述的方法,其特征在于,所述按照预设的参数尺寸分块读取所述文件的多个数据块,包括:
将预先为Pandas库设定的chunk size参数传递至read_csv函数;
利用所述read_csv函数按照所述chunk size参数分块读取所述文件的多个所述数据块。
3.根据权利要求2所述的方法,其特征在于,在所述将每个所述数据块分别存储至目标数据库中之前,所述方法还包括:
利用所述Pandas库对所述数据块进行清洗处理、转换处理和分析处理中的至少一种处理。
4.根据权利要求1所述的方法,其特征在于,所述将每个所述数据块分别存储至目标数据库中,包括:
将每个所述数据块在所述目标数据库中的目标字段,确定为每个所述数据块在所述目标数据库中的索引信息。
5.根据权利要求1所述的方法,其特征在于,在所述将每个所述数据块分别存储至目标数据库中之前,所述方法还包括:
基于PooledDB库为所述目标数据库创建连接池。
6.根据权利要求5所述的方法,其特征在于,所述将每个所述数据块分别存储至目标数据库中,包括:
在每次存储所述数据块至所述目标数据库之前,从所述连接池获取所述文件处理设备与所述目标数据库之间的连接关系;
根据所述连接关系将每个所述数据块分别存储至所述目标数据库中。
7.根据权利要求1所述的方法,其特征在于,所述对所述目标数据库进行处理,包括:
按照预设周期对所述目标数据库进行更新处理。
8.根据权利要求7所述的方法,其特征在于,所述按照预设周期对所述目标数据库进行更新处理,包括:
获取新文件;
按照所述参数尺寸分块读取所述新文件的多个新数据块;
为每个所述新数据块创建索引信息;
根据所述数据块的索引信息和所述新数据块的索引信息,对所述目标数据库进行增量更新处理。
9.根据权利要求8所述的方法,其特征在于,所述对所述目标数据库进行增量更新处理,包括:
判断具有相同索引信息的所述新数据块和所述数据块的数据内容是否相同;
若具有相同索引信息的所述新数据块和所述数据块的数据内容不相同,则将所述数据块的至少一个字段的字段内容替换为所述新数据块中对应字段的字段内容。
10.根据权利要求8所述的方法,其特征在于,所述对所述目标数据库进行增量更新处理,包括:
判断所述目标数据库中是否存在与所述新数据块的索引信息相同的所述数据块;
若所述目标数据库中不存在与所述新数据块的索引信息相同的所述数据块,则在所述目标数据库中插入所述新数据块。
11.一种文件的处理系统,其特征在于,应用于文件处理设备,所述系统包括:
文件获取模块,用于获取待处理的文件;
数据块读取模块,用于按照预设的参数尺寸分块读取所述文件的多个数据块;
数据块存储模块,用于将每个所述数据块分别存储至目标数据库中;
数据库处理模块,用于对所述目标数据库进行处理。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1至10任一项所述的文件的处理方法。
13.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1至10任一项所述的文件的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311474876.5A CN117520266A (zh) | 2023-11-07 | 2023-11-07 | 文件的处理方法、系统和电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311474876.5A CN117520266A (zh) | 2023-11-07 | 2023-11-07 | 文件的处理方法、系统和电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117520266A true CN117520266A (zh) | 2024-02-06 |
Family
ID=89761860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311474876.5A Pending CN117520266A (zh) | 2023-11-07 | 2023-11-07 | 文件的处理方法、系统和电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520266A (zh) |
-
2023
- 2023-11-07 CN CN202311474876.5A patent/CN117520266A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977110B (zh) | 数据清洗方法、装置及设备 | |
CN111400408B (zh) | 数据同步方法、装置、设备及存储介质 | |
US9953102B2 (en) | Creating NoSQL database index for semi-structured data | |
US20190258625A1 (en) | Data partitioning and ordering | |
CN105144080B (zh) | 用于元数据管理的系统 | |
US9740727B2 (en) | Method and a system for replicating databases | |
EP3365810A1 (en) | System and method for automatic inference of a cube schema from a tabular data for use in a multidimensional database environment | |
CN109669925B (zh) | 非结构化数据的管理方法及装置 | |
CN114461603A (zh) | 多源异构数据融合方法及装置 | |
US20170300517A1 (en) | Index maintenance management of a relational database management system | |
CN112579586A (zh) | 数据处理方法、装置、设备及存储介质 | |
US20180032567A1 (en) | Method and device for processing data blocks in a distributed database | |
US20240095256A1 (en) | Method and system for persisting data | |
CN112579578A (zh) | 基于元数据的数据质量管理方法、装置、系统及服务器 | |
CN116303628B (zh) | 基于Elasticsearch的告警数据查询方法、系统及设备 | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
Dvoretskyi et al. | Data Utility Assessment while Optimizing the Structure and Minimizing the Volume of a Distributed Database Node. | |
CN117520266A (zh) | 文件的处理方法、系统和电子设备及存储介质 | |
CN115599871A (zh) | 基于湖仓一体的数据处理系统和方法 | |
CN110851437A (zh) | 一种存储方法、装置及设备 | |
CN114925054A (zh) | 一种基于元模型的元数据管理系统及方法 | |
CN114490865A (zh) | 数据库同步方法、装置、设备及计算机存储介质 | |
Seenivasan | Improving the Performance of the ETL Jobs | |
CN113553320B (zh) | 数据质量监控方法及装置 | |
Kumar et al. | Optimization Of Mysql Database |
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 |