数据写入方法及装置制造方法及图纸

技术编号:30550519 阅读:16 留言:0更新日期:2021-10-30 13:30
本申请实施例提供了一种数据写入方法,方法包括:确定从数据源中获取到的待写入数据所分配的数据桶;将所述待写入数据写入至所述数据桶中;在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至分布式文件系统HDFS中。本申请可以降低IO读写性能的消耗。读写性能的消耗。读写性能的消耗。

【技术实现步骤摘要】
数据写入方法及装置


[0001]本申请实施例涉及数据处理
,尤其涉及一种数据写入方法及装置。

技术介绍

[0002]随着网络技术的飞速发展,为了解决数据共享和数据信息孤岛的问题,许多企业和团体通过将各种应用系统收集到的各种类型的数据写入至数据湖(HUDI)中。
[0003]然而,专利技术人发现,在现有技术中,在将数据写入至HUDI中,采用的是文件滚动合并的方式进行数据的写入,具体而言,在当前将文件A写入至HUDI中后,若再次需要将文件B写入至HUDI中,则需要先将文件B读取出来,之后再将文件A和文件B写入至HUDI中,以此类推,当需要再将文件C写入至HUDI中时,则需要先读取出文件A和文件B,之后,才会将文件A、文件B和文件C写入至HUDI中。现有技术中,由于采用文件滚动合并的方式进行数据的写入,导致需要消耗非常大的IO读写性能。

技术实现思路

[0004]本申请实施例的目的是提供一种数据写入方法、装置、计算机设备及计算机可读存储介质,可以用于解决在将文件写入至HUDI中时,需要消耗非常大的IO读写性能的问题。
[0005]本申请实施例的一个方面提供了一种数据写入方法,,所述方法包括:
[0006]确定从数据源中获取到的待写入数据所分配的数据桶;
[0007]将所述待写入数据写入至所述数据桶中;
[0008]在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至分布式文件系统HDFS中。
[0009]可选地,设定所述待写入数据的写入模式为所述追加模式,所述追加模式为通过HoodieCreateHandle方法将数据写入至所述HDFS中。
[0010]可选地,所述将所述待写入数据写入至所述数据桶中包括:
[0011]判断内存中是否存在所述数据桶;
[0012]若判断出内存中不存在所述数据桶时,在所述内存中创建所述数据桶;
[0013]将所述待写入数据写入至所述数据桶中。
[0014]可选地,所述在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至所述HDFS中包括:
[0015]在所述数据桶中写入的数据量达到预设容量后,通过预设的生产者

消费者

队列模型中的生产者将所述数据桶中的数据写入至队列中,其中,所述队列的容量与所述数据桶的容量相同;
[0016]通过所述生产者

消费者

队列模型中的消费者将所述队列中的数据消费出来;
[0017]采用追加模式将消费出来的数据写入至所述HDFS中。
[0018]可选地,所述在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至分布式文件系统HDFS中的步骤之前,还包括:
[0019]关闭所述生产者

消费者

队列模型中的限速模式。
[0020]可选地,所述方法还包括:
[0021]在每一次执行检测点checkpoint操作时,对所述HDFS中的小文件进行纵向合并操作,所述纵向合并操作为对在执行上一次checkpoint操作与当前checkpoint操作之间生成的小文件进行合并操作,所述小文件为文件大小小于预设值的文件。
[0022]可选地,所述对所述HDFS中的小文件进行纵向合并操作的步骤之后,还包括:
[0023]对所述HDFS中的小文件进行横向合并操作,所述横向合并操作为对执行当前checkpoint操作之前生成的所有小文件进行合并操作。
[0024]本申请实施例的再一个方面提供了一种数据写入装置,所述数据写入装置包括:
[0025]确定模块,用于确定从数据源中获取到的待写入数据所分配的数据桶;
[0026]第一写入模块,用于将所述待写入数据写入至所述数据桶中;
[0027]第二写入模块,用于在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至分布式文件系统HDFS中。
[0028]本申请实施例的再一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的数据写入方法的步骤。
[0029]本申请实施例的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的数据写入方法的步骤。
[0030]本申请实施例提供的数据写入方法、装置、计算机设备及计算机可读存储介质,通过确定从数据源中获取到的待写入数据所分配的数据桶;将所述待写入数据写入至所述数据桶中;在所述数据桶中写入的数据量达到预设容量后,采用追加模式(Append模式)将所述数据桶中的数据写入至所述HDFS中。。本申请在将数据写入至HUDI中的HDFS时,一直通过Append模式将数据写入至HDFS中,由于Append模式是通过调用HoodieCreateHandle方法将数据写入至所述HDFS中,而通过HoodieCreateHandle方法进行数据的写入,无需先将数据从HDFS中读取出来,因此,采用本申请中的数据写入方法,可以降低IO读写性能的消耗。
附图说明
[0031]图1示意性示出了实现本申请实施例的数据写入方法的应用环境示意图;
[0032]图2示意性示出了根据本申请一实施例的数据写入方法的流程图;
[0033]图3为意性示出了HUDI的模块示意图;
[0034]图4示意性示出了将所述待写入数据写入至所述数据桶中的步骤细化流程图;
[0035]图5示意性示出了在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至所述HDFS中的步骤细化流程图;
[0036]图6示意性示出了根据本申请实施例的数据写入装置的程序模块图;以及
[0037]图7示意性示出了根据本申请实施例的适于实现数据写入方法的计算机设备的硬件架构示意图。
具体实施方式
[0038]为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实
施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0039]需要说明的是,在本专利技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据写入方法,其特征在于,所述方法包括:确定从数据源中获取到的待写入数据所分配的数据桶;将所述待写入数据写入至所述数据桶中;在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至分布式文件系统HDFS中。2.根据权利要求1所述的数据写入方法,其特征在于,所述方法还包括:设定所述待写入数据的写入模式为所述追加模式,所述追加模式为通过HoodieCreateHandle方法将数据写入至所述HDFS中。3.根据权利要求1所述的数据写入方法,其特征在于,所述将所述待写入数据写入至所述数据桶中包括:判断内存中是否存在所述数据桶;若判断出内存中不存在所述数据桶时,在所述内存中创建所述数据桶;将所述待写入数据写入至所述数据桶中。4.根据权利要求1所述的数据写入方法,其特征在于,所述在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至所述HDFS中包括:在所述数据桶中写入的数据量达到预设容量后,通过预设的生产者

消费者

队列模型中的生产者将所述数据桶中的数据写入至队列中,其中,所述队列的容量与所述数据桶的容量相同;通过所述生产者

消费者

队列模型中的消费者将所述队列中的数据消费出来;采用追加模式将消费出来的数据写入至所述HDFS中。5.根据权利要求4所述的数据写入方法,其特征在于,所述在所述数据桶中写入的数据量达到预设容量后,采用追加模式将所述数据桶中的数据写入至分布式文...

【专利技术属性】
技术研发人员:喻兆靖
申请(专利权)人:上海哔哩哔哩科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1