数据存储方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38083613 阅读:8 留言:0更新日期:2023-07-06 08:50
本公开提供了一种数据存储方法、装置、电子设备及存储介质,该数据存储方法包括:获取待存入目标存储系统的至少一条特征数据,每条特征数据分别具有相应的主键;针对每条特征数据,从目标存储系统对应的多个第一时间分区中确定特征数据的数据发生时间所属的目标时间分区;其中,每个第一时间分区对应相应数量的桶,每个桶关联目标存储系统的一个存储空间;每个第一时间分区对应的桶的数量由第一时间分区对应的节日属性信息确定,或者每个第一时间分区对应的桶的数量由第一时间分区之前的数据存储量确定;基于目标时间分区所对应的桶的数量以及特征数据对应的主键,为特征数据分配对应的桶,并将特征数据存储至与其对应的桶所关联的存储空间内。所关联的存储空间内。所关联的存储空间内。

【技术实现步骤摘要】
数据存储方法、装置、电子设备及存储介质


[0001]本公开涉及数据存储
,具体而言,涉及一种数据存储方法、装置、电子设备和存储介质。

技术介绍

[0002]随着计算机技术的发展,需要存储的数据越来越多。比如,在实际应用中需要对用户在使用应用程序过程中的使用行为数据进行存储,以便于后续使用。
[0003]然而,目前的数据存储系统,在存储数据存储的过程中,通常需要对存储系统中的数据进行全局索引来区分当前待存储的数据是写入新的数据还是更新数据,而索引服务通常会受到流量的限制,影响写数据的吞吐性能,导致数据存储效率较低。

技术实现思路

