CN116932497A - 一种文件合并方法及装置 - Google Patents
一种文件合并方法及装置 Download PDFInfo
- Publication number
- CN116932497A CN116932497A CN202310919449.7A CN202310919449A CN116932497A CN 116932497 A CN116932497 A CN 116932497A CN 202310919449 A CN202310919449 A CN 202310919449A CN 116932497 A CN116932497 A CN 116932497A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- target
- data lake
- lake
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000007906 compression Methods 0.000 claims abstract description 16
- 230000006835 compression Effects 0.000 claims abstract description 15
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000002699 waste material Substances 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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/17—Details of further file system functions
-
- 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/17—Details of further file system functions
- G06F16/1724—Details of de-fragmentation performed by the file system
-
- 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/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件合并方法,包括:获取多个待合并数据湖文件中存储的初始数据,初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据。将初始数据直接作为目标数据湖文件中的存储数据,并根据存储数据在目标数据湖文件中的存储位置,得到目标数据湖文件的目标元数据。将存储数据和目标元数据写入目标数据湖文件,从而得到由多个待合并数据湖文件合并得到的目标数据湖文件。利用本申请实施例的方案,在将多个待合并数据湖文件合并为目标数据湖文件时,无需首先对待合并数据湖文件中存储的数据进行处理,而是可以直接将原始数据作为目标数据湖文件中的存储数据,从而提升了将多个待合并数据湖文件合并为目标数据湖文件的效率。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种文件合并方法及装置。
背景技术
湖仓一体是一种新的数据管理模式,将数据仓库和数据湖两者之间的差异进行融合,并将数据仓库构建在数据湖上,形成湖仓系统。湖仓系统可以有效简化数据的基础架构,在提升数据存储弹性和质量的同时还能降低成本,减少数据冗余。湖仓系统的底层数据一般通过Parquet格式保存在Hadoop分布式文件系统(HadoopDistributedFileSystem,HDFS)集群中。
随着数据规模和应用场景的不断扩大,HDFS集群会出现一些问题,其中较为常见的问题之一就是小文件问题。其中:小文件指的是文件大小远远小于一个数据块大小的文件。存储大量小文件可能会导致多方面的问题,包括元数据数量增加、存储空间浪费、数据复制效率低下、访问效率低下和系统管理复杂度增加等。
为了避免存储大量小文件而导致的上述问题,可以对小文件进行合并,目前,对小文件进行合并的效率较低,因此,急需一种方案,能够解决上述问题。
发明内容
为了解决或者部分解决上述技术问题,本申请实施例提供了一种文件合并放及装置。
第一方面,本申请实施例提供了一种文件合并方法,所述方法包括:
获取多个待合并数据湖文件中存储的初始数据,所述初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据;
将所述初始数据直接作为目标数据湖文件中的存储数据;
根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据;
将所述存储数据和所述目标元数据写入所述目标数据湖文件。
可选的,所述将所述存储数据和所述目标元数据写入所述目标数据湖文件,包括:
首先将所述初始数据直接写入目标数据湖文件,而后将所述目标元数据写入至所述目标数据湖文件。
可选的,所述根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据,包括:
在将所述初始数据直接写入目标数据湖文件之后,根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。
可选的,在获取多个数据湖文件中存储的初始数据之前,所述方法还包括:
接收目标结构化查询语言语句,所述目标结构化查询语言语句用于指定待合并数据湖文件;
根据所述目标结构化查询语言语句,确定所述多个待合并数据湖文件。
可选的,所述目标结构化查询语言语句中还包括数据湖文件合并语句,所述数据湖文件合并语句用于指示对所述多个待合并数据湖文件进行合并。
可选的,所述目标结构化查询语言语句中还包括文件大小设置语句,所述文件大小设置语句用于指示所述目标数据湖文件的大小为目标大小,所生成的所述目标数据湖文件的大小为所述目标大小。
可选的,所述获取多个待合并数据湖文件中存储的初始数据,包括:
遍历所述多个待合并数据湖文件,针对每个待合并数据湖文件,执行如下操作:
根据所述待合并数据湖文件的元数据,确定所述待合并数据湖文件中的行组在所述待合并数据湖文件中的偏移量与大小;
根据所述行组的元数据,确定所述待合并数据湖文件中的列块在所述待合并数据湖文件中的偏移量与大小;
获取所述列块中的数据作为所述初始数据。
第二方面,本申请实施例提供了一种文件合并装置,所述装置包括:
获取单元,用于获取多个待合并数据湖文件中存储的初始数据,所述初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据;
第一确定单元,用于将所述初始数据直接作为目标数据湖文件中的存储数据;
第二确定单元,用于根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据;
写入单元,用于将所述存储数据和所述目标元数据写入所述目标数据湖文件。
可选的,所述写入单元,用于:
首先将所述初始数据直接写入目标数据湖文件,而后将所述目标元数据写入至所述目标数据湖文件。
可选的,所述第二确定单元,用于:
在将所述初始数据直接写入目标数据湖文件之后,根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。
可选的,所述装置还包括:
接收单元,用于在获取多个数据湖文件中存储的初始数据之前,接收目标结构化查询语言语句,所述目标结构化查询语言语句用于指定待合并数据湖文件;
第三确定单元,用于根据所述目标结构化查询语言语句,确定所述多个待合并数据湖文件。
可选的,所述目标结构化查询语言语句中还包括数据湖文件合并语句,所述数据湖文件合并语句用于指示对所述多个待合并数据湖文件进行合并。
可选的,所述目标结构化查询语言语句中还包括文件大小设置语句,所述文件大小设置语句用于指示所述目标数据湖文件的大小为目标大小,所生成的所述目标数据湖文件的大小为所述目标大小。
可选的,所述获取单元,用于:
遍历所述多个待合并数据湖文件,针对每个待合并数据湖文件,执行如下操作:
根据所述待合并数据湖文件的元数据,确定所述待合并数据湖文件中的行组在所述待合并数据湖文件中的偏移量与大小;
根据所述行组的元数据,确定所述待合并数据湖文件中的列块在所述待合并数据湖文件中的偏移量与大小;
获取所述列块中的数据作为所述初始数据。
第三方面,本申请实施例提供了一种文件合并设备,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如以上第一方面中任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括指令,所述指令指示设备执行如以上第一方面中任一项所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行以上第一方面任一项所述的方法。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供了一种文件合并方法,该方法包括:获取多个待合并数据湖文件中存储的初始数据,所述初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据。获取所述初始数据之后,可以将所述初始数据直接作为目标数据湖文件中的存储数据,并根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。在得到所述存储数据和所述目标元数据之后,可以将所述存储数据和所述目标元数据写入所述目标数据湖文件,从而得到由所述多个待合并数据湖文件合并得到的目标数据湖文件。由此可见,利用本申请实施例的方案,在将多个待合并数据湖文件合并为目标数据湖文件时,无需首先对待合并数据湖文件中存储的数据进行处理,而是可以直接将所述原始数据作为目标数据湖文件中的存储数据,从而提升了将多个待合并数据湖文件合并为目标数据湖文件的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为传统技术中执行文件合并方法的流程示意图;
图2为本申请实施例提供的一种数据湖文件中存储的内容的结构示意图;
图3为本申请实施例提供的一种将原始数据表存储为数据湖文件的示意图;
图4为本申请实施例提供的一种文件合并方法的流程示意图;
图5为本申请实施例提供的一种文件合并方法的场景示意图;
图6为本申请实施例提供的一种文件合并装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的发明人经过研究发现,传统技术对数据湖文件进行合并的效率较低。具体地,可以参考图1进行理解,图1示出了传统技术中执行文件合并方法的流程示意图。
如图1所示,在将多个待合并数据湖文件(例如Parquet小文件)进行合并时,可以首先对多个待合并数据湖文件中的数据进行反编码、反压缩以及反序列化操作,得到待合并数据,而后,将该待合并数据进行合并时,又需要将该待合并数据进行序列化、压缩以及编码操作,从而得到合并数据湖文件。
而前述对数据进行反编码、反压缩、反序列化、序列化、压缩以及编码的过程较为繁琐,从而导致文件合并的效率较低。因此,急需一种方案,能够解决上述问题,以提升文件合并的效率。
鉴于此,本申请实施例提供了一种文件合并方法及装置。
在介绍本申请实施例提供的文件合并方法及装置之前,首先对数据湖文件进行介绍。
参见图2,图2为本申请实施例提供的一种数据湖文件中存储的内容的结构示意图。如图2所示:
数据湖文件包括头(header)、数据(data)和页脚(footer)三个部分,其中:
Header的内容很少,只有4个字节,是一个固定的魔术字(magic number),用来指示这是一个Parquet文件。
data用于存储数据,原始数据在被存储至Parquet文件时,首先会按照行切分成多个行组(RowGroup),例如在图2中,3个RowGroup0可能保原始数据表中第1行至第100行的数据。
在每个RowGroup内,又会按列切分为多个列块(ColumnChunk),对应原始数据表中的各个列,例如在图2中,ColumnChunk0中可能保存了RowGroup1中第1列的数据。
ColumnChunk内部还可进一步划分为多个页(Page),每个Page包括页头(PageHeader)和页数据(Page Data),Page Header用于描述该Page的编码信息。
Footer主要用来记录元数据,元数据包括每个RowGroup、每个ColumnChunk在数据湖文件中的存储位置,该存储位置可以通过偏移量(offset)、大小(size)等信息体现,通过Footer可以快速定位到数据在文件中的位置,按需读取。
需要说明的是,图2只是为了方法理解数据湖文件的内容结构而示出,其并不构成对本申请实施例的限定,一个数据湖文件不限于包括3个RowGroup,一个RowGroup也不限于能够被拆分为3个ColumnChunk,一个ColumnChunk所包括的Page的数量也不限于图2所示的3个。
参见图3,该图为本申请实施例提供的一种将原始数据表存储为数据湖文件的示意图。图3示出了包括2行3列的原始数据表以及根据其生成的数据湖文件,关于该数据湖文件中包括的内容,可以参考上文的相关描述,此处不做重复描述。
下面结合附图,详细说明本申请的各种非限制性实施方式。
示例性方法
参见图4,该图为本申请实施例提供的一种文件合并方法的流程示意图。在本实施例中,所述方法例如可以由服务端执行。作为一个示例,所述方法例如可以包括以下步骤:S101-S104。
S101:获取多个待合并数据湖文件中存储的初始数据,所述初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据。
此处提及的初始数据,指的是待合并数据湖文件中的data。在本申请实施例中,可以直接从所述多个待合并数据湖文件中读取所述多个待合并数据湖文件中存储的初始数据。
在一个示例中,在执行S101之前,还可以确定所述多个待合并数据湖文件。在一个具体的示例中,所述多个待合并数据湖文件是预先指定的。在又一个具体的示例中,所述多个待合并数据湖文件是服务端基于目标结构化查询语言(Structured Query Language,SQL)语句确定的。具体的,所述服务端可以接收用于指定待合并数据湖文件的目标SQL语句,该目标SQL语句例如包括所述多个待合并数据湖文件所需满足的条件,所述服务端接收所述目标SQL语句之后,可以根据所述目标SQL语句执行查询操作,从而得到所述多个待合并数据湖文件。本申请实施例不具体限定所述待合并数据湖文件所需满足的条件,该条件例如可以是数据湖文件生成的日期,也可以是数据湖文件的大小,等等。
举例说明:所述目标SQL语句可以是:ALTER TABLE$tableName PARTITION(date='***'),该目标SQL语句指定了该多个待合并数据湖文件的日期,对于这种情况,服务端可以将日期为“***”的数据湖文件确定为待合并数据湖文件。
在一个示例中,所述目标SQL语句中还可以包括数据湖文件合并语句,该数据湖文件合并语句用于指示对所述多个待合并数据湖文件进行合并。对于这种情况,该目标SQL语句不仅可以用于指定待合并数据湖文件,还可以用于指定对待合并数据湖文件执行合并操作。对于这种情况,服务端接收到所述目标SQL语句之后,一方面可以确定所述多个待合并数据湖文件,另一方面,可以执行S101-S104以实现对所述多个待合并数据湖文件的合并。
举例说明:所述数据湖文件合并语句可以是:COMPACT'FastCompactionStrategy',其中:快速合并策略(FastCompactionStrategy)指示利用本申请实施例提供的文件合并方法对所述多个待合并数据湖文件进行合并。
在又一个示例中,所述目标SQL语句中还可以包括文件大小设置语句,该文件大小设置语句用于设置合并后得到的目标数据湖文件的大小为目标大小。对于这种情况,服务端在对所述多个待合并数据湖文件进行合并时,所生成的目标数据湖文件的大小为所述目标大小。对于这种情况,该目标SQL语句不仅可以用于指定待合并数据湖文件,还可以用于指定对待合并数据湖文件进行合并所得到的目标数据湖文件的大小。
在一个示例中,所述服务端可以基于所述多个待合并数据湖文件的元数据,确定所述多个待合并数据湖文件中的数据在所述待合并数据湖文件中的存储位置,并进一步从对应的存储位置中读取所述初始数据。在一个具体的示例中,S101在具体实现时,可以遍历所述多个待合并数据湖文件中的每个待合并数据湖文件,并对每个待合并数据湖文件分别执行如下步骤A1-A3。
A1:根据所述待合并数据湖文件的元数据,确定所述待合并数据湖文件中的行组在所述待合并数据湖文件中的偏移量与大小。
在一个示例中,可以读取所述待合并数据湖文件的元数据,从而确定所述待合并数据湖文件中各个行组在所述待合并数据湖文件中的偏移量与大小。
A2:根据所述行组的元数据,确定所述待合并数据湖文件中的列块在所述待合并数据湖文件中的偏移量与大小。
在一个示例中,针对各个行组,可以基于该行组的元数据,确定该行数所包括的列块在所述待合并数据湖文件中的偏移量与大小,从而得到所述待合并数据湖文件中的各个列块在所述待合并数据湖文件中的偏移量与大小。
A3:获取所述列块中的数据作为所述初始数据。
获取列块在所述待合并数据湖文件中的偏移量与大小之后,可以基于所述偏移量和大小,确定所述列块在所述待合并数据湖文件中的存储位置,相应的,可以从所确定的存储位置中读取所述列块中的数据作为所述初始数据。其中,所述列块中的数据,可以是二进制片段。
在一个示例中,所述服务端可以首先创建目标数据湖文件,并向目标数据湖文件中写入header(即magic number)。进一步地,执行S102及后续步骤。
S102:将所述初始数据直接作为目标数据湖文件中的存储数据。
S103:根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。
S104:将所述存储数据和所述目标元数据写入所述目标数据湖文件。
在本申请实施例中,为了提升对数据湖文件进行合并的效率,在本申请实施例中,获取所述初始数据之后,不再对所述初始数据进行反编码、反压缩、反序列化、序列化、压缩以及编码等其中一项或者多项处理,而是直接将所述初始数据直接作为目标数据湖文件中的存储数据,从而减少对数据的处理,提升文件合并效率。
如前对于数据湖文件的描述可知,数据湖文件包括header、data和footer,footer用于存储元数据。因此,在本申请实施例中,还可以基于所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。在一个具体的示例中,所述存储数据在所述目标数据湖文件中的位置,可以包括前述初始数据中各个行组在所述目标数据湖文件中的偏移量和大小。在确定所述存储数据和所述目标元数据之后,可以将所述存储数据和所述目标元数据写入所述目标数据湖文件,从而得到由多个待合并数据湖文件合并得到的目标数据湖文件。
在本申请实施例中,S103在具体实现时,可以有多种实现方式。
在一个示例中,可以根据所述存储数据的大小,预先规划其在目标数据湖文件中的存储位置,而后,基于规划得到的所述存储位置,得到所述目标元数据。对于这种情况,S104在具体实现时,例如可以同步将所述存储数据和所述目标元数据写入至所述目标数据湖文件中。
在又一个示例中,在执行S102之后,可以首先将所述初始数据直接写入所述目标数据湖文件,而后,根据所述初始数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。对于这种情况,在将初始数据写入目标数据湖文件之后,即可获得所述初始数据在目标数据湖文件中的存储位置,无需预先规划初始数据在所述目标数据湖文件中的存储位置。相应的,对于这种情况,在根据所述初始数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据之后,可以进一步将所述目标元数据写入至所述目标数据湖文件,从而得到由多个待合并数据湖文件合并得到的目标数据湖文件。
通过以上描述可知,利用本申请实施例的方案,在将多个待合并数据湖文件合并为目标数据湖文件时,无需待合并数据湖文件中存储的数据进行反编码、反压缩、反序列化、序列化、压缩以及编码等其中一项或者多项处理,而是可以直接将所述原始数据作为目标数据湖文件中的存储数据,从而提升了将多个待合并数据湖文件合并为目标数据湖文件的效率。
接下来,结合具体示例,对本申请实施例提供的文件合并方法进行介绍。
参见图5,该图为本申请实施例提供的一种文件合并方法的场景示意图。如图5所示,待合并Parquet文件1和待合并Parquet文件2被合并为目标Parquet文件,待合并Parquet文件1中的数据510和520直接被复制到目标Parquet文件中,作为目标Parquet文件的存储数据,待合并Parquet文件2中的数据530直接被复制到目标Parquet文件中,作为目标Parquet文件的存储数据。
示例性设备
基于以上实施例提供的方法,本申请实施例还提供了一种装置,以下结合附图介绍该装置。
参见图6,该图为本申请实施例提供的一种文件合并装置的结构示意图。所述装置600例如可以具体包括:获取单元601、第一确定单元602、第二确定单元603和写入单元604。
获取单元601,用于获取多个待合并数据湖文件中存储的初始数据,所述初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据;
第一确定单元602,用于将所述初始数据直接作为目标数据湖文件中的存储数据;
第二确定单元603,用于根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据;
写入单元604,用于将所述存储数据和所述目标元数据写入所述目标数据湖文件。
可选的,所述写入单元604,用于:
首先将所述初始数据直接写入目标数据湖文件,而后将所述目标元数据写入至所述目标数据湖文件。
可选的,所述第二确定单元603,用于:
在将所述初始数据直接写入目标数据湖文件之后,根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。
可选的,所述装置还包括:
接收单元,用于在获取多个数据湖文件中存储的初始数据之前,接收目标结构化查询语言语句,所述目标结构化查询语言语句用于指定待合并数据湖文件;
第三确定单元,用于根据所述目标结构化查询语言语句,确定所述多个待合并数据湖文件。
可选的,所述目标结构化查询语言语句中还包括数据湖文件合并语句,所述数据湖文件合并语句用于指示对所述多个待合并数据湖文件进行合并。
可选的,所述目标结构化查询语言语句中还包括文件大小设置语句,所述文件大小设置语句用于指示所述目标数据湖文件的大小为目标大小,所生成的所述目标数据湖文件的大小为所述目标大小。
可选的,所述获取单元601,用于:
遍历所述多个待合并数据湖文件,针对每个待合并数据湖文件,执行如下操作:
根据所述待合并数据湖文件的元数据,确定所述待合并数据湖文件中的行组在所述待合并数据湖文件中的偏移量与大小;
根据所述行组的元数据,确定所述待合并数据湖文件中的列块在所述待合并数据湖文件中的偏移量与大小;
获取所述列块中的数据作为所述初始数据。
由于所述装置600是与以上方法实施例提供的方法对应的装置,所述装置600的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置600的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
本申请实施例还提供了一种文件合并设备,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行以上方法实施例提供的文件合并方法。
本申请实施例提供了一种计算机可读存储介质,包括指令,所述指令指示设备执行以上方法实施例提供的文件合并方法。
本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行以上方法实施例提供的文件合并方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种文件合并方法,其特征在于,所述方法包括:
获取多个待合并数据湖文件中存储的初始数据,所述初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据;
将所述初始数据直接作为目标数据湖文件中的存储数据;
根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据;
将所述存储数据和所述目标元数据写入所述目标数据湖文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述存储数据和所述目标元数据写入所述目标数据湖文件,包括:
首先将所述初始数据直接写入目标数据湖文件,而后将所述目标元数据写入至所述目标数据湖文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据,包括:
在将所述初始数据直接写入目标数据湖文件之后,根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据。
4.根据权利要求1所述的方法,其特征在于,在获取多个数据湖文件中存储的初始数据之前,所述方法还包括:
接收目标结构化查询语言语句,所述目标结构化查询语言语句用于指定待合并数据湖文件;
根据所述目标结构化查询语言语句,确定所述多个待合并数据湖文件。
5.根据权利要求4所述的方法,其特征在于,所述目标结构化查询语言语句中还包括数据湖文件合并语句,所述数据湖文件合并语句用于指示对所述多个待合并数据湖文件进行合并。
6.根据权利要求4或5所述的方法,其特征在于,所述目标结构化查询语言语句中还包括文件大小设置语句,所述文件大小设置语句用于指示所述目标数据湖文件的大小为目标大小,所生成的所述目标数据湖文件的大小为所述目标大小。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述获取多个待合并数据湖文件中存储的初始数据,包括:
遍历所述多个待合并数据湖文件,针对每个待合并数据湖文件,执行如下操作:
根据所述待合并数据湖文件的元数据,确定所述待合并数据湖文件中的行组在所述待合并数据湖文件中的偏移量与大小;
根据所述行组的元数据,确定所述待合并数据湖文件中的列块在所述待合并数据湖文件中的偏移量与大小;
获取所述列块中的数据作为所述初始数据。
8.一种文件合并装置,其特征在于,所述装置包括:
获取单元,用于获取多个待合并数据湖文件中存储的初始数据,所述初始数据为经过序列化、压缩和编码中其中一项或者多项处理的数据;
第一确定单元,用于将所述初始数据直接作为目标数据湖文件中的存储数据;
第二确定单元,用于根据所述存储数据在所述目标数据湖文件中的存储位置,得到所述目标数据湖文件的目标元数据;
写入单元,用于将所述存储数据和所述目标元数据写入所述目标数据湖文件。
9.一种文件合并设备,其特征在于,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括指令,所述指令指示设备执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919449.7A CN116932497A (zh) | 2023-07-25 | 2023-07-25 | 一种文件合并方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919449.7A CN116932497A (zh) | 2023-07-25 | 2023-07-25 | 一种文件合并方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932497A true CN116932497A (zh) | 2023-10-24 |
Family
ID=88389359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310919449.7A Pending CN116932497A (zh) | 2023-07-25 | 2023-07-25 | 一种文件合并方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932497A (zh) |
-
2023
- 2023-07-25 CN CN202310919449.7A patent/CN116932497A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303596B2 (en) | Read-write control method for memory, and corresponding memory and server | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
US11934371B2 (en) | Data processing method and apparatus, and computer-readable storage medium | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN107506466B (zh) | 一种小文件存储方法及系统 | |
US9405828B2 (en) | System and method for phonetic searching of data | |
CN113468107A (zh) | 数据处理方法、设备、存储介质及系统 | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
CN108038253B (zh) | 一种日志查询的处理方法及装置 | |
CN110019169B (zh) | 一种数据处理的方法及装置 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN115470235A (zh) | 一种数据处理方法、装置以及设备 | |
CN111221814B (zh) | 二级索引的构建方法、装置及设备 | |
CN111190895B (zh) | 列式存储数据的组织方法、装置及存储介质 | |
EP3093772A1 (en) | Data processing method, data writing method, and related apparatus | |
CN105808451A (zh) | 一种数据缓存方法以及相关装置 | |
CN112463880A (zh) | 一种区块链数据存储方法及相关装置 | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
CN116932497A (zh) | 一种文件合并方法及装置 | |
CN113590566B (zh) | 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质 | |
CN114297196B (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
CN115114239A (zh) | 分布式系统数据处理方法、装置、设备及介质 | |
WO2017028718A1 (zh) | 数据读取方法和装置 | |
CN111459949B (zh) | 针对数据库的数据处理方法、装置及设备和索引更新方法 | |
CN113722623B (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 |