基于动态权重均衡时序数据库集群的时序数据存储方法技术

技术编号:33287358 阅读:11 留言:0更新日期:2022-04-30 23:57
本发明专利技术提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,包括:时序数据库集群配置集群接口、发布订阅消息系统集群、读写器和m个时序数据库;集群接口启动时初始化生成n个虚拟桶,为每个虚拟桶确定分配区间段;采用基于动态权重均衡时序数据库集群的时序数据库选取算法,确定目标时序数据库,并存储数据。本发明专利技术提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,用于物联网云端存储海量设备采集数据的场景,可以解决当前集群内各个时序数据库存储数据严重不均衡造成存储空间浪费和集群横向扩展困难的问题。通过本发明专利技术,能够将物联网设备采集数据均匀的存储到时序数据库集群中的各个时序数据库中,提高用户体验。高用户体验。高用户体验。

【技术实现步骤摘要】
基于动态权重均衡时序数据库集群的时序数据存储方法


[0001]本专利技术属于时序数据存储
,具体涉及一种基于动态权重均衡时序数据库集群的时序数据存储方法。

技术介绍

[0002]物联网系统需要在云端利用时序数据库存储海量的设备采集数据,以供应用查询和分析使用。influx

proxy作为时序数据库(influxdb)的集群方案,解决了单机版时序数据库无法存储海量的设备采集数据的问题。由于influx

proxy基于hash算法为时序数据库集群中的各个时序数据库分配需存储的设备采集数据,具有时序数据库集群中的各个时序数据库存储的数据量严重不均衡的问题。

技术实现思路

[0003]针对现有技术存在的缺陷,本专利技术提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,可有效解决上述问题。
[0004]本专利技术采用的技术方案如下:
[0005]本专利技术提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,包括以下步骤:
[0006]步骤1,时序数据库influxdb集群配置集群接口influx

gate、发布订阅消息系统集群kafka、读写器influx

writer和m个时序数据库influxdb,m个时序数据库influxdb依次表示为:时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdb
m

[0007]步骤2,集群接口influx

gate存储分配表;所述分配表用于存储时序数据库influxdb集群中所有的表measurement全局唯一ID以及其当前所在的时序数据库influxdb的地址IP的映射;
[0008]其中,所述表measurement全局唯一ID的产生过程为:如果表measurement用于存储特定设备的特定类型的时序数据,则通过对特定设备ID和数据特定类型ID进行组合,得到表measurement全局唯一ID;
[0009]步骤3,集群接口influx

gate存储当前最新的时序数据库剩余空间统计表;
[0010]所述时序数据库剩余空间统计表存储每个时序数据库influxdb
i
的当前剩余空间S
i
;其中,i=1,2,...,m;还通过对所有时序数据库influxdb的当前剩余空间求和,得到集群总剩余空间S


[0011]步骤4,虚拟桶的分配区间段的分配方法:
[0012]步骤4.1,集群接口influx

gate启动时初始化生成n个虚拟桶,分别表示为:虚拟桶虚拟桶虚拟桶
[0013]步骤4.2,集群接口influx

gate生成每个虚拟桶的虚拟桶全局唯一ID,然后计算虚拟桶全局唯一ID的md5值,取md5值最后四个字节,作为虚拟桶整数字段;因此,虚拟桶整数字段的取值范围为:[0000,9999];
[0014]因此,对于虚拟桶虚拟桶虚拟桶其对应的虚拟桶整数字段依次表示为:
[0015]步骤4.3,将n个虚拟桶按虚拟桶整数字段从小到大顺序排序,排序后的虚拟桶表示为:虚拟桶虚拟桶虚拟桶对应的虚拟桶整数字段排序表示为:
[0016]步骤4.4,对于任意虚拟桶其中,j=1,2,...,n,采用以下方法,得到其分配区间段KP
j

[0017]虚拟桶的虚拟桶整数字段为
[0018]如果j=1,则分配区间段
[0019]如果j≠1,则分配区间段
[0020]因此,对于虚拟桶虚拟桶虚拟桶其对应的分配区间段为:KP1,KP2,...,KP
n

[0021]分配区间段KP1,KP2,...,KP
n
的长度依次为:F1,F2,...,F
n

[0022]则:n个分配区间段的长度的标准差,小于设定阈值,各个分配区间段的长度趋于相等;通过此种方式,将完整整数空间[0,2
32

1]划分成n个分配区间段;
[0023]步骤5,每当集群接口influx

gate接收到一个写入数据请求时,所述集群接口influx

gate对所述写入数据请求进行分析,得到待写入数据对应的设备ID和数据类型ID,然后,对所述设备ID和数据类型ID进行组合,得到表measurement全局唯一ID,表示为:表measurement全局唯一ID(new);
[0024]步骤6,所述集群接口influx

gate查找步骤2的所述分配表,判断所述分配表中,是否存在步骤5得到的表measurement全局唯一ID(new)的记录,如果不存在,则执行步骤7;如果存在,则获得表measurement全局唯一ID(new)对应的时序数据库influxdb的地址IP,作为目标时序数据库influxdb的地址IP,然后执行步骤8;
[0025]步骤7,所述集群接口influx