[0004]本公开实施例至少提供一种数据存储方法、装置、电子设备及存储介质,可以提升数据存储效率。
[0005]本公开实施例提供了一种数据存储方法,包括:
[0006]获取待存入目标存储系统的至少一条特征数据,其中,每条特征数据包括至少一个子特征数据,所述每条特征数据分别具有相应的主键;
[0007]针对所述每条特征数据,从所述目标存储系统对应的多个第一时间分区中确定所述特征数据的数据发生时间所属的目标时间分区;其中,每个第一时间分区对应相应数量的桶,每个桶关联所述目标存储系统的一个存储空间;每个第一时间分区对应的桶的数量由所述第一时间分区对应的节日属性信息确定,或者每个第一时间分区对应的桶的数量由所述第一时间分区之前的数据存储量确定;
[0008]基于所述目标时间分区所对应的桶的数量以及所述特征数据对应的主键,为所述特征数据分配对应的桶,并将所述特征数据存储至与其对应的桶所关联的存储空间内。
[0009]本公开实施例中,由于所述目标存储系统对应多个第一时间分区,且每个第一时间分区对应相应数量的桶,因此,在数据存储的过程中,可以先根据特征数据的数据发生时间确定所述特征数据所属的目标时间分区,然后基于所述目标时间分区所对应的桶的数量以及所述特征数据对应的主键为每个特征数据分配对应的桶,进而无需全局索引,即可将特征数据存储于目标存储系统内对应的存储空间内,也即,通过追加写的方式可以提升写入数据的吞吐性能,从而可以提升数据存储的效率。
[0010]此外,由于每个第一时间分区对应的桶的数量由所述第一时间分区对应的节日属性信息确定,或者每个第一时间分区对应的桶的数量由所述第一时间分区之前的数据存储量确定,进而可以实现桶的数量的演进,也即,可以根据实际的预测需求调整相应的桶的数量,进而可以减少由于桶的数量设置过多或者过少而引起的数据溢出或者剩余大量存储空间的情况发生。
[0011]在一种可能的实施方式中,所述获取待存入目标存储系统的至少一条特征数据之
前,通过以下步骤确定所述每个第一时间分区对应的桶的数量:
[0012]在当前时间满足预设条件的情况下,将当前时间之后的第一预设时间段划分为至少一个第二时间分区;
[0013]根据每个第二时间分区对应的节日属性信息为所述每个第二时间分区设置对应数量的桶,并将所述第二时间分区确定为所述第一时间分区;或者,
[0014]根据每个第二时间分区之前的第二预设时间段的数据存储量,为所述每个第二时间分区设置对应数量的桶,并将所述第二时间分区确定为所述第一时间分区。
[0015]本公开实施例中,在当前时间满足预设条件的情况下,可以自动将当前时间之后的第一预设时间段划分为至少一个第二时间分区,并为每个第二时间分区设置相应数量的桶,如此,可以实现桶的数量的自动配置,且配置的桶的数量可以满足相应的数据存储需求,进而不仅可以提升桶的数量设置的效率,还可以提升数据存储方法的适用性。
[0016]在一种可能的实施方式中,所述基于所述目标时间分区所对应的桶的数量以及所述特征数据对应的主键,为所述特征数据分配对应的桶,包括:
[0017]基于所述目标时间分区所对应的桶的数量,对所述特征数据的主键进行取模运算处理,得到所述特征数据对应的桶的身份标识,并基于所述身份标识从与所述目标时间分区对应数量的桶中为所述特征数据分配对应的桶。
[0018]本公开实施例中,通过对所述特征数据的主键进行取模运算处理,并根据运算处理结果为所述特征数据分配对应的桶,可以使得具有相同主键的特征数据分到同一个桶中,进而可以提升数据存储的精度以及数据存储的效率。
[0019]在一种可能的实施方式中,所述方法还包括:
[0020]针对每条特征数据,在所述特征数据未携带所述数据发生时间的情况下,基于所述特征数据的主键对所述目标存储系统所已配置的桶进行全局索引,以确定所述目标存储系统已配置的桶中是否存在与所述特征数据的主键对应的目标桶;
[0021]在所述目标存储系统已配置的桶中存在与所述特征数据对应的目标桶的情况下,将所述特征数据存储至与所述目标桶所关联的存储空间内。
[0022]本公开实施例中,在所述特征数据未携带所述数据发生时间的情况下,还可以通过全局索引的方式进行数据存储,也即,将全局索引作为一种兜底方式,如此,即使在特征数据未携带所述数据发生时间的情况下,也可以实现数据的存储,有助于提升数据存储方法的适用性。
[0023]在一种可能的实施方式中,所述方法还包括:
[0024]在所述目标存储系统已配置的桶中不存在与所述特征数据对应的目标桶的情况下,将所述特征数据存储至第一桶关联的存储空间内;所述第一桶包括所述目标存储系统已配置的桶中的未存有数据的桶或者新建立的桶。
[0025]本公开实施例中,在所述目标存储系统已配置的桶中不存在与所述特征数据对应的目标桶的情况下,则将特征数据存储至新的桶内,如此,可以保证数据存储的准确性。
[0026]在一种可能的实施方式中,所述将所述特征数据存储至与其对应的桶关联的存储空间内之后,所述方法还包括:
[0027]获取数据读取任务,并基于所述数据读取任务确定所要读取的目标子特征数据所在的至少一个桶;
[0028]基于所述目标子特征数据所在的至少一个桶,将所述数据读取任务划分为多个子数据读取任务;
[0029]针对每个子数据读取任务,采用多路归并算法进行数据合并读取。
[0030]本公开实施例中,按照桶来对数据读取任务进行划分,并针对每个子数据读取任务,采用多路归并算法进行数据合并读取,可以提升数据的读取效率。
[0031]在一种可能的实施方式中,相同时段存入同一个桶的特征数据落入同一个数据文件,每个数据文件具有相应的主键,所述针对每个子数据读取任务,采用多路归并方法进行数据读取,包括:
[0032]针对每个子数据读取任务,确定所述子数据读取任务对应的目标子特征数据所属的至少一个数据文件,并基于所述至少一个数据文件的主键,将所述至少一个数据文件进行排序,并对排序后的至少一个数据文件采用多路归并方法进行数据读取。
[0033]本公开实施例中,基于所述子数据读取任务对应的至少一个数据文件的主键,将所述至少一个数据文件进行排序,有利于将相同主键的数据文件进行合本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:获取待存入目标存储系统的至少一条特征数据,其中,每条特征数据包括至少一个子特征数据,所述每条特征数据分别具有相应的主键;针对所述每条特征数据,从所述目标存储系统对应的多个第一时间分区中确定所述特征数据的数据发生时间所属的目标时间分区;其中,每个第一时间分区对应相应数量的桶,每个桶关联所述目标存储系统的一个存储空间;每个第一时间分区对应的桶的数量由所述第一时间分区对应的节日属性信息确定,或者每个第一时间分区对应的桶的数量由所述第一时间分区之前的数据存储量确定;基于所述目标时间分区所对应的桶的数量以及所述特征数据对应的主键,为所述特征数据分配对应的桶,并将所述特征数据存储至与其对应的桶所关联的存储空间内。2.根据权利要求1所述的方法,其特征在于,所述获取待存入目标存储系统的至少一条特征数据之前,通过以下步骤确定所述每个第一时间分区对应的桶的数量:在当前时间满足预设条件的情况下,将当前时间之后的第一预设时间段划分为至少一个第二时间分区;根据每个第二时间分区对应的节日属性信息为所述每个第二时间分区设置对应数量的桶,并将所述第二时间分区确定为所述第一时间分区;或者,根据每个第二时间分区之前的第二预设时间段的数据存储量,为所述每个第二时间分区设置对应数量的桶,并将所述第二时间分区确定为所述第一时间分区。3.根据权利要求1所述的方法,其特征在于,所述基于所述目标时间分区所对应的桶的数量以及所述特征数据对应的主键,为所述特征数据分配对应的桶,包括:基于所述目标时间分区所对应的桶的数量,对所述特征数据的主键进行取模运算处理,得到所述特征数据对应的桶的身份标识,并基于所述身份标识从与所述目标时间分区对应数量的桶中为所述特征数据分配对应的桶。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:针对每条特征数据,在所述特征数据未携带所述数据发生时间的情况下,基于所述特征数据的主键对所述目标存储系统所已配置的桶进行全局索引,以确定所述目标存储系统已配置的桶中是否存在与所述特征数据的主键对应的目标桶;在所述目标存储系统已配置的桶中存在与所述特征数据对应的目标桶的情况下,将所述特征数据存储至与所述目标桶所关联的存储空间内。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述目标存储系统已配置的桶中不存在与所述特征数据对应的目标桶的情况下,将所述特征数据存储至第一桶关联的存储空间内;所述第一桶包括所述目标存储系统已配置的桶中的未存有数据的桶或者新建立的桶。6.根据权利要求1所述的方法,其特征在于,所述将所述特征数据存储至与其对应的桶关联的存储空间内之后,所述方法还包括:获取数据读取任务,并基于所述数据读取任务确定所要读取的目标子特征数据所在的至少一个桶;基于所述目标子特征数据所在的至少一个桶,将所述数据读取任务划分为多个子数据读取任务;
针对每个子数据读取任务,采用多路归并算法进行数据合并读取。7.根据权利要求6所述的方法,其特征在于,相同时段存入同一个桶的特征数据落入同一个数据文件,每个数据文件具有相应的主键,所述针对每个子数据读取任务,采用多路归并方法...

【专利技术属性】
技术研发人员:钱瀚谢凯
申请(专利权)人:脸萌有限公司
类型:发明
国别省市:

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

1