基于哈希环的时间序列数据库服务集群的实现方法与系统的制作方法

文档序号:9564695阅读:538来源:国知局
基于哈希环的时间序列数据库服务集群的实现方法与系统的制作方法
【技术领域】
[0001]本发明涉及电力自动化技术领域,具体而言涉及一种基于哈希环的时间序列数据库服务集群的实现方法与系统。
【背景技术】
[0002]时间序列数据库是主要用于存储智能电网运行系统、工业能源管控、新能源监控等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、测点多、数据信息量大(每天产生几十GB的数据量)。目前,主要依赖时序数据库来对这些数据进行历史数据的存储。
[0003]传统的时间序列数据库服务集群采用主从方式。主从方式下,客户端的数据存储请求集中在主服务节点上,从服务节点仅在主服务节点故障时才处理请求。这种方式的缺点在于:主服务节点的负载过高,从服务节点资源得不到合理利用。同时,增加服务节点也不能有效提高整体服务的性能。
[0004]本发明提供一种基于哈希环的时间序列数据库服务集群的实现方法与系统,可以实现服务器集群的负载均衡,解决传统时间序列数据库服务集群主从方式主服务节点负载过高,从服务节点资源得不到合理利用,整体服务性能无法有效提高的缺点。同时,采用一致性哈希算法创建时间序列数据库服务集群,支持动态增减服务节点,具有较好的容错性和可扩展性。

【发明内容】

