一种数据处理方法、装置及存储介质与流程

专利2023-02-19  118



1.本发明涉及数据存储技术领域,尤其涉及一种数据处理方法、装置及存储介质。


背景技术:

2.influxdb是一种时序型数据库,用于海量时序数据的高性能读写、存储和分析。通过influxdb-relay可将时序数据写入influxdb的数据库实例。目前influxdb-relay写入这多个数据库实例中的时序数据是相同的,即对同一份时序数据进行了备份。在面对海量时序数据时,由于多个数据库实例存储相同的数据,导致存储资源不足,无法提供海量时序数据的存储,因此,如何实现多设备集群部署的时序数据存储是目前亟需要解决的。


技术实现要素:

3.本技术实施例提供了一种数据处理方法,用于海量时序数据的存储,提高了存储系统的可用性。
4.第一方面,本技术提供了一种数据处理方法,该方法可以由具有计算处理能力的电子设备,例如个人计算机执行,该方法具体包括:
5.电子设备获取待存储的时序数据,根据分片规则对时序数据进行分片处理。然后,电子设备对分片后的时序数据进行一致性哈希运算,根据运算结果确定存储时序数据的目标存储设备,将时序数据存储至目标存储设备的数据库。其中,分片规则包括数据采集指标及数据库,该数据库用于存储根据数据采集指标采集的时序数据,不同的分片规则包括的采集指标和/或数据库不同。由于分片规则中数据采集指标和数据库是对应的,因此,通过数据采集指令可确定分片后的时序数据分别对应的数据库。通过一致性哈希算法确定分片后的时序数据存储于多设备中的哪一个设备。不同的设备可存储不同的时序数据,从而系统的存储能力大幅提升。
6.可选的,电子设备记录时序数据的存储失败次数n,当n大于预设阈值时,将时序数据存储至缓存模块。本技术实施例中设置缓存模块,当时序数据存储失败时,例如目标存储设备发生故障时,可将时序数据暂存在缓存模块,从而避免时序数据的丢失,漏存储。
7.可选的,电子设备在确定目标存储设备能够存储数据时,获取缓存模块中的时序数据,将该时序数据存储至目标存储设备的数据库。当目标存储设备的故障排除,可从缓存模块中获取该时序数据并存储至目标存储设备,以节约缓存模块的存储空间。
8.可选的,电子设备可将一致性哈希环设置为只写模式,并在该一致性哈希环上部署新的存储设备,即扩充一致性哈希环上的节点。然后,电子设备将时序数据迁移到该新的存储设备之后,并将一致性哈希环设置为读写模式。本技术实施例采用一致性哈希环结构,在系统存储能力不足时,部署新的存储设备。电子设备仅需对一致性哈希环上的数据进行少量的迁移即可完成设备的部署。
9.可选的,电子设备根据可用的存储资源确定能够新部署的存储设备的个数,以获取更大的存储能力。
10.第二方面,本技术实施例提供了一种数据处理装置,可用于实现第一方面提供的数据处理方法。其中,该数据处理装置包括获取单元、分片单元及存储单元。其中,获取单元用于获取待存储的时序数据。分片单元用于根据分片规则对时序数据进行分片处理,分片规则包括数据采集指标及数据库,数据库用于存储根据数据采集指标采集的时序数据,不同的分片规则包括的采集指标和/或数据库不同。存储单元用于对分片后的时序数据进行一致性哈希运算,根据运算结果确定存储时序数据的目标存储设备,将时序数据存储至目标存储设备的数据库。
11.可选的,存储单元还用于记录时序数据的存储失败次数n,当n大于预设阈值时,将时序数据存储至缓存模块。
12.可选的,存储单元还用于在确定目标存储设备能够存储数据时,获取缓存模块中的时序数据,将时序数据存储至目标存储设备的数据库。
13.可选的,该数据处理装置还包括扩充单元,该扩充单元还用于将一致性哈希环设置为只写模式,并在一致性哈希环上部署新的存储设备。然后,将时序数据迁移到新的存储设备,并将一致性哈希环设置为读写模式。
14.可选的,扩充单元还用于根据可用的存储资源确定能够新部署的存储设备的个数。
15.第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上的可被处理器执行的计算机程序,该处理器执行计算机程序时实现如第一方面以及各个可选项的所述方法。
16.第四方面,本发明还提供一种计算机可读存储介质,计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面以及各个可选项所述的步骤。
附图说明
17.图1为本技术实施例提供的数据处理架构示意图;
18.图2为本技术实施例提供的数据处理流程示意图;
19.图3为本技术实施例提供的数据处理装置的结构示意图;
20.图4为本技术实施例提供的存储单元与缓存模块的交互示意图;
21.图5为本技术实施例提供的电子设备结构示意图。
具体实施方式
22.为了更好地理解本技术实施例提供的技术方案,首先介绍本技术实施例所涉及的一些技术概念。
23.1)时序数据,是一系列按时间顺序记录的数据。例如,自动驾驶汽车在道路上行驶时,安装在车身的传感器需要实时采集道路信息,生成的数据就是时序数据。类似的时序数据通常需要上传至云端,以供云端分析并进行决策,指导自动驾驶汽车在道路上的运行。为了决策更为准确,通常收集的时序数据量非常庞大。
24.2)一致性哈希运算,可应用于分布式缓存。通过一致性哈希算法可将数据和用于存储数据的节点全部映射到0~2^32-1的数值空间上,且该数值空间首尾相连,即2^32-1之后是0。这个首尾相连的数据空间称为哈希环。在将数据存储到节点的过程中,将数据进行
哈希运算得到的哈希值与用于存储数据的节点的哈希值做对比,以将数据存储至最相近哈希值对应的节点。
25.下面介绍与本技术实施例相关的一些内容。
26.influxdb-relay提供了一种简单的时序数据存储方案。influxdb-relay采用了多设备存储的架构,可将时序数据存储至多个设备中。但是influxdb-relay只能实现将时序数据简单写入多个设备,每个设备中的数据是同样的数据。即influxdb-relay对同一份数据进行了多个设备存储的备份。因此,在面对海量时序数据时,由于多个设备存储相同的数据,导致存储资源不足,无法提供海量时序数据的存储。且,目前influxdb-relay无法保证时序数据的写入可靠性。为此,本技术实施例提供了一种多设备集群部署的时序数据存储方法,可实现海量时序数据的存储,提高了存储系统的能力和可靠性。
27.请参见图1,为本技术实施例提供的时序数据的存储系统架构图。需要说明的是,本技术实施例中的influxdb实例即为存储数据的设备(也称为存储设备),如图1,该系统架构包括多个influxdb实例,也就是部署多个设备集群。根据一致性哈希环的原理,多个存储设备通过一致性哈希算法可部署在哈希环上,且可以确定各个设备在哈希环上的位置,成为哈希环上的存储时序数据的节点。写入时序数据,即存储时序数据,在存储时序数据时,可通过一致性哈希算法确定将时序数据存储于哈希环中的哪个节点。
28.本技术实施例提供的存储系统还设置了influxdb-relay增强模块,用于时序数据写入设备前的预处理。为了实现数据的备份,本技术实施例可设置两个influxdb-relay增强模块,在写入时序数据时,两个influxdb-relay增强模块分别接收该时序数据,将该时序数据写入相同的设备中,以备份该时序数据。通过设置两个influxdb-relay增强模块,当其中一个influxdb-relay增强模块失效时,整个系统仍能够稳定运行。考虑到两个influxdb-relay增强模块的负载均衡,本技术实施例提供的存储系统还设置了负载均衡模块,用于均衡两个influxdb-relay增强模块的负载,使得时序数据写入时,两个influxdb-relay模块的负载均不至于过高。本技术实施例中的负载均衡模块可以是nginx。
29.下面结合附图进一步介绍本技术实施例提供的数据处理的方法。另外,本技术实施例提供的数据处理方法可由具有处理功能的电子设备执行,电子设备包括云服务器、个人计算机(pc)等。当然,本技术实施例中的电子设备的类型不限于此。
30.请参见图2,为本技术实施例提供的数据处理流程。该流程中的数据分片规则可包括多个,为方便说明,下面结合云计算应用场景对本技术实施例提供的数据处理流程进一步阐述。
31.s201,获取待存储的时序数据。
32.本技术实施例对时序数据的来源不作限制。例如,云计算应用场景下,为了确保云平台运行的稳定,需要实时监控云平台的物理主机运行状态,这就需要采集各个物理主机的运行数据,例如运行时间、cpu、内存、网络、磁盘的使用状况等。这种场景中,时序数据可以来自多个物理主机,为从这多个物理主机采集的运行数据。又例如,在自动驾驶汽车领域中,为了更为准确地决策车辆的行为,需要获取多组环境参数,例如道路信息、用于判断周围是否存在障碍物的信道等等。这种场景中,时序数据可以是通过安装在车辆的传感器采集的道路信息等。
33.为了分析所采集的时序数据,通常需要分析(待存储)的时序数据并存储至数据
库,以用于后续存储的时序数据进行分析。具体的,电子设备可调用数据采集工具获取待存储的时序数据。本技术实施例对数据采集工具的类型不作限制,例如,数据采集工具可以是telegraf。本技术实施例以时序数据的数据格式为lineprotocol格式为例。
34.s202,根据分片规则对时序数据进行分片处理,分片规则包括数据采集指标及数据库。数据库用于存储根据数据采集指标采集的时序数据,不同的分片规则包括的采集指标和/或数据库不同。
35.数据库设置于存储设备,一个存储设备可设置一个或多个数据库。每个数据库均用于存储时序数据。同一个数据库可分布在多个存储设备。以数据库1为例,数据库1可分布在第一存储设备和第二存储设备。本技术实施例对配置同一数据库的设备数量不作具体限制,可以部署更多个存储设备以提升系统中数据库1的存储能力。不同类型的时序数据可存储于不同的数据库。在本技术实施例中,可通过分片规则对时序数据进行分类。分片规则可包括至少一个数据采集指标以及与一个或多个数据采集指标对应的数据库。不同的分片规则包括的数据采集指标和/或数据库不同。数据采集指标,例如包括处理器的数据采集指标(记为数据采集指标cpu)、存储器的数据采集指标(记为数据采集指标mem)、硬盘(或磁盘)数据采集指标(记为数据采集指标disk)、磁盘读写数据采集指标(记为数据采集指标diskio)。本技术实施例对数据采集指标的种类和个数不作限制。不同的分片规则包括的数据采集指标和/或数据库不同。电子设备可根据时序数据的数据采集指标确定该时序数据要存储的数据库(也称为目标数据库)。
36.例如,电子设备可根据分片规则对获取的时序数据进行分片处理,以确定将时序数据存储在哪个数据库。为方便描述,下文以数据库包括数据库1及数据库2为例。可约定数据库1用于存放通过数据采集指标cpu及数据采集指标mem采集的时序数据;数据库2用于存放通过数据采集指标disk及数据采集指标diskio采集的时序数据。电子设备获取了待存储的时序数据,可获取该待存储的时序数据的数据采集指标。如果数据采集指标包括数据采集指标cpu和数据采集指标mem,那么电子设备可确定将时序数据存储在数据库1中。如果数据采集指标包括数据采集指标disk和数据采集指标diskio,那么电子设备可确定将时序数据存储在数据库2中。
37.以上述云计算应用场景为例,如果想要分析物理主机的cpu和存储器中资源剩余情况,可根据数据采集指标cpu和数据采集指标mem对获取的时序数据进行分片,以将根据数据采集指标cpu采集的时序数据和根据数据采集指标mem采集的时序数据存储在同一个数据库中便于分析。可以理解的是,数据采集指标cpu可指示物理主机的处理器的运行情况,数据采集指标mem可指示物理主机内存的占用情况。
38.s203,对分片后的时序数据进行一致性哈希运算,根据运算结果确定存储时序数据的目标存储设备,将时序数据存储至目标存储设备的数据库。
39.由于同一数据库对应的存储设备有多个,为此,电子设备还需要确定将时序数据存储于哪个存储设备。
40.可以理解的是,通过一致性哈希运算可以确定一致性哈希环上的存储设备在一致性哈希环上的位置。电子设备在根据分片规则将时序数据分片后,可对分片后的时序数据进行一致性哈希运算,根据运算得到的哈希值确定最相近的存储设备的哈希值,即哈希值最相近的存储设备(称为目标存储设备)为存储时序数据的设备。由于时序数据已经分片处
理,相应的,可将分片后得到的各个时序数据存储在目标存储设备中与分片后的时序数据分别对应的数据库。例如,根据数据采集cpu指标采集的时序数据通过一致性哈希计算确定存储于第一存储设备中,则电子设备将该时序数据存储至第一存储设备的数据库1中。
41.可选地,还可以将根据数据采集cpu指标采集的时序数据存储在第二存储设备的数据库1中,以对该时序数据进行备份。由于第一存储设备及第二存储设备同时存储通过相同的数据采集指标,例如数据采集指标cpu及数据采集指标mem指标采集的时序数据,因此实现了时序数据的多设备分布式存储。
42.当系统中存在大量的时序数据时,通过分片规则将时序数据分片处理,确定各个分片后的时序数据要存储的目标数据库。再通过一致性哈希算法确定分片后的时序数据存储于多设备中的哪一个设备。不同的设备可存储不同的时序数据,即将海量的时序数据通过一致性哈希运算分散于多个存储设备,形成分布式存储,使得整个系统数据存储的能力大幅增加。
43.在实际应用场景中,某个或某些存储设备可能会出现网络突变或突然断电的情况,导致无法写入时序数据。为避免数据丢失,本技术实施例提供了一种数据写入失败重试机制。
44.具体的,电子设备存储时序数据失败时,可进行失败重试,即至少一次尝试将该时序数据写入存储设备中,并记录该时序数据的存储失败次数n。当n大于预设阈值,电子设备确定存储设备发生故障,无法成功存储时序数据。这种情况下,电子设备可将时序数据存储至缓存模块。当电子设备确定发生故障的存储设备排除故障后,即电子设备确定该存储设备能够存储数据时,可从缓存模块获取所存储的时序数据,再将该时序数据存储至对应的存储设备的对应数据库中,从而提高时序数据写入的可靠性。当时序数据成功存储后,电子设备将该时序数据从缓存模块中删除,以节约存储空间。
45.随着时序数据的增加,存储系统中原始部署的存储设备不足以满足存储需求。为此,本技术实施例可扩充存储设备,即在一致性哈希环上部署更多存储设备以提升存储能力。也可以认为,在原有一致性哈希环上的多个节点间新加入至少一个节点。具体的,电子设备可以根据系统中的可用存储资源确定能够新部署的存储设备的个数。
46.电子设备部署新的存储设备时,首先可将一致性哈希环设置为只写模式,然后部署新的存储设备。为新的存储设备创建数据库,并使用influxdb数据迁移工具将时序数据迁移到该新的存储设备中,完成一致性哈希环的节点扩充。在增加新的存储设备后需要修改influxdb-relay增强模块中对应的存储设备的配置文件,以使得该新的存储设备启用后,influxdb-relay增强模块便可对该新的存储写入时序数据。在完成新加入的存储设备的配置后,电子设备需将一致性哈希环设置为读写模式,以使得各个存储设备上的时序数据可以被读出。本技术实施例通过一致性哈希算法可让节点在扩容或者缩容时,只需少量的数据迁移即可完成设备的部署。
47.在本技术实施例中,多个存储设备通过一致性哈希算法部署在哈希环上。从而influxdb-relay增强模块根据数据采集指标可对待存储的时序数据进行分片,以对待存储的数据进行分类。由于数据采集指标与数据库对应,因此,可确定存储每一类时序数据的数据库。在存储任一类时序数据时,可通过一致性哈希算法确定将该类时序数据存储于哈希环中的哪个存储设备。不同的设备可存储不同的时序数据,从而系统的存储能力大幅提升。
48.本技术实施例提供的存储系统可设置两个influxdb-relay增强模块,当其中一个influxdb-relay增强模块失效时,整个系统仍能够稳定运行。在确定无法成功存储时序数据时,可将时序数据存储至缓存模块,以避免时序数据的丢失,漏存储。当目标存储设备的故障排除,可从缓存模块中获取该时序数据并存储至目标存储设备,以节约缓存模块的存储空间。在系统存储能力不足时,部署新的存储设备,以实现存储的扩容,且仅需对一致性哈希环上的数据进行少量的迁移即可完成设备的部署。
49.如上介绍了本技术实施例提供的数据存储方法。基于同一发明构思,本技术实施例还提供了一种设备,下面结合附图介绍本技术实施例所提供的设备。
50.请参见图3,本技术实施例提供了一种数据处理装置300。该装置包括获取单元301,分片单元302,存储单元303。其中,获取单元301用于获取待存储的时序数据。分片单元302用于根据分片规则对时序数据进行分片处理,分片规则包括数据采集指标及数据库,数据库用于存储根据数据采集指标采集的时序数据。不同的分片规则包括的采集指标和/或数据库不同。存储单元303用于对分片后的时序数据进行一致性哈希运算,根据运算结果确定存储时序数据的目标存储设备,并将该时序数据存储至目标存储设备的数据库。
51.可选的,存储单元303还用于记录时序数据库的存储失败次数n,当n大于预设阈值时,将时序数据写入至缓存模块。请参见图4,示出了缓存模块401与存储单元303的交互情况。当存储设备突然断电关闭,存储单元303存储失败,而后进行存储重试,当存储重试后失败次数n大于预设阈值时,将时序数据写入至缓存模块401中。
52.可选的,当存储单元303确定目标存储设备能够存储数据时,获取缓存模块401中的时序数据,将该时序数据重新存储至目标存储设备对应的数据库中。
53.可选的,数据处理装置300还包括扩充单元304,该扩充单元304还用于将一致性哈希环设置为只写模式,并在一致性哈希环上部署新的存储设备,将时序数据迁移到该新设备完成节点扩充后,将一致性哈希环设置为读写模式。
54.可选的,扩充单元304还用于根据可用的存储资源确定能够新部署的存储设备的个数。
55.基于同一发明构思,本技术实施例还提供了一种电子设备500,该电子设备500可以实现图2所示的流程。该电子设备500包括至少一个处理器501及与该至少一个处理器501通信连接的存储器502,该处理器501执行计算机程序时实现上述任意的数据处理的方法。需要说明的是,存储器502是可选的,也就是不是必须的,因此在图5中以虚线进行示意。
56.本发明实施例还提供一种计算机存储介质,其中,计算机存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图2所述的方法。
57.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
58.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到
通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
59.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
60.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
61.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。

