+

CN114416737B - 基于动态权重均衡时序数据库集群的时序数据存储方法 - Google Patents

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

Info

Publication number
CN114416737B
CN114416737B CN202210002029.8A CN202210002029A CN114416737B CN 114416737 B CN114416737 B CN 114416737B CN 202210002029 A CN202210002029 A CN 202210002029A CN 114416737 B CN114416737 B CN 114416737B
Authority
CN
China
Prior art keywords
time sequence
sequence database
virtual
cluster
infiluxdb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210002029.8A
Other languages
English (en)
Other versions
CN114416737A (zh
Inventor
刘涛
瞿洪桂
陈文彬
涂刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sinonet Science and Technology Co Ltd
Original Assignee
Beijing Sinonet Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sinonet Science and Technology Co Ltd filed Critical Beijing Sinonet Science and Technology Co Ltd
Priority to CN202210002029.8A priority Critical patent/CN114416737B/zh
Publication of CN114416737A publication Critical patent/CN114416737A/zh
Application granted granted Critical
Publication of CN114416737B publication Critical patent/CN114416737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

基于动态权重均衡时序数据库集群的时序数据存储方法
技术领域
本发明属于时序数据存储技术领域,具体涉及一种基于动态权重均衡时序数据库集群的时序数据存储方法。
背景技术
物联网系统需要在云端利用时序数据库存储海量的设备采集数据,以供应用查询和分析使用。influx-proxy作为时序数据库(influxdb)的集群方案,解决了单机版时序数据库无法存储海量的设备采集数据的问题。由于influx-proxy基于hash算法为时序数据库集群中的各个时序数据库分配需存储的设备采集数据,具有时序数据库集群中的各个时序数据库存储的数据量严重不均衡的问题。
发明内容
针对现有技术存在的缺陷,本发明提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,包括以下步骤:
步骤1,时序数据库influxdb集群配置集群接口influx-gate、发布订阅消息系统集群kafka、读写器influx-writer和m个时序数据库influxdb,m个时序数据库influxdb依次表示为:时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdbm
步骤2,集群接口influx-gate存储分配表;所述分配表用于存储时序数据库influxdb集群中所有的表measurement全局唯一ID以及其当前所在的时序数据库influxdb的地址IP的映射;
其中,所述表measurement全局唯一ID的产生过程为:如果表measurement用于存储特定设备的特定类型的时序数据,则通过对特定设备ID和数据特定类型ID进行组合,得到表measurement全局唯一ID;
步骤3,集群接口influx-gate存储当前最新的时序数据库剩余空间统计表;
所述时序数据库剩余空间统计表存储每个时序数据库influxdbi的当前剩余空间Si;其中,i=1,2,...,m;还通过对所有时序数据库influxdb的当前剩余空间求和,得到集群总剩余空间S
步骤4,虚拟桶的分配区间段的分配方法:
步骤4.1,集群接口influx-gate启动时初始化生成n个虚拟桶,分别表示为:虚拟桶
Figure BDA0003455062990000021
虚拟桶
Figure BDA0003455062990000022
虚拟桶
Figure BDA0003455062990000023
步骤4.2,集群接口influx-gate生成每个虚拟桶的虚拟桶全局唯一ID,然后计算虚拟桶全局唯一ID的md5值,取md5值最后四个字节,作为虚拟桶整数字段;因此,虚拟桶整数字段的取值范围为:[0000,9999];
因此,对于虚拟桶
Figure BDA0003455062990000024
虚拟桶
Figure BDA0003455062990000025
虚拟桶
Figure BDA0003455062990000026
其对应的虚拟桶整数字段依次表示为:
Figure BDA0003455062990000027
步骤4.3,将n个虚拟桶按虚拟桶整数字段从小到大顺序排序,排序后的虚拟桶表示为:虚拟桶
Figure BDA0003455062990000028
虚拟桶
Figure BDA0003455062990000029
虚拟桶
Figure BDA00034550629900000210
对应的虚拟桶整数字段排序表示为:
Figure BDA00034550629900000211
步骤4.4,对于任意虚拟桶
Figure BDA00034550629900000212
其中,j=1,2,...,n,采用以下方法,得到其分配区间段KPj
虚拟桶
Figure BDA00034550629900000213
的虚拟桶整数字段为
Figure BDA00034550629900000214
如果j=1,则分配区间段
Figure BDA00034550629900000215
如果j≠1,则分配区间段
Figure BDA0003455062990000031
因此,对于虚拟桶
Figure BDA0003455062990000032
虚拟桶
Figure BDA0003455062990000033
虚拟桶
Figure BDA0003455062990000034
其对应的分配区间段为:KP1,KP2,...,KPn
分配区间段KP1,KP2,...,KPn的长度依次为:F1,F2,...,Fn
则:n个分配区间段的长度的标准差,小于设定阈值,各个分配区间段的长度趋于相等;通过此种方式,将完整整数空间[0,232-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采用基于动态权重均衡时序数据库集群的时序数据库选取算法,从时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdbm中选取到目标时序数据库influxdb,得到目标时序数据库influxdb的地址IP,然后执行步骤8;
具体步骤为:
步骤7.1,所述集群接口influx-gate读取步骤3的所述当前最新的时序数据库剩余空间统计表,
计算得到集群中每个时序数据库influxdbi的当前剩余空间Si在集群总剩余空间S的比例Ri,再采用该比例Ri,乘以虚拟桶总数n,得到分配给该时序数据库influxdbi的虚拟桶个数;
步骤7.2,按照步骤7.1得到的每个时序数据库influxdbi所分配的虚拟桶个数,将n个虚拟桶分配给m个时序数据库influxdb,并得到虚拟桶分配表;
所述虚拟桶分配表,用于记录虚拟桶全局唯一ID、虚拟桶分配区间段以及虚拟桶所归属的时序数据库influxdb地址IP的映射;
步骤7.3,对于当前正在被处理的写入数据请求,所述集群接口influx-gate计算步骤5得到的表measurement全局唯一ID(new)的md5值,取md5值最后四个字节,作为表整数字段X(new);
然后,以表整数字段X(new)为查询关键词,查找步骤7.2建立的虚拟桶分配表,得到包含表整数字段X(new)的虚拟桶分配区间段KP(new),该虚拟桶分配区间段KP(new)所对应的时序数据库influxdb地址IP,即为查找到的目标时序数据库influxdb,由此得到目标时序数据库influxdb的地址IP;
步骤8,所述集群接口influx-gate,将当前需写入的数据、表measurement全局唯一ID(new)和目标时序数据库influxdb的地址IP打包为一个数据包,并将所述数据包写入到所述发布订阅消息系统集群kafka,由所述发布订阅消息系统集群kafka和读写器influx-writer配合,完成向目标时序数据库influxdb写入数据的过程;
所述集群接口influx-gate重新计算得到目标时序数据库influxdb的当前剩余空间以及集群总剩余空间S,更新步骤3的时序数据库剩余空间统计表和更新步骤2的分配表;然后返回步骤5,对下一个写入数据请求进行处理。
优选的,步骤8中,由所述发布订阅消息系统集群kafka和读写器influx-writer配合,完成向目标时序数据库influxdb写入数据的过程,具体为:
步骤8.1,所述读写器influx-writer,从所述发布订阅消息系统集群kafka中读取出所述数据包,通过对所述数据包进行解析,得到当前需写入的数据、表measurement全局唯一ID(new)和目标时序数据库influxdb的地址IP;
步骤8.2,所述读写器influx-writer根据目标时序数据库influxdb的地址IP,定位到目标时序数据库influxdb,然后向所述目标时序数据库influxdb发送当前需写入的数据以及对应的表measurement全局唯一ID(new);
步骤8.3,所述目标时序数据库influxdb判断库中是否已存在全局唯一ID为表measurement全局唯一ID(new)的表;
如果存在,则直接向全局唯一ID为表measurement全局唯一ID(new)的表中,写入当前需写入的数据;
如果不存在,则所述目标时序数据库influxdb在库中新建全局唯一ID为表measurement全局唯一ID(new)的表,再向新建的表中,写入当前需写入的数据。
本发明提供的基于动态权重均衡时序数据库集群的时序数据存储方法具有以下优点:
本发明提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,用于物联网云端存储海量设备采集数据的场景,可以解决当前influxdb集群内各个influxdb存储数据严重不均衡造成存储空间浪费和集群横向扩展困难的问题。通过本发明,能够将物联网设备采集数据均匀的存储到时序数据库集群中的各个时序数据库influxdb中,提高用户体验。
附图说明
图1为本发明提供的基于动态权重均衡时序数据库集群的时序数据存储方法的流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,基于该方法,能够将物联网设备采集数据均匀的存储到时序数据库集群中的各个时序数据库influxdb中,主要用于在物联网系统的云端存储海量物联网设备采集数据的场景,参考图1,包括以下步骤:
步骤1,时序数据库influxdb集群配置集群接口influx-gate、发布订阅消息系统集群kafka、读写器influx-writer和m个时序数据库influxdb,m个时序数据库influxdb依次表示为:时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdbm
步骤2,集群接口influx-gate存储分配表;所述分配表用于存储时序数据库influxdb集群中所有的表measurement全局唯一ID以及其当前所在的时序数据库influxdb的地址IP的映射;
其中,所述表measurement全局唯一ID的产生过程为:如果表measurement用于存储特定设备的特定类型的时序数据,则通过对特定设备ID和数据特定类型ID进行组合,得到表measurement全局唯一ID;
例如,设备E的温度数据、湿度数据和功率数据,分别为三种类型的时序数据,则:设备E的温度数据,通过一张表measurement存储,表measurement全局唯一ID为:设备E和温度类型ID的组合;
设备E的湿度数据,通过另一张表measurement存储,表measurement全局唯一ID为:设备E和湿度类型ID的组合;
设备E的功率数据,通过另一张表measurement存储,表measurement全局唯一ID为:设备E和功率类型ID的组合。
本发明中,集群接口influx-gateym作为influxdb集群门户,向外部系统提供写数据和查询数据的接口。
步骤3,集群接口influx-gate存储当前最新的时序数据库剩余空间统计表;
所述时序数据库剩余空间统计表存储每个时序数据库influxdbi的当前剩余空间Si;其中,i=1,2,...,m;还通过对所有时序数据库influxdb的当前剩余空间求和,得到集群总剩余空间S
步骤4,虚拟桶的分配区间段的分配方法:
步骤4.1,集群接口influx-gate启动时初始化生成n个虚拟桶,分别表示为:虚拟桶
Figure BDA0003455062990000071
虚拟桶
Figure BDA0003455062990000072
虚拟桶
Figure BDA0003455062990000073
例如,可生成1000个虚拟桶。
步骤4.2,集群接口influx-gate生成每个虚拟桶的虚拟桶全局唯一ID,然后计算虚拟桶全局唯一ID的md5值,取md5值最后四个字节,作为虚拟桶整数字段;因此,虚拟桶整数字段的取值范围为:[0000,9999];
因此,对于虚拟桶
Figure BDA0003455062990000074
虚拟桶
Figure BDA0003455062990000075
虚拟桶
Figure BDA0003455062990000076
其对应的虚拟桶整数字段依次表示为:
Figure BDA0003455062990000077
步骤4.3,将n个虚拟桶按虚拟桶整数字段从小到大顺序排序,排序后的虚拟桶表示为:虚拟桶
Figure BDA0003455062990000078
虚拟桶
Figure BDA0003455062990000079
虚拟桶
Figure BDA00034550629900000710
对应的虚拟桶整数字段排序表示为:
Figure BDA00034550629900000711
步骤4.4,对于任意虚拟桶
Figure BDA00034550629900000712
其中,j=1,2,...,n,采用以下方法,得到其分配区间段KPj
虚拟桶
Figure BDA00034550629900000713
的虚拟桶整数字段为
Figure BDA00034550629900000714
如果j=1,则分配区间段
Figure BDA00034550629900000715
如果j≠1,则分配区间段
Figure BDA00034550629900000716
因此,对于虚拟桶
Figure BDA00034550629900000717
虚拟桶
Figure BDA00034550629900000718
虚拟桶
Figure BDA00034550629900000719
其对应的分配区间段为:KP1,KP2,...,KPn
分配区间段KP1,KP2,...,KPn的长度依次为:F1,F2,...,Fn
则:n个分配区间段的长度的标准差,小于设定阈值,各个分配区间段的长度趋于相等;通过此种方式,将完整整数空间[0,232-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采用基于动态权重均衡时序数据库集群的时序数据库选取算法,从时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdbm中选取到目标时序数据库influxdb,得到目标时序数据库influxdb的地址IP,然后执行步骤8;
具体步骤为:
步骤7.1,所述集群接口influx-gate读取步骤3的所述当前最新的时序数据库剩余空间统计表,
计算得到集群中每个时序数据库influxdbi的当前剩余空间Si在集群总剩余空间S的比例Ri,再采用该比例Ri,乘以虚拟桶总数n,得到分配给该时序数据库influxdbi的虚拟桶个数;
步骤7.2,按照步骤7.1得到的每个时序数据库influxdbi所分配的虚拟桶个数,将n个虚拟桶分配给m个时序数据库influxdb,并得到虚拟桶分配表;
所述虚拟桶分配表,用于记录虚拟桶全局唯一ID、虚拟桶分配区间段以及虚拟桶所归属的时序数据库influxdb地址IP的映射;
步骤7.3,对于当前正在被处理的写入数据请求,所述集群接口influx-gate计算步骤5得到的表measurement全局唯一ID(new)的md5值,取md5值最后四个字节,作为表整数字段X(new);
然后,以表整数字段X(new)为查询关键词,查找步骤7.2建立的虚拟桶分配表,得到包含表整数字段X(new)的虚拟桶分配区间段KP(new),该虚拟桶分配区间段KP(new)所对应的时序数据库influxdb地址IP,即为查找到的目标时序数据库influxdb,由此得到目标时序数据库influxdb的地址IP;
步骤8,所述集群接口influx-gate,将当前需写入的数据、表measurement全局唯一ID(new)和目标时序数据库influxdb的地址IP打包为一个数据包,并将所述数据包写入到所述发布订阅消息系统集群kafka,由所述发布订阅消息系统集群kafka和读写器influx-writer配合,完成向目标时序数据库influxdb写入数据的过程;
所述集群接口influx-gate重新计算得到目标时序数据库influxdb的当前剩余空间以及集群总剩余空间S,更新步骤3的时序数据库剩余空间统计表和更新步骤2的分配表;然后返回步骤5,对下一个写入数据请求进行处理。
本步骤中,由所述发布订阅消息系统集群kafka和读写器influx-writer配合,完成向目标时序数据库influxdb写入数据的过程,具体为:
步骤8.1,所述读写器influx-writer,从所述发布订阅消息系统集群kafka中读取出所述数据包,通过对所述数据包进行解析,得到当前需写入的数据、表measurement全局唯一ID(new)和目标时序数据库influxdb的地址IP;
步骤8.2,所述读写器influx-writer根据目标时序数据库influxdb的地址IP,定位到目标时序数据库influxdb,然后向所述目标时序数据库influxdb发送当前需写入的数据以及对应的表measurement全局唯一ID(new);
步骤8.3,所述目标时序数据库influxdb判断库中是否已存在全局唯一ID为表measurement全局唯一ID(new)的表;
如果存在,则直接向全局唯一ID为表measurement全局唯一ID(new)的表中,写入当前需写入的数据;
如果不存在,则所述目标时序数据库influxdb在库中新建全局唯一ID为表measurement全局唯一ID(new)的表,再向新建的表中,写入当前需写入的数据。
本发明提供一种基于动态权重均衡时序数据库集群的时序数据存储方法,用于物联网云端存储海量设备采集数据的场景,可以解决当前influxdb集群内各个influxdb存储数据严重不均衡造成存储空间浪费和集群横向扩展困难的问题。通过本发明,能够将物联网设备采集数据均匀的存储到时序数据库集群中的各个时序数据库influxdb中,提高用户体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (2)

1.一种基于动态权重均衡时序数据库集群的时序数据存储方法,其特征在于,包括以下步骤:
步骤1,时序数据库influxdb集群配置集群接口influx-gate、发布订阅消息系统集群kafka、读写器influx-writer和m个时序数据库influxdb,m个时序数据库influxdb依次表示为:时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdbm
步骤2,集群接口influx-gate存储分配表;所述分配表用于存储时序数据库influxdb集群中所有的表measurement全局唯一ID以及其当前所在的时序数据库influxdb的地址IP的映射;
其中,所述表measurement全局唯一ID的产生过程为:如果表measurement用于存储特定设备的特定类型的时序数据,则通过对特定设备ID和数据特定类型ID进行组合,得到表measurement全局唯一ID;
步骤3,集群接口influx-gate存储当前最新的时序数据库剩余空间统计表;
所述时序数据库剩余空间统计表存储每个时序数据库influxdbi的当前剩余空间Si;其中,i=1,2,...,m;还通过对所有时序数据库influxdb的当前剩余空间求和,得到集群总剩余空间S
步骤4,虚拟桶的分配区间段的分配方法:
步骤4.1,集群接口influx-gate启动时初始化生成n个虚拟桶,分别表示为:虚拟桶
Figure FDA0003455062980000011
虚拟桶
Figure FDA0003455062980000012
...,虚拟桶
Figure FDA0003455062980000013
步骤4.2,集群接口influx-gate生成每个虚拟桶的虚拟桶全局唯一ID,然后计算虚拟桶全局唯一ID的md5值,取md5值最后四个字节,作为虚拟桶整数字段;因此,虚拟桶整数字段的取值范围为:[0000,9999];
因此,对于虚拟桶
Figure FDA0003455062980000014
虚拟桶
Figure FDA0003455062980000015
...,虚拟桶
Figure FDA0003455062980000016
其对应的虚拟桶整数字段依次表示为:
Figure FDA0003455062980000021
步骤4.3,将n个虚拟桶按虚拟桶整数字段从小到大顺序排序,排序后的虚拟桶表示为:虚拟桶
Figure FDA0003455062980000022
虚拟桶
Figure FDA0003455062980000023
...,虚拟桶
Figure FDA0003455062980000024
对应的虚拟桶整数字段排序表示为:
Figure FDA0003455062980000025
步骤4.4,对于任意虚拟桶
Figure FDA0003455062980000026
其中,j=1,2,...,n,采用以下方法,得到其分配区间段KPj
虚拟桶
Figure FDA0003455062980000027
的虚拟桶整数字段为
Figure FDA0003455062980000028
如果j=1,则分配区间段
Figure FDA0003455062980000029
如果j≠1,则分配区间段
Figure FDA00034550629800000210
因此,对于虚拟桶
Figure FDA00034550629800000211
虚拟桶
Figure FDA00034550629800000212
...,虚拟桶
Figure FDA00034550629800000213
其对应的分配区间段为:KP1,KP2,...,KPn
分配区间段KP1,KP2,...,KPn的长度依次为:F1,F2,...,Fn
则:n个分配区间段的长度的标准差,小于设定阈值,各个分配区间段的长度趋于相等;通过此种方式,将完整整数空间[0,232-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采用基于动态权重均衡时序数据库集群的时序数据库选取算法,从时序数据库influxdb1,时序数据库influxdb2,...,时序数据库influxdbm中选取到目标时序数据库influxdb,得到目标时序数据库influxdb的地址IP,然后执行步骤8;
具体步骤为:
步骤7.1,所述集群接口influx-gate读取步骤3的所述当前最新的时序数据库剩余空间统计表,
计算得到集群中每个时序数据库influxdbi的当前剩余空间Si在集群总剩余空间S的比例Ri,再采用该比例Ri,乘以虚拟桶总数n,得到分配给该时序数据库influxdbi的虚拟桶个数;
步骤7.2,按照步骤7.1得到的每个时序数据库influxdbi所分配的虚拟桶个数,将n个虚拟桶分配给m个时序数据库influxdb,并得到虚拟桶分配表;
所述虚拟桶分配表,用于记录虚拟桶全局唯一ID、虚拟桶分配区间段以及虚拟桶所归属的时序数据库influxdb地址IP的映射;
步骤7.3,对于当前正在被处理的写入数据请求,所述集群接口influx-gate计算步骤5得到的表measurement全局唯一ID(new)的md5值,取md5值最后四个字节,作为表整数字段X(new);
然后,以表整数字段X(new)为查询关键词,查找步骤7.2建立的虚拟桶分配表,得到包含表整数字段X(new)的虚拟桶分配区间段KP(new),该虚拟桶分配区间段KP(new)所对应的时序数据库influxdb地址IP,即为查找到的目标时序数据库influxdb,由此得到目标时序数据库influxdb的地址IP;
步骤8,所述集群接口influx-gate,将当前需写入的数据、表measurement全局唯一ID(new)和目标时序数据库influxdb的地址IP打包为一个数据包,并将所述数据包写入到所述发布订阅消息系统集群kafka,由所述发布订阅消息系统集群kafka和读写器influx-writer配合,完成向目标时序数据库influxdb写入数据的过程;
所述集群接口influx-gate重新计算得到目标时序数据库influxdb的当前剩余空间以及集群总剩余空间S,更新步骤3的时序数据库剩余空间统计表和更新步骤2的分配表;然后返回步骤5,对下一个写入数据请求进行处理。
2.根据权利要求1所述的基于动态权重均衡时序数据库集群的时序数据存储方法,其特征在于,步骤8中,由所述发布订阅消息系统集群kafka和读写器influx-writer配合,完成向目标时序数据库influxdb写入数据的过程,具体为:
步骤8.1,所述读写器influx-writer,从所述发布订阅消息系统集群kafka中读取出所述数据包,通过对所述数据包进行解析,得到当前需写入的数据、表measurement全局唯一ID(new)和目标时序数据库influxdb的地址IP;
步骤8.2,所述读写器influx-writer根据目标时序数据库influxdb的地址IP,定位到目标时序数据库influxdb,然后向所述目标时序数据库influxdb发送当前需写入的数据以及对应的表measurement全局唯一ID(new);
步骤8.3,所述目标时序数据库influxdb判断库中是否已存在全局唯一ID为表measurement全局唯一ID(new)的表;
如果存在,则直接向全局唯一ID为表measurement全局唯一ID(new)的表中,写入当前需写入的数据;
如果不存在,则所述目标时序数据库influxdb在库中新建全局唯一ID为表measurement全局唯一ID(new)的表,再向新建的表中,写入当前需写入的数据。
CN202210002029.8A 2022-01-04 2022-01-04 基于动态权重均衡时序数据库集群的时序数据存储方法 Active CN114416737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210002029.8A CN114416737B (zh) 2022-01-04 2022-01-04 基于动态权重均衡时序数据库集群的时序数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210002029.8A CN114416737B (zh) 2022-01-04 2022-01-04 基于动态权重均衡时序数据库集群的时序数据存储方法

Publications (2)

Publication Number Publication Date
CN114416737A CN114416737A (zh) 2022-04-29
CN114416737B true CN114416737B (zh) 2022-08-05

Family

ID=81272102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210002029.8A Active CN114416737B (zh) 2022-01-04 2022-01-04 基于动态权重均衡时序数据库集群的时序数据存储方法

Country Status (1)

Country Link
CN (1) CN114416737B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725258B (zh) * 2023-12-19 2024-12-20 北京中电兴发科技有限公司 基于空间和时间均衡安防视频存储规划和定位读写的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108769271A (zh) * 2018-08-20 2018-11-06 北京百度网讯科技有限公司 负载均衡的方法、装置、存储介质和终端设备
CN111522665A (zh) * 2020-04-24 2020-08-11 北京思特奇信息技术股份有限公司 一种基于zookeeper实现Influxdb-proxy的高可用及负载均衡方法
CN112199419A (zh) * 2020-10-09 2021-01-08 深圳市欢太科技有限公司 一种分布式时序数据库、存储方法、设备及存储介质
CN112422611A (zh) * 2020-09-11 2021-02-26 深圳市证通电子股份有限公司 基于分布式对象存储的虚拟桶存储处理方法和系统
CN113282604A (zh) * 2021-07-14 2021-08-20 北京远舢智能科技有限公司 基于消息队列实现的高可用时序数据库集群系统
CN113655969A (zh) * 2021-08-25 2021-11-16 北京中电兴发科技有限公司 一种基于流式分布式存储系统的数据均衡存储方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020713B1 (en) * 2000-10-10 2006-03-28 Novell, Inc. System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
US10120921B2 (en) * 2015-10-20 2018-11-06 Mastercard International Incorporated Parallel transfer of SQL data to software framework

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108769271A (zh) * 2018-08-20 2018-11-06 北京百度网讯科技有限公司 负载均衡的方法、装置、存储介质和终端设备
CN111522665A (zh) * 2020-04-24 2020-08-11 北京思特奇信息技术股份有限公司 一种基于zookeeper实现Influxdb-proxy的高可用及负载均衡方法
CN112422611A (zh) * 2020-09-11 2021-02-26 深圳市证通电子股份有限公司 基于分布式对象存储的虚拟桶存储处理方法和系统
CN112199419A (zh) * 2020-10-09 2021-01-08 深圳市欢太科技有限公司 一种分布式时序数据库、存储方法、设备及存储介质
CN113282604A (zh) * 2021-07-14 2021-08-20 北京远舢智能科技有限公司 基于消息队列实现的高可用时序数据库集群系统
CN113655969A (zh) * 2021-08-25 2021-11-16 北京中电兴发科技有限公司 一种基于流式分布式存储系统的数据均衡存储方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于贪心算法的一致性哈希负载均衡优化》;王诚 等;《南京邮电大学学报(自然科学版)》;20180630;第38卷(第3期);第89-97页 *

Also Published As

Publication number Publication date
CN114416737A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
Zhou et al. Adaptive processing for distributed skyline queries over uncertain data
US6493728B1 (en) Data compression for records of multidimensional database
EP1302873A2 (en) Partitioned database system
US9576073B2 (en) Distance queries on massive networks
KR101266358B1 (ko) 다중 길이 시그니처 파일 기반 분산 색인 시스템 및 방법
CN111475105B (zh) 监控数据存储方法、设备、服务器及存储介质
CN106095863B (zh) 一种多维度数据查询和存储系统和方法
CN109726225B (zh) 一种基于Storm的分布式流数据存储与查询方法
US6430565B1 (en) Path compression for records of multidimensional database
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
CN107688438B (zh) 适用于大规模地震数据存储、快速定位的方法及装置
CN105975587A (zh) 一种高性能的内存数据库索引组织与访问方法
CN114416737B (zh) 基于动态权重均衡时序数据库集群的时序数据存储方法
Gou et al. Graph stream sketch: Summarizing graph streams with high speed and accuracy
CN118626685A (zh) 一种多层级数据节点存储索引方法和系统
US9747363B1 (en) Efficient storage and retrieval of sparse arrays of identifier-value pairs
CN111625530B (zh) 一种大规模矢量检索方法及装置
CN111666302A (zh) 用户排名的查询方法、装置、设备及存储介质
CN113360551B (zh) 一种靶场中时序数据的存储与快速统计方法及系统
Lee et al. Efficient Large Graph Partitioning Scheme Using Incremental Processing in GPU
JP2006092409A (ja) 複合データベース検索システムおよび複合データベース検索方法ならびにそのためのプログラム
Ames et al. Design and optimization of a metagenomics analysis workflow for NVRAM
CN108776707B (zh) 针对探索性查询的抽样方法
CN112286995A (zh) 一种数据分析方法、装置、服务器、系统及存储介质
CN115225730B (zh) 一种支持多任务的高并发离线数据包分析方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载