一种批流一体化数据处理系统及方法技术方案

技术编号:38901457 阅读:9 留言:0更新日期:2023-09-22 14:20
本申请提供一种批流一体化数据处理系统及方法,涉及数据处理技术领域;所述系统包括:内存抽象模块,用于根据数据计算模式对序列化后的内存数据进行内存管理;序列化与反序列化模块,用于进行数据对象和内存数据的相互转换;SQL代码生成模块,用于根据数据计算模式将待处理内存数据生成基于Pax存储结构的向量式SQL执行代码;算子模块,用于采用基于Pax存储结构的数据处理模式,执行向量式SQL执行代码,以对待处理内存数据进行数据处理。本申请能够有效兼顾流计算和批处理两种计算模式,保留了流处理的低延迟性能,并提供更高的批处理吞吐能力,同时优化了窗口计算的效率,提高了特定窗口统计场景的计算性能。窗口统计场景的计算性能。窗口统计场景的计算性能。

【技术实现步骤摘要】
一种批流一体化数据处理系统及方法


[0001]本申请涉及数据处理
,具体涉及一种批流一体化数据处理系统、方法、电子设备及计算机程序产品。

技术介绍

[0002]Flink为了低延迟采用了基于行的数据处理,所以其批处理的实现也是基于行的,基于行的问题是对CPU缓存不友好,CPU的高速缓存容易发生Cache Miss,导致CPU空转等待从内存加载数据,无法充分利用现代CPU的SIMD特性(全称Single Instruction Multiple Data,单指令多数据流),一条指令只能处理一条数据,而基于列存则可以充分利用现代CPU的SIMD特性,加速计算。
[0003]现有的Flink实现方法存在以下问题:1)批流性能难以兼顾,列式执行引擎可以很好的提升统计计算的性能,但是一旦出现大量的分支跳转指令的场景,则计算效率会急剧下降,则难以保证低延迟;使用行式执行引擎,则难以利用CPU的SIMD特性提高计算效率;2)流计算中特定窗口统计场景性能差;在流计算中,处理的数据量的大小取决于窗口的长度,在较大的数据规模下,就可能出现无法在规定时间内计算完毕,导致数据持续积压,数据处理延迟持续增加。

技术实现思路