技术特征:
1.一种数据处理方法,其特征在于,包括:获取待存储的时序数据;根据分片规则对所述时序数据进行分片处理,所述分片规则包括数据采集指标及数据库,所述数据库用于存储根据所述数据采集指标采集的时序数据,不同的分片规则包括的数据采集指标和/或数据库不同;对所述分片后的时序数据进行一致性哈希运算,根据运算结果确定存储所述时序数据的目标存储设备,将所述时序数据存储至所述目标存储设备的所述数据库。2.如权利要求1所述的方法,其特征在于,所述方法还包括:记录所述时序数据的存储失败次数n;当n大于预设阈值时,将所述时序数据存储至缓存模块。3.如权利要求2所述的方法,其特征在于,所述还包括:在确定所述目标存储设备能够存储数据时,获取所述缓存模块中的所述时序数据,将所述时序数据存储至所述目标存储设备的所述数据库。4.如权利要求1-3任一项所述的方法,其特征在于,多个存储设备为一致性哈希环上的节点,所述方法还包括:将所述一致性哈希环设置为只写模式;在所述一致性哈希环上部署新的存储设备;将所述时序数据迁移到所述新的存储设备,并将所述一致性哈希环设置为读写模式。5.如权利要求4所述的方法,其特征在于,所述方法还包括:根据可用的存储资源确定能够新部署的存储设备的个数。6.一种数据处理装置,其特征在于,包括:获取单元,用于获取待存储的时序数据;分片单元,用于根据分片规则对所述时序数据进行分片处理,所述分片规则包括数据采集指标及数据库,所述数据库用于存储根据所述数据采集指标采集的时序数据,不同的分片规则包括的数据采集指标和/或数据库不同;存储单元,用于对所述分片后的时序数据进行一致性哈希运算,根据运算结果确定存储所述时序数据的目标存储设备,将所述时序数据存储至所述目标存储设备的所述数据库。7.如权利要求6所述的装置,其特征在于,所述存储单元还用于:记录所述时序数据的存储失败次数n;当n大于预设阈值时,将所述时序数据存储至缓存模块。8.如权利要求7所述的装置,其特征在于,所述存储单元还用于:在确定所述目标存储设备能够存储数据时,获取所述缓存模块中的所述时序数据,将所述时序数据存储至所述目标存储设备的所述数据库。9.一种电子设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行根据权利要求1-5中任一项所述的方法。10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述
计算机程序用于执行根据权利要求1-5中任一项所述的方法。

技术总结
本申请涉及一种数据处理方法、装置及存储介质。具体包括:获取待存储的时序数据,根据分片规则对时序数据进行分片处理。然后,对分片后的时序数据进行一致性哈希运算,根据运算结果确定存储时序数据的目标存储设备,将时序数据存储至目标存储设备的数据库。其中,分片规则包括数据采集指标及数据库,该数据库用于存储根据数据采集指标采集的时序数据,不同的分片规则包括的采集指标和/或数据库不同。通过该方法可满足对海量时序数据的存储需求。该方法可满足对海量时序数据的存储需求。该方法可满足对海量时序数据的存储需求。


技术研发人员:黎海育 郑云 朱志鹏 陈炜
受保护的技术使用者:天翼云科技有限公司
技术研发日:2022.07.14
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-1083.html

最新回复(0)