[0005]针对现有技术的缺陷和不足,本发明旨在提供一种基于哈希环的时间序列数据库服务集群的实现方法与系统,可以有效的实现服务器集群的负载均衡,合理利用利用服务节点的硬件资源,提高服务器集群的整体数据处理性能。同时,采用一致性的哈希算法定位时间序列数据库服务节点,支持动态增减服务节点,具有较好的容错性和可扩展性。
[0006]为达成上述目的,本发明所提出的的技术方案如下:
[0007]—种基于哈希环的时间序列数据库服务集群的实现方法与系统,包括:测点编码模块、测点发送模块和测点存储模块。
[0008]所述测点编码模块根据测点的关键字进行哈希计算,得到该测点对应的哈希值;
[0009]测点发送模块将测点的编码、哈希值和采集值进行序列化,将序列化后的测点数据包发送到时间序列数据库服务器集群;
[0010]测点存储模块创建基于哈希环的时间序列数据库服务器集群,接收到测点数据包,根据测点哈希值,从服务器集群中选择一台服务器存储测点采集值。
[0011]进一步,所述的基于哈希环的时间序列数据库服务集群的系统,其特征在于,所述测点编码模块选取测点的特征量,作为测点的编码字符串。可以选择以下任意一种测点的特征量作为测点的编码:
[0012](1)测点的电气特性:包括有功功率、无功功率、视在功率、电压、功率因数、电流、开关状态、分接头位置、频率、保护信号、相角和普通测点。
[0013](2)测点的电气名称:采用厂站设备命名+量测类型命名的方式,作为测点的电气名称。
[0014](3)测点的随机编码:根据当前机器时间,生成作为测点的随机编码。按照如下方法生成测点随机编码:
[0015]测点随机编码=XdlOOO+XiS(1)
[0016]式⑴中X。为当前机器时间的绝对秒数,X i为当前机器时间的毫秒数。
[0017]进一步,所述的基于哈希环的时间序列数据库服务集群的系统,其特征在于,所述测点编码模块使用哈希算法将测点的编码字符串映射为32位长度的二进制值,作为测点的哈希值。
[0018]选用的哈希算法包括:BKDRHash算法、APHash算法、DJBHash算法、PJWHash算法、ELFHash 算法、SDBMHash 算法。
[0019]进一步,所述的基于哈希环的时间序列数据库服务集群的系统,其特征在于,所述测点发送模块使用JS0N格式将测点的编码、哈希值、采集值进行序列化,将序列化后的测点数据包发送到时间序列数据库服务集群。
[0020]序列化后的数据包格式定义如下:
[0021]{"Point":[
[0022]{"Code": 〃 东鹏线路 P", "Hash": "0EA434D", "Value": "10.56"},
[0023]{〃Code〃: 〃 东鹏线路 Q〃,〃Hash〃: 〃090FF4A〃,〃Value〃: 〃20.56"}
[0024].........
[0025]]}
[0026]其中,标签“Point”表示测点类型,标签〃Code〃表示测点编码,标签〃Hash〃表示测点的哈希值,标签"Value"表示采集值。
[0027]进一步,所述的基于哈希环的时间序列数据库服务集群的系统,其特征在于,所述测点存储模块创建一个首尾相接的虚拟哈希环。使用哈希算法将服务集群的各台服务器的节点名或者IP字符串映射为32位长度的二进制值,作为各台服务器的哈希值,然后根据哈希值的大小将各台服务器分布到虚拟哈希环上,构成服务器集群。
[0028]选用的哈希算法包括:BKDRHash算法、APHash算法、DJBHash算法、PJWHash算法、ELFHash算法、SDBMHash算法,与测点编码模块的哈希算法保持一致。
[0029]进一步,所述的基于哈希环的时间序列数据库服务集群的系统,其特征在于,所述测点存储模块将测点数据包进行反序列化,得到每个测点的编码、哈希值和采集值。根据测点的哈希值,将测点映射到服务器虚拟哈希环上的某一个点。如果该点正好命中某个时间序列数据库服务器集群节点,则选择该节点存储该测点的编码和采集值;否则,按虚拟哈希环顺时针方向查找,直到找到一个时序数据库服务器节点来处理数据存储请求。
[0030]一种基于哈希环的时间序列数据库服务集群的实现方法,其特征在于,包括以下步骤:
[0031]测点编码模块根据测点的关键字进行哈希计算,得到该测点对应的哈希值;
[0032]测点发送模块将测点的编码、哈希值和采集值进行序列化,将序列化后的测点数据包发送到时间序列数据库服务器集群;
[0033]测点存储模块创建基于哈希环的时间序列数据库服务器集群,接收到测点发送模块发送的测点数据包,根据测点哈希值,从服务器集群中选择一台服务器存储测点采集值。
[0034]由以上本发明的技术方案可知,本发明的有益效果在于提供一种基于哈希环的时间序列数据库服务集群的实现方法与系统,可以实现服务器集群的负载均衡,解决传统时间序列数据库服务集群主从方式主服务节点负载过高,从服务节点资源得不到合理利用,整体服务性能无法有效提高的缺点。同时,采用一致性哈希算法创建时间序列数据库服务集群,支持动态增减服务节点,具有较好的容错性和可扩展性。
【附图说明】
[0035]图1为实现时间序列数据库服务集群流程图。
[0036]图2为实现测点编码模块处理数据流程图。
[0037]图3为实现测点发送模块处理数据流程图。
[0038]图4为本发明较优实施例中基于哈希环构建的3节点时间序列数据库服务集群分布示意图。
[0039]图5为实现测点存储模块收到数据后进行服务器定位的流程图。
【具体实施方式】
[0040]为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
[0041]如图1-图5所示,根据本发明的较优实施例,基于哈希环的时间序列数据库服务集群的系统,包括测点编码模块、测点发送模块和测点存储模块,所述测点编码模块根据测点的关键字进行哈希计算,得到该测点对应的哈希值。测点发送模块将测点的编码、哈希值和测点值序列化后,发送到时间序列数据库服务器集群。测点存储模块创建基于哈希环的时间序列数据库服务器集群,接收到测点数据,根据测点哈希值,从服务器集群中选择一台服务器存储测点采集值。
[0042]参考图1所示,测点编码模块根据测点的关键字进行哈希计算,得到该测点对应的哈希值。测点发送模块将测点的编码、哈希值和测点值序列化后发送到时间序列数据库服务集群。测点存储模块创建基于哈希环的时间序列数据库服务器集群,接收到测点数据,根据测点哈希值,从服务器集群中选择一台服务器存储测点采集值。
[0043]参考图2所示,测点编码模块选取测点的特征量,作为测点的编码字符串。可以选择以下任意一种测点的特征
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1