gate采用基于动态权重均衡时序数据库集群的时序数据库选取算法,从时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdb
m
中选取到目标时序数据库influxdb,得到目标时序数据库influxdb的地址IP,然后执行步骤8;
[0026]具体步骤为:
[0027]步骤7.1,所述集群接口influx

gate读取步骤3的所述当前最新的时序数据库剩余空间统计表,
[0028]计算得到集群中每个时序数据库influxdb
i
的当前剩余空间S
i
在集群总剩余空间S

的比例R
i
,再采用该比例R
i
,乘以虚拟桶总数n,得到分配给该时序数据库influxdb
i
的虚拟桶个数;
[0029]步骤7.2,按照步骤7.1得到的每个时序数据库influxdb
i
所分配的虚拟桶个数,将n个虚拟桶分配给m个时序数据库influxdb,并得到虚拟桶分配表;
[0030]所述虚拟桶分配表,用于记录虚拟桶全局唯一ID、虚拟桶分配区间段以及虚拟桶所归属的时序数据库influxdb地址IP的映射;
[0031]步骤7.3,对于当前正在被处理的写入数据请求,所述集群接口influx

gate计算步骤5得到的表measurement全局唯一ID(new)的md5值,取md5值最后四个字节,作为表整数字段X(new);
[0032]然后,以表整数字段X(new)为查询关键词,查找步骤7.2建立的虚拟桶分配表,得到包含表整数字段X(new)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态权重均衡时序数据库集群的时序数据存储方法,其特征在于,包括以下步骤:步骤1,时序数据库influxdb集群配置集群接口influx

gate、发布订阅消息系统集群kafka、读写器influx

writer和m个时序数据库influxdb,m个时序数据库influxdb依次表示为:时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdb
m
;步骤2,集群接口influx

gate存储分配表;所述分配表用于存储时序数据库influxdb集群中所有的表measurement全局唯一ID以及其当前所在的时序数据库influxdb的地址IP的映射;其中,所述表measurement全局唯一ID的产生过程为:如果表measurement用于存储特定设备的特定类型的时序数据,则通过对特定设备ID和数据特定类型ID进行组合,得到表measurement全局唯一ID;步骤3,集群接口influx

gate存储当前最新的时序数据库剩余空间统计表;所述时序数据库剩余空间统计表存储每个时序数据库influxdb
i
的当前剩余空间S
i
;其中,i=1,2,...,m;还通过对所有时序数据库influxdb的当前剩余空间求和,得到集群总剩余空间S

;步骤4,虚拟桶的分配区间段的分配方法:步骤4.1,集群接口influx

gate启动时初始化生成n个虚拟桶,分别表示为:虚拟桶虚拟桶...,虚拟桶步骤4.2,集群接口influx

gate生成每个虚拟桶的虚拟桶全局唯一ID,然后计算虚拟桶全局唯一ID的md5值,取md5值最后四个字节,作为虚拟桶整数字段;因此,虚拟桶整数字段的取值范围为:[0000,9999];因此,对于虚拟桶虚拟桶...,虚拟桶其对应的虚拟桶整数字段依次表示为:步骤4.3,将n个虚拟桶按虚拟桶整数字段从小到大顺序排序,排序后的虚拟桶表示为:虚拟桶虚拟桶...,虚拟桶对应的虚拟桶整数字段排序表示为:步骤4.4,对于任意虚拟桶其中,j=1,2,...,n,采用以下方法,得到其分配区间段KP
j
;虚拟桶的虚拟桶整数字段为如果j=1,则分配区间段如果j≠1,则分配区间段因此,对于虚拟桶虚拟桶...,虚拟桶其对应的分配区间段为:KP1,
KP2,...,KP
n
;分配区间段KP1,KP2,...,KP
n
的长度依次为:F1,F2,...,F
n
;则:n个分配区间段的长度的标准差,小于设定阈值,各个分配区间段的长度趋于相等;通过此种方式,将完整整数空间[0,2
32

1]划分成n个分配区间段;步骤5,每当集群接口influx

gate接收到一个写入数据请求时,所述集群接口influx

gate对所述写入数据请求进行分析,得到待写入数据对应的设备ID和数据类型ID,然后,对所述设备ID和数据类型ID进行组合,得到表measurement全局唯一ID,表示为:表measurement全局唯一ID(new);步骤6,所述集群接口influx

gate查找步骤2的所述分配表,判断所述分配表中,是否存在步骤5得到的表measurement全局唯一ID(new)的记录,如果不存在,则执行步骤7;如果存在,则获得表measurement全局唯一ID(new)对应的时序数据库influxdb的地址IP,作为目标时序数据库influxdb的地址IP,然后执行步骤8;步骤7,所述集群接口influx

gate采用基于动态权重均衡时序数据库集群的时序数据库选取算法,从时序数据库...

【专利技术属性】
技术研发人员:刘涛瞿洪桂陈文彬涂刚
申请(专利权)人:北京中电兴发科技有限公司
类型:发明
国别省市:

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

1