[0004]本申请实施例提供一种批流一体化数据处理系统、方法、电子设备及计算机程序产品,用以解决现有技术中批流性能难以兼顾以及特定窗口统计场景性能差的问题。
[0005]第一方面,本申请实施例提供一种批流一体化数据处理系统,包括:
[0006]内存抽象模块,用于在Flink内存分配最小单元的内部,根据当前的数据计算模式对序列化后的内存数据进行内存管理;其中,所述数据计算模式包括流计算模式和批处理模式,所述内存数据为采用Pax存储结构;
[0007]序列化与反序列化模块,用于进行数据对象和内存数据的相互转换;
[0008]SQL代码生成模块,用于根据当前的数据计算模式将待处理内存数据生成基于Pax存储结构的向量式SQL执行代码;
[0009]算子模块,用于采用基于Pax存储结构的数据处理模式,执行所述向量式SQL执行代码,以对所述待处理内存数据进行数据处理。
[0010]在一个实施例中,所述算子模块包括多个算子单元,每一所述算子单元用于:获取输入数据流,基于所述向量式SQL执行代码从所述数据流的数据页中取出数据记录,在对多条数据记录循环批量处理之后,写入到新的数据页中,继而输出以数据页为单位的数据流。
[0011]在一个实施例中,所述内存抽象模块,具体还用于:根据当前的数据计算模式,选取相应的数据页存储参数对所述内存数据进行内存管理;其中,所述数据页存储参数包括数据记录条数、最大等待时间和数据页默认最大内存空间。
[0012]在一个实施例中,所述内存抽象模块,具体还用于:
[0013]在流计算模式下,根据当前数据积压情况对所述内存数据的数据记录条数进行实时自适应调整,在所述数据页默认最大内存空间的约束下,基于所述最大等待时间和调整后的数据记录条数对所述内存数据进行内存管理;
[0014]在批处理模式下,基于所述数据页默认最大内存空间对所述内存数据进行内存管理。
[0015]在一个实施例中,所述内存抽象模块包括数据插入管理单元、数据更新管理单元和数据删除管理单元,其中:
[0016]所述数据插入管理单元,用于在数据插入时,生成新数据页并根据数据属性值的长度对所述新数据页进行子数据页分配,继而将待插入数据记录的属性分别复制至不同子数据页中;
[0017]所述数据更新管理单元,用于在数据更新时,若根据待更新数据记录需要更新的属性值在不同子数据页里面的偏移量判断超出子数据页可用空间,则向该子数据页的相邻子数据页申请空间,若无法从相邻子数据页申请空间,则重新申请新数据页,并将待更新数据记录移到新申请的数据页中,同时将旧数据页中被更新的数据记录标记为删除;
[0018]所述数据删除管理单元,用于在数据删除时,在数据页的预设位图中对待删除数据进行标记,当标记的待删除数据记录超过预设阈值时,则对标记的待删除数据记录进行删除,并生成新的数据页进行数据存储。
[0019]在一个实施例中,所述序列化与反序列化模块包括第一序列化与反序列化单元和第二序列化与反序列化单元,其中:
[0020]所述第一序列化与反序列化单元,用于在流计算模式下,将接收到的事件数据对象进行序列化并按照Pax存储结构写入对应的子数据页中;还用于从Pax存储结构中读取对应的列值并重新组装为事件数据对象;其中,在流计算模式下,每一子数据页对应存储一条事件数据对象的序列;
[0021]所述第二序列化与反序列化单元,用于在批处理模式下,将接收到的多条事件数据对象按列进行序列化,并按照Pax存储结构写入对应的子数据页中;还用于从Pax存储结构中读取对应的列值并重新组装为事件数据对象;其中,在批处理模式下,每一子数据页对应存储多条事件数据对象的序列。
[0022]在一个实施例中,所述SQL代码生成模块,具体用于:在根据SQL算子的参数进行初始化后申请计算所需资源;生成计算过程中所需的临时变量,并针对计算中所涉及的列提取Pax存储结构的数据,采用循环计算的方式遍历计算生成对应的数据结构的变量;将计算结果写回至Pax存储结构的内存数据中,并释放本次计算所申请的计算所需资源。
[0023]第二方面,本申请实施例提供一种批流一体化数据处理方法,包括:
[0024]利用内存抽象模块在Flink内存分配最小单元的内部,根据当前的数据计算模式对序列化后的内存数据进行内存管理;其中,所述数据计算模式包括流计算模式和批处理模式,所述内存数据为采用Pax存储结构;
[0025]利用序列化与反序列化模块进行数据对象和内存数据的相互转换;
[0026]利用SQL代码生成模块根据当前的数据计算模式将待处理内存数据生成基于Pax存储结构的向量式SQL执行代码;
[0027]利用算子模块采用基于Pax存储结构的数据处理模式,执行所述向量式SQL执行代
码,以对所述待处理内存数据进行数据处理。
[0028]第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第二方面所述的批流一体化数据处理方法的步骤。
[0029]第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第二方面所述的批流一体化数据处理方法的步骤。
[0030]本申请实施例提供了一种批流一体化数据处理系统、方法、电子设备及计算机程序产品,该系统通过采用行列混合的Pax存储结构,支持列式计算充分利用了现代CPU的SIMD优化,从而能够有效兼顾流计算和批处理两种计算模式,保留了流处理的低延迟性能,并提供更高的批处理吞吐能力,同时优化了窗口计算的效率,提高了特定窗口统计场景的计算性能。
附图说明
[0031]为了更清楚地说明本申请或现有技术中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种批流一体化数据处理系统,其特征在于,包括:内存抽象模块,用于在Flink内存分配最小单元的内部,根据当前的数据计算模式对序列化后的内存数据进行内存管理;其中,所述数据计算模式包括流计算模式和批处理模式,所述内存数据为采用Pax存储结构;序列化与反序列化模块,用于进行数据对象和内存数据的相互转换;SQL代码生成模块,用于根据当前的数据计算模式将待处理内存数据生成基于Pax存储结构的向量式SQL执行代码;算子模块,用于采用基于Pax存储结构的数据处理模式,执行所述向量式SQL执行代码,以对所述待处理内存数据进行数据处理。2.根据权利要求1所述的批流一体化数据处理系统,其特征在于,所述算子模块包括多个算子单元,每一所述算子单元用于:获取输入数据流,基于所述向量式SQL执行代码从所述数据流的数据页中取出数据记录,在对多条数据记录循环批量处理之后,写入到新的数据页中,继而输出以数据页为单位的数据流。3.根据权利要求1所述的批流一体化数据处理系统,其特征在于,所述内存抽象模块,具体还用于:根据当前的数据计算模式,选取相应的数据页存储参数对所述内存数据进行内存管理;其中,所述数据页存储参数包括数据记录条数、最大等待时间和数据页默认最大内存空间。4.根据权利要求3所述的批流一体化数据处理系统,其特征在于,所述内存抽象模块,具体还用于:在流计算模式下,根据当前数据积压情况对所述内存数据的数据记录条数进行实时自适应调整,在所述数据页默认最大内存空间的约束下,基于所述最大等待时间和调整后的数据记录条数对所述内存数据进行内存管理;在批处理模式下,基于所述数据页默认最大内存空间对所述内存数据进行内存管理。5.根据权利要求1所述的批流一体化数据处理系统,其特征在于,所述内存抽象模块包括数据插入管理单元、数据更新管理单元和数据删除管理单元,其中:所述数据插入管理单元,用于在数据插入时,生成新数据页并根据数据属性值的长度对所述新数据页进行子数据页分配,继而将待插入数据记录的属性分别复制至不同子数据页中;所述数据更新管理单元,用于在数据更新时,若根据待更新数据记录需要更新的属性值在不同子数据页里面的偏移量判断超出子数据页可用空间,则向该子数据页的相邻子数据页申请空间,若无法从相邻子数据页申请空间,则重新申请新数据页,并将待更新数据记录移到新申请的数据页中,同时将旧数据页中被更新的数据记录标记为删除;所述数据删除...

【专利技术属性】
技术研发人员:武智晖刘辉徐海勇陶涛尚晶江勇陈卓郭志伟
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1