本公开涉及数据存储,尤其涉及一种实时数据的动态存储方法、装置、设备、存储介质和程序产品。
背景技术:
1、随着科学技术的发展,各类信息数据以指数级的速度持续增长,面对海量实时数据的数据异构化的问题,传统的解决方案采用多个存储数据模型并存,多个存储系统分别独立,分别处理的方式解决,随着数据规模的不断增大,多数据模型底层并存的存储方式必然会导致数据存储的巨大冗余,异构数据系统之间的数据同步也会增加大量的额外开销。
2、在考虑到数据的实时性要求时,对于海量异构数据的高速存储一般是需要在缓冲区中进行一系列复杂的操作,单缓冲区将很难胜任。同时,由于现阶段海量异构数据资源存储设备的逐渐增多,设备之间的性能也在逐渐减少,即使在性能较低的设备也能提供比较优越的存储能力,若只将高频访问的数据集中放置于高性能的存储设备上,也会导致设备出现性能瓶颈。
技术实现思路
1、鉴于上述问题,本公开提供了一种实时数据的动态存储方法、装置、设备、存储介质和程序产品。
2、根据本公开的一方面,提供了一种实时数据的动态存储方法,包括:将第一实时数据存入第一类动态缓冲区,将第二实时数据存入第二类动态缓冲区,其中,第一实时数据和第二实时数据是对获取到的实时数据进行预处理后得到的;
3、分别对存入第一类动态缓冲区的第一实时数据和存入第二类动态缓冲区的第二实时数据进行数据标准化处理,得到第一目标实时数据和第二目标实时数据;
4、将第一目标实时数据和第二目标实时数据存入统一异构数据对象中,并为第一目标实时数据和第二目标实时数据分别建立索引结构;
5、根据索引结构、第一目标实时数据的数据访问特征和第二目标实时数据的数据访问特征,确定第一目标实时数据和第二目标实时数据分别对应的存储设备;
6、根据存储设备的性能和数据访问特征,对第一目标实时数据和第二目标实时数据进行存储设备间的数据迁移,以实现实时数据的动态存储。
7、根据本公开的实施例,在将第一实时数据存入第一类动态缓冲区之前,还包括:分别建立第一类动态缓冲区和第二类动态缓冲区。
8、根据本公开的实施例,其中,分别建立第一类动态缓冲区和第二类动态缓冲区,包括:
9、分别统计第一实时数据和第二实时数据占获取的实时数据的比例;
10、设置具有相同容量的第一类动态缓冲区和第二类动态缓冲区;
11、根据第一实时数据在获取的实时数据的比例和第二实时数据在获取的实时数据的比例,对第一类动态缓冲区和第二动态缓冲区进行动态划分。
12、根据本公开的实施例,其中,第一实时数据包括第一标记实时数据和第一非标记实时数据;第一类动态缓冲区包括第一子动态缓冲区和第二子动态缓冲区;
13、其中,将第一实时数据存入第一类动态缓冲区,包括:
14、设置具有相同容量的第一子动态缓冲区和第二子动态缓冲区,其中,第一子动态缓冲区包括第一标记实时数据缓冲区和第一非标记实时数据缓冲区;
15、统计当前第一标记实时数据和当前第一非标记实时数据分别占第一实时数据的比例;
16、根据当前第一标记实时数据和当前第一非标记实时数据分别占第一实时数据的比例,对第一标记实时数据缓冲区和第一非标记实时数据缓冲区进行动态划分;
17、将当前第一标记实时数据写入第一子动态缓冲区中的第一标记实时数据缓冲区,将当前第一非标记实时数据写入第一非标记实时数据缓冲区。
18、根据本公开的实施例,其中,第二子动态缓冲区包括第二标记实时数据缓冲区和第二非标记实时数据缓冲区;
19、其中,将第一实时数据存入第一类动态缓冲区,还包括:
20、在第一子动态缓冲区写满的情况下,统计当前第一标记实时数据和当前第一非标记实时数据分别占第一实时数据的比例;
21、根据当前第一标记实时数据和当前第一非标记实时数据分别占第一实时数据的比例,对第二标记实时数据缓冲区和第二非标记实时数据缓冲区进行动态划分;
22、将当前第一标记实时数据写入第二子动态缓冲区中的第二标记实时数据缓冲区,将当前第一非标记实时数据写入第二非标记实时数据缓冲区;
23、在第二子动态缓冲区写满的情况下,回到第一子动态缓冲区,用覆盖的方式将新获取的当前第一标记实时数据和当前第一非标记实时数据写入第一子动态缓冲区。
24、根据本公开的实施例,其中,为第一目标实时数据和第二目标实时数据分别建立索引结构,包括:
25、基于内存分配策略,对内存进行分配,并记录每个内存页面的写入次数;
26、根据写入次数,将内存页面进行分类,并动态调整内存页面的磨损范围;
27、根据内存页面磨损范围,将第一目标实时数据和第二目标实时数据建立索引结构。
28、根据本公开的实施例,其中,根据索引结构、第一目标实时数据的数据特征和第二目标实时数据的数据特征,分别确定第一目标实时数据和第二目标实时数据的分别对应的存储设备,包括:
29、根据索引结构,确定第一目标实时数据和第二目标实时数据的存储设备;
30、根据第一目标实时数据和第二目标实时数据在存储设备上的读写频率,确定第一目标实时数据和第二目标实时数据在分别对应存储设备上的访问特征;
31、根据存储设备上的访问特征,将第一目标实时数据和第二目标实时数据分别存储在对应的存储设备上。
32、根据本公开的实施例,其中,根据存储设备的性能和数据访问特征,对第一目标实时数据和第二目标实时数据进行存储设备间的数据迁移,包括:
33、根据对第一目标实时数据和第二目标实时数据的数据访问特征,分别确定第一目标实时数据和第二目标实时数据中的目标迁移数据;
34、根据存储设备的性能,确定存储设备的负载能力;
35、根据预设数据迁移比例和存储设备的负载能力,将目标迁移数据进行存储设备间的数据迁移。
36、本公开的另一方面提供了一种实时数据的动态存储装置,包括:第一存储模块,用于将第一实时数据存入第一类动态缓冲区,将第二实时数据存入第二类动态缓冲区,其中,第一实时数据和第二实时数据是对获取到的实时数据进行预处理后得到的;
37、处理模块,用于分别对存入第一类动态缓冲区的第一实时数据和存入第二类动态缓冲区的第二实时数据进行数据标准化处理,得到第一目标实时数据和第二目标实时数据;
38、第二存储模块,用于将第一目标实时数据和第二目标实时数据存入统一异构数据对象中;
39、建立模块,用于为第一目标实时数据和第二目标实时数据分别建立索引结构;
40、确定模块,用于根据索引结构、第一目标实时数据的数据访问特征和第二目标实时数据的数据访问特征,确定第一目标实时数据和第二目标实时数据分别对应的存储设备;
41、迁移模块,用于根据存储设备的性能和数据访问特征,对第一目标实时数据和第二目标实时数据进行存储设备间的数据迁移,以实现实时数据的动态存储。
42、本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述方法。
43、本公开的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。
44、本公开的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。
45、根据本公开提供的实时数据的动态存储方法、装置、设备、存储介质和程序产品。通过将不同的实时数据存储至不同类的动态缓冲区,对存入不同类的动态缓冲区的数据分别进行数据标准化处理,并存储至统一异构数据对象中,并对统一异构数据对象中的不同数据建立索引结构,以确定分别对应的存储设备,再利用数据访问特征和存储设备性能,对数据进行数据迁移,因此,至少部分解决了单缓冲区难以胜任海量实时数据的高效存储以及存储设备性能出现瓶颈的技术问题,实现了能够降低接收数据的延迟,使内存效率最大化,同时,动态选择数据的存储设备,可以使得在保证转移数据的数据量不会使得低性能设备超过其负载能力的基础上,提高设备的利用率的技术效果。