本技术涉及大数据,具体涉及一种数据湖数据处理方法、装置、系统、设备及介质。
背景技术:
1、数据湖是一种在系统或存储库中以自然格式存储数据的方法,它有助于以各种模式和结构形式配置数据,通常是对象块或文件。
2、目前数据湖对流批一体的支持还不是特别完善,对实时计算方面的低延迟要求支持不够,仅支持到分钟级别的实时计算延迟,而对于秒级别的实时计算延迟则无法在数据湖中得到满足。
3、现有数据湖在进行快照提交时会产生大量小文件,降低了数据湖的读写效率。另外,数据湖在进行数据读写时还会产生大量等值删除文件,等值删除文件会占用大量内存,进一步降低了数据读写效率。
4、因此,如何提高数据湖数据读写的效率,是目前亟需解决的问题。
技术实现思路
1、鉴于以上所述现有技术的缺点,本技术的目的在于提供一种数据湖数据处理方法、装置、系统、设备及介质,用于解决现有技术中如何提高数据湖数据读写的效率的问题。
2、为实现上述目的及其他相关目的,本技术提供一种数据湖数据处理方法,所述方法应用于从节点服务,所述方法包括:
3、获取待写入数据;
4、在预先创建的预写日志文件中记录所述待写入数据,根据所述待写入数据的数据类型在预先创建的内存分区中记录所述待写入数据,其中,所述预写日志文件与所述内存分区存在映射关系;
5、根据所述预写日志文件和所述内存分区中记录的信息,生成所述待写入数据对应的初始表格式文件,并将所述初始表格式文件传输至主节点服务以生成初始快照;
6、将所述初始快照中的等值删除文件转换为位置删除文件,并根据预设表格式文件容量合并所述初始快照中的文件,得到目标表格式文件;
7、将所述目标表格式文件传输至主节点服务以生成目标快照,完成将所述待写入数据写入数据湖。
8、于本技术的一实施例中,获取待写入数据之前,还包括:
9、将从节点服务的心跳信息发送至所述主节点服务,以使所述主节点服务根据所述心跳信息生成可用从节点服务列表;
10、所述主节点服务将所述可用从节点服务列表传输至客户端,以使所述客户端根据所述可用从节点服务列表选取可用从节点服务并下发数据处理指令。
11、于本技术的一实施例中,根据所述可用从节点服务列表选取可用从节点服务并下发数据处理指令,包括:
12、从所述可用从节点服务列表中选取多个可用从节点服务,并根据预设网际协议信息和所述多个可用从节点服务进行负载均衡处理,与所述多个可用从节点服务通信连接;
13、向通信连接的各所述可用从节点服务下发数据写入指令和/或数据读取指令,以实现对数据湖的数据处理。
14、于本技术的一实施例中,所述从心跳信息包括从节点服务名称、从节点服务身份标识、从节点服务网际协议地址和从节点服务端口信息;
15、所述目标表格式文件包括数据文件路径信息、数据文件序列号、位置删除文件路径信息、位置删除文件序列号、预写日志文件、从节点服务身份标识。
16、于本技术的一实施例中,根据所述待写入数据的数据类型在预先创建的内存分区中记录所述待写入数据,包括:
17、在所述数据类型为待删除数据时,将所述待写入数据记录至deletes分区中,并删除indexs分区和list分区中所述待写入数据对应的记录;
18、在所述数据类型为更新数据且所述indexs分区存在所述待写入数据对应的记录时,将所述indexs分区中所述待写入数据对应的记录更新至所述list分区中;
19、在所述数据类型为更新数据且所述indexs分区不存在所述待写入数据对应的记录时,将所述待写入数据记录至deletes分区和list分区中,并将所述待写入数据在所述list分区中的记录位置记录至所述indexs分区中;
20、在所述数据类型为插入数据时,将所述待写入数据记录至list分区中;
21、其中,所述deletes分区、indexs分区和list分区包括于所述预先创建的内存分区。
22、于本技术的一实施例中,在所述预写日志文件写满数据时,关闭所述预写日志文件并将所述预写日志文件添加至预先构建的预写日志文件队列;
23、在所述内存分区的空间写满数据时,关闭所述预写日志文件并将所述预写日志文件添加至预先构建的预写日志文件队列;
24、在所述从节点服务消费预设表格式文件生成线程时所述预写日志文件队列为空,则关闭当前存在数据的所述预写日志文件,并将所述预写日志文件添加至所述预写日志文件队列。
25、于本技术的一实施例中,根据所述预写日志文件和所述内存分区中记录的信息,生成所述待写入数据对应的初始表格式文件,包括:
26、在所述数据类型为插入数据时,将所述待写入数据传输至目标数据湖表格式的数据文件中;
27、在所述数据类型为待删除数据时,将所述待写入数据传输至所述目标数据湖表格式的等值删除文件中;
28、在所述数据类型为更新数据时且记录在所述deletes分区中时,将所述待写入数据传输至所述数据文件中,记录所述待写入数据在所述数据文件中的位置信息,并将所述待写入数据传输至所述等值删除文件中;
29、在所述数据类型为更新数据时且记录在所述indexs分区中时,将所述待写入数据传输至所述数据文件中,记录所述待写入数据在所述数据文件中的位置信息,并将所述位置信息记录至所述目标数据湖表格式的位置删除文件中。
30、于本技术的一实施例中,将所述初始快照中的等值删除文件转换为位置删除文件,包括:
31、根据所述初始快照中等值删除文件的序列号,对所述等值删除文件进行升序排列;
32、遍历升序排列后的所述等值删除文件,将所述等值删除文件中的记录存储至内存缓存中;
33、获取所述数据文件中序列号小于所述等值删除文件的序列号的待转换文件;
34、在所述待转换文件存在于所述内存缓存中时,根据所述待转换文件生成新的位置删除文件,并将所述等值删除文件的序列号、数据文件的路径、待转换文件在所述数据文件中的位置添加至所述新的位置删除文件中。
35、于本技术的一实施例中,根据预设表格式文件容量合并所述初始快照中的文件,包括:
36、获取所述初始快照中文件容量小于预设第一表格式文件容量的待合并数据文件和待合并位置删除文件;
37、根据预设第二表格式文件容量,合并多个所述待合并数据文件,以及合并多个所述待合并位置删除文件,其中,所述第二表格式文件容量大于所述第一表格式文件容量。
38、于本技术的一实施例中,将所述目标表格式文件传输至主节点服务以生成目标快照之后,还包括:
39、在接收所述主节点服务传输的目标快照提交结果时,根据所述目标快照提交结果中获取待删除预写日志文件名称;
40、根据所述待删除预写日志文件名称,删除所述预写日志文件队列中的预写日志文件,并删除所述内存分区中与所述待删除预写日志文件名称对应的数据。
41、于本技术的一实施例中,完成将所述待写入数据写入数据湖之后,还包括:
42、响应于数据读取指令,开启所述目标数据湖表格式的读缓存功能,以获取所述目标数据湖表格式中的目标数据;
43、删除所述deletes分区中与所述目标数据对应的记录,并在所述list分区中更新所述目标数据对应的记录,完成数据湖中所述目标数据的读取。
44、于本技术的一实施例中,还提供了一种数据湖数据处理装置,所述装置包括:
45、数据获取模块,用于获取待写入数据;
46、数据记录模块,用于在预先创建的预写日志文件中记录所述待写入数据,根据所述待写入数据的数据类型在预先创建的内存分区中记录所述待写入数据,其中,所述预写日志文件与所述内存分区存在映射关系;
47、初始快照生成模块,用于根据所述预写日志文件和所述内存分区中记录的信息,生成所述待写入数据对应的初始表格式文件,并将所述初始表格式文件传输至主节点服务以生成初始快照;
48、优化模块,用于将所述初始快照中的等值删除文件转换为位置删除文件,并根据预设表格式文件容量合并所述初始快照中的文件,得到目标表格式文件;
49、目标快照生成模块,用于将所述目标表格式文件传输至主节点服务以生成目标快照,完成将所述待写入数据写入数据湖。
50、于本技术的一实施例中,还提供了一种数据湖数据处理系统,所述系统包括:
51、从节点服务,用于获取待写入数据;在预先创建的预写日志文件中记录所述待写入数据,根据所述待写入数据的数据类型在预先创建的内存分区中记录所述待写入数据,其中,所述预写日志文件与所述内存分区存在映射关系;根据所述预写日志文件和所述内存分区中记录的信息,生成所述待写入数据对应的初始表格式文件,并将所述初始表格式文件传输至主节点服务以生成初始快照;将所述初始快照中的等值删除文件转换为位置删除文件,并根据预设表格式文件容量合并所述初始快照中的文件,得到目标表格式文件;将所述目标表格式文件传输至主节点服务以生成目标快照,完成将所述待写入数据写入数据湖;
52、主节点服务,用于接收所述初始表格式文件以生成初始快照,并接收所述目标表格式文件以生成目标快照;
53、客户端,用于将所述待写入数据传输至所述从节点服务。
54、于本技术的一实施例中,还提供了一种电子设备,所述电子设备包括:
55、一个或多个处理器;
56、存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的数据湖数据处理方法。
57、于本技术的一实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如上所述的数据湖数据处理方法。
58、本发明的有益效果:
59、本发明应用于主-从节点服务模式中的从节点服务中,从节点服务首先获取待写入数据;然后在预先创建的预写日志文件中记录所述待写入数据,根据所述待写入数据的数据类型在预先创建的内存分区中记录所述待写入数据,其中,所述预写日志文件与所述内存分区存在映射关系;再根据所述预写日志文件和所述内存分区中记录的信息,生成所述待写入数据对应的初始表格式文件,并将所述初始表格式文件传输至主节点服务以生成初始快照;再将所述初始快照中的等值删除文件转换为位置删除文件,并根据预设表格式文件容量合并所述初始快照中的文件,得到目标表格式文件;最后将所述目标表格式文件传输至主节点服务以生成目标快照,完成将所述待写入数据写入数据湖。本发明中,主节点服务和从节点服务相互配合以实现数据到数据湖表格式的处理,数据写入时客户端可以忽略数据湖表格式生成快照的时间,实时将数据写入从节点服务中,并通过存在映射关系的预写日志文件和内存分区可达到秒级别的数据写入,提高了数据湖写入数据的效率;通过从节点服务可开通读取数据的缓存,提高数据湖表格式读取数据的可见性,进而提高数据湖读取数据的效率;将初始快照中的等值删除文件转换为位置删除文件,数据湖表格式的数据文件和位置删除文件能一同遍历并按key分组处理达到删除数据的效果,消除了等值删除文件即能消除数据湖表格式数据的全局内存索引,降低对内存的消耗,提高数据湖读写处理的效率;根据预设表格式容量,将快照中的小文件进行合并,消除了位置删除文件的数量,进一步提高了数据湖读写处理的效率。
60、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。