【技术实现步骤摘要】
一种数据的读写方法、装置、设备和存储介质
本专利技术实施例涉及数据处理技术,尤其涉及一种数据的读写方法、装置、设备和存储介质。
技术介绍
在当前的大数据处理框架中,流式大数据处理框架sparkstreaming在处理批量流式业务时,有高吞吐量和容错能力强这两个特点。但是sparkstreaming在处理批量流式业务时,存在本阶段的RDD(ResilientDistributedDatasets,弹性分布式数据集)与上游的RDD分区不是一对一的关系,此时是宽依赖,需要进行洗牌shuffle操作。根据图1现有技术中sparkstreamingshuffle操作的流程图,首先对分区来的数据进行聚合,对聚合后的数据集中的数据,根据键值key进行排序,当内存中的数据量到达一定阈值时,将数据集写入磁盘,再将数据集从磁盘中拉取出来,再次进行聚合,获得最终结果。shuffle操作中写入磁盘的过程会引发随机I/O,导致流处理的执行性能下降。为了解决这种读写时引发的磁盘离散I/O问题,目前大部分方案都是使用SSD(SolidStateD ...
【技术保护点】
1.一种数据的读写方法,其特征在于,包括:/n从分区中获取目标数据,并获取所述目标数据中的目标键名以及目标键值;/n根据当前的读顺序号和/或写顺序号,以环形写入的方式,将所述目标键值及目标键名索引相邻存储于第一数组,并将所述目标键名及目标键值索引相邻存储于第二数组;/n其中,所述目标键名索引用于指示目标键名在所述第二数组的存储位置,所述目标键值索引用于指示目标键值在所述第一数组的存储位置;/n根据所述当前的读顺序号,对所述第一数组以及所述第二数组中的数据进行环形读取。/n
【技术特征摘要】
1.一种数据的读写方法,其特征在于,包括:
从分区中获取目标数据,并获取所述目标数据中的目标键名以及目标键值;
根据当前的读顺序号和/或写顺序号,以环形写入的方式,将所述目标键值及目标键名索引相邻存储于第一数组,并将所述目标键名及目标键值索引相邻存储于第二数组;
其中,所述目标键名索引用于指示目标键名在所述第二数组的存储位置,所述目标键值索引用于指示目标键值在所述第一数组的存储位置;
根据所述当前的读顺序号,对所述第一数组以及所述第二数组中的数据进行环形读取。
2.根据权利要求1所述的方法,其特征在于,根据当前的读顺序号和/或写顺序号,以环形写入的方式,将所述目标键值及目标键名索引相邻存储于第一数组,并将所述目标键名及目标键值索引相邻存储于第二数组,包括:
将所述目标键名的哈希值作为所述目标键名索引,在所述第二数组定位第一键名存储位置,以及第一键值索引存储位置,并在第一键值索引存储位置处获取第一键值索引;
如果确定所述第一键值索引不为空,则根据所述第一键值索引在第一数组中定位第一键值存储位置以及第一键名索引存储位置,并在所述第一键值存储位置处获取第一键值;
根据所述第一键值存储位置、所述读顺序号、所述第一键值、所述第一键名及所述目标键名中的一项或者多项确定是否满足无哈希冲突存储条件;
若是,则将所述目标键名索引存储于所述第一键名索引存储位置,将所述目标键名存储于所述第一键名存储位置,并将所述目标键值累加存储于所述第一键值存储位置。
3.根据权利要求2所述的方法,其特征在于,在根据所述第一键值存储位置、所述读顺序号、所述第一键值、所述第一键名及所述目标键名中的一项或者多项确定是否满足无哈希冲突存储条件之后,还包括:
若否,则在所述第二数组中,以第一键名存储位置后的下一键名存储位置为起点,获取与所述第一键名存储位置最接近的一个未存储有键名的第二键名存储位置,并根据所述第二键名存储位置确定第二键名索引;
根据所述写顺序号,在所述第一数组中确定第二键值存储位置,并根据所述第二键值存储位置确定第二键值索引;
将所述目标键值存储于所述第二键值存储位置,将目标键名存储于所述第二键名存储位置,将所述第二键名索引存储于所述第二键值存储位置的后一存储位置,并将所述第二键值索引存储于所述第二键名存储位置的后一存储位置。
4.根据权利要求2或3所述的方法,其特征在于,根据所述第一键值存储位置、所述读顺序号、所述第一键值、所述第一键名及所述目标键名中的一项或者多项判断确定是否满足无哈希冲突存储条件包括下述至少一项:
如果确定所述第一键值存储位置的位置编号小于所述读顺序号,且所述第一键值为空,则确定满足所述无哈希冲突存储条件;
如果确定所述第一键值存储位置的位置编号小于所述读顺序号、所述第一键值为非空,且所述目标键名与所述第一键名相一致,则确定满足所述无哈希冲突存储条件;
如果确定所述第一键值存储位置的位置编号小于所述读顺序号、所述第一键值为非空,且所述目标键名与所述第一键名不一致,则确定不满足所述无哈希冲突存储条件;以及
如果确定所述第一键值存储位...
【专利技术属性】
技术研发人员:高魁,谢永恒,万月亮,
申请(专利权)人:北京锐安科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。