CN109492052A - 一种scada分布式历史数据存储方法及系统 - Google Patents
一种scada分布式历史数据存储方法及系统 Download PDFInfo
- Publication number
- CN109492052A CN109492052A CN201811235008.0A CN201811235008A CN109492052A CN 109492052 A CN109492052 A CN 109492052A CN 201811235008 A CN201811235008 A CN 201811235008A CN 109492052 A CN109492052 A CN 109492052A
- Authority
- CN
- China
- Prior art keywords
- data
- uuid
- memory node
- data point
- seclen
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013500 data storage Methods 0.000 title claims abstract description 22
- 238000007726 management method Methods 0.000 claims abstract description 62
- 230000011218 segmentation Effects 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000005192 partition Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 230000010247 heart contraction Effects 0.000 claims description 2
- 238000011084 recovery Methods 0.000 claims description 2
- 238000000926 separation method Methods 0.000 claims description 2
- 230000007423 decrease Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种SCADA分布式历史数据存储方法及系统,系统中的每个数据点、存储节点都拥有一个唯一标识UUID。初始化过程中,存储管理节点将数据点相对均衡地分配给每个存储节点;如果系统运行过程中存储节点宕机,存储管理节点会将该节点分担的数据点根据分配算法重新分配给其它正常运行的存储节点;如果系统运行过程中增加数据点,存储管理节点也会根据分配算法将新增数据点分配给存储节点。存储节点从采集节点实时库获取数据点数据后保存到系统Hbase历史数据库中,初始化过程中,生成若干原始历史数据表;如果系统运行中数据点扩容或者数据表记录数达到阈值,将按照分表算法分割原来的数据表。本发明极大减少了人工操作、提高了整个系统的工作效能。
Description
技术领域
本发明属于计算机技术领域,涉及一种历史数据存储方法及系统,具体涉及一种SCADA(数据采集与监视控制,Supervisory Control And Data Acquisition)分布式历史数据存储方法及系统。
背景技术
在大规模应用中,SCADA系统涉及的数据点很多,有时达百万级,其中很多点都需要进行历史数据存储,一般都会采用分布式架构、部署多个存储节点(从采集节点的实时库获取数据点数据,并保存到物理存储介质;采集节点:通过工业控制总线,采集PLC、RTU等工业控制装置的数据点实时数据,并保存到实时库。),每个节点负责存储一部分数据点历史数据。但每个存储节点所负责的数据点一般都是先通过配置工具进行配置,这种配置过程随着设备和点位数目的增多越发繁复耗时,且如果存储节点出现故障不能存储历史数据,则需要将故障存储节点所负责的这部分数据点重新配置给其它正常运行的存储节点,这样会导致存储业务中断较长时间、效率较低。
另外,数据点历史数据通常会保存到传统的关系数据库中,但关系型数据库的冗余及多副本操作比较复杂;且随着数据量的增多,关系型数据库的扩展也比较费劲,还会出现读写性能下降。即使采用如Hbase分布式数据库,海量数据的存储也可能会出现读写性能下降,往往通过分表操作来改进,但这种操作多半需手动进行,存储可扩展性较差。
发明内容
为了解决上述技术问题,本发明提供了一种SCADA分布式历史数据存储方法及系统。
本发明的方法所采用的技术方案是:一种SCADA分布式历史数据存储方法,其特征在于:包括数据点分配方法及历史数据入库方法;
所述数据点分配方法,具体实现包括以下步骤:
步骤A1:生成数据点UUID和存储节点UUID,其中UUID表示通用唯一识别码;
步骤A2:对存储节点UUID进行排序编号;
步骤A3:计算数据点UUID目标位数值;
步骤A4:根据数据点与存储节点映射关系分配数据点到存储节点;
步骤A5:存储管理节点根据存储节点运行状态重新分配数据点;其中存储管理节点为存储节点管理者,给存储节点分配数据点;
所述历史数据入库方法,具体实现包括以下步骤:
步骤B1:生成数据点UUID;
步骤B2:选择数据点UUID目标位最大值和区间长度进行分区,得到若干分区节点;
步骤B3:根据分区节点生成Hbase原始历史数据表;
步骤B4:根据数据点UUID目标位数值将数据保存到对应历史数据表;
步骤B5:根据历史数据表记录数上限值分割当前历史数据表。
本发明的系统所采用的技术方案是:一种SCADA分布式历史数据存储系统,其特征在于:包括UUID生成模块、存储节点排序模块、数据点UUID目标位数值计算模块、数据点分配模块、存储节点运行状态监测模块、UUID分区模块、历史数据库初始化模块、历史数据保存模块、历史数据分割模块;
所述UUID生成模块,用于生成数据点UUID和存储节点UUID,其中UUID表示通用唯一识别码;
所述存储节点排序模块,用于对存储节点UUID进行排序编号;
所述数据点UUID目标位数值计算模块,用于计算数据点UUID目标位数值;
所述数据点分配模块,用于根据数据点与存储节点映射关系分配数据点到存储节点;
所述存储节点运行状态监测模块,用于存储管理节点根据存储节点运行状态重新分配数据点;其中存储管理节点为存储节点管理者,给存储节点分配数据点;
所述UUID分区模块,用于选择数据点UUID目标位最大值和区间长度进行分区,得到若干分区节点;
所述历史数据库初始化模块,用于根据分区节点生成Hbase原始历史数据表;
所述历史数据保存模块,用于根据数据点UUID目标位数值将数据保存到对应历史数据表;
所述历史数据分割模块,用于根据历史数据表记录数上限值分割当前历史数据表。
本发明针对SCADA历史数据存储,提出一种分布式存储方案,其中基于UUID,实现了一种自适应给存储节点分配数据点的方法;通过事先根据存储规模设定部分参数自适应分割Hbase数据表的机制。最大限度提高了SCADA分布式存储系统的工作效率。
附图说明
图1为本发明实施例的数据点分配方法流程图;
图2为本发明实施例的历史数据入库方法流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本实施例中配置管理系统负责配置SCADA数据点及其它业务节点,数据采集节点采集控制终端的实时数据到自身实时数据库。而存储节点、存储管理节点、Hbase历史数据库集群组成分布式历史数据存储系统。存储管理节点负责监控存储节点的运行,给存储节点分配数据点,建立、分割历史数据表。存储节点根据所分担的数据点,向数据采集节点请求数据,并将数据保存到Hbase历史数据库中。
请见图1和图2,本发明提供的一种SCADA分布式历史数据存储方法,包括数据点分配方法及历史数据入库方法;
其中数据点分配方法,具体实现包括以下步骤:
步骤A1:生成数据点UUID和存储节点UUID,其中UUID表示通用唯一识别码;
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,共32个x,其中每个x是0-9或a-f范围内的一个十六进制数字,不同操作系统平台都会提供生成API。生成的UUID去掉其中分隔符“-”,成为本实施例中UUID格式“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”。配置管理系统(配置管理系统负责配置数据点及其它业务节点)为每个数据点和存储节点生成一个系统UUID。
配置管理系统为每个数据点和存储节点生成一个UUID(32位格式xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个x是0-9或a-f范围内的一个十六进制数字)。存储管理节点从配置管理系统获取数据点和存储节点的UUID,将存储节点按UUID排序并从1开始编号。截取数据点UUID的若干连续位并按16进制计算其数值,将该值和存储节点编号进行映射,根据映射结果将数据点分配给相应的存储节点。
另外,UUID某连续k位16进制理论最大值16k记为maxv,以2j做为区间长度记为seclen,所有分区节点依次是seclen、2×seclen、...、maxv,Hbase首次建立历史数据表名称是his_seclen、his_2×seclen、...、his_maxv。存储节点根据每个数据点UUID相应连续k位16进制数值所在区间,将该点数据保存到对应的历史数据表中。运行中,自动根据表记录数上限maxrecord分割当前数据表,分割后的区间长度是2(j-1)。
步骤A2:对存储节点UUID进行排序编号;
存储管理节点从配置管理系统获取所有存储节点的UUID,然后根据UUID字符串的字典序从小到大进行排序,并按照排序结果给存储节点进行编号,节点编号从1开始。如果系统有n个存储节点,则排序后的编号依次是1,2,...,n。
步骤A3:计算数据点UUID目标位数值;
基于操作的便利性,选取k个连续位进行计算,k的选取应该满足以下条件:设存储节点数目是t,则16k>t,k为正整数。如:存储节点数是10,可以选择至少1个连续位;存储节点数是20,可以选择至少2个连续位。然后按照16进制计算这k个连续位的数值。
步骤A4:根据数据点与存储节点映射关系分配数据点到存储节点;
存储管理节点从配置管理系统获取所有数据点的UUID,然后计算每个数据点UUID目标位数值,记为v,存储节点数为n,对v和n进行映射,映射通过取模运算完成,即v mod n=i,则i+1即为该数据点映射的存储节点。存储管理节点据此完成所有数据点的分配工作,并保存每个数据点UUID目标位数值。
步骤A5:存储管理节点根据存储节点运行状态重新分配数据点;其中存储管理节点为存储节点管理者,给存储节点分配数据点;
存储管理节点需要监测存储节点的运行状态,存储管理节点通过心跳来监测存储节点是否在线。
当存储节点宕机时,存储管理节点与该存储节点之间的心跳异常,这时,存储管理节点启动数据点重新分配流程。即对当前剩余存储节点排序,再根据每个数据点UUID目标位数值重新映射存储节点,重新分配。由于存储管理节点已经保存了每个数据点的UUID目标位数值,因此重新分配时直接使用该数值就可以了,不必重新计算。
当存储节点恢复运行时,存储管理节点与该存储节点之间的心跳恢复,这时,存储管理节点也启动数据点重新分配流程。重新分配流程与宕机时重新分配流程一样。
当系统需要增加存储节点时,配置管理系统将新增的存储节点信息通知存储管理节点,存储管理节点会启动数据点重新分配流程。重新分配流程与之前一样
当系统增加数据点时,配置管理系统将新增的数据点UUID通知存储管理节点,存储管理节点将这些新增的数据点分配给对应的存储节点。分配流程与之前一样。
历史数据入库方法,具体实现包括以下步骤:
步骤B1:生成数据点UUID;
步骤B2:选择数据点UUID目标位最大值和区间长度进行分区,得到若干分区节点;
初始化时,基于操作的便利性,存储管理节点选取m个连续位作为UUID目标位,目标位的最大数值记为maxv,maxv=16m;同时选取区间长度seclen,seclen=2j;maxv应该远大于seclen(即seccount=maxv/seclen,seccount>=2n,其中n为从4开始的正整数。即seccount=16,32,64…)。据此,分区后的区间数目seccount=maxv/seclen,所有分区节点依次是seclen,2×seclen,...,maxv;对应的seccount个区间依次是0~seclen,seclen~2×seclen,(seccount-1)×seclen~maxv,每个区间不包括区间终点。同时,存储管理节点需要将此分区信息设置给所有存储节点。
步骤B3:根据分区节点生成Hbase原始历史数据表;
存储管理节点根据UUID分区结果建立原始历史数据表,表的名称以分区节点进行命名。上述seccount个分区对应的表依次是his_seclen,his_2×seclen,...,his_maxv。表记录字段中应包含UUID信息。
步骤B4:根据数据点UUID目标位数值将数据保存到对应历史数据表;
系统运行时,存储节点首先计算其上所有数据点的所在分区;
具体如下:
步骤B4.1:计算数据点UUID目标位数值v;
步骤B4.2:查找数据点所在区间;遍历所有seccount个区间,如果v落在某个区间[(i-1)×seclen,i×seclen)内,则该点属于此区间,其对应的历史数据表是his_i×seclen;
步骤B4.3:保存数据点和历史数据表之间的对应关系;
当存储节点从采集节点获取到数据点数据时,将数据保存到其所在的历史数据表中;其中采集节点,通过工业控制总线,采集工业控制装置的数据点实时数据,并保存到实时库。
步骤B5:根据历史数据表记录数上限值分割当前历史数据表;
存储管理节点需要监控历史数据表记录数变化,以便实施数据表分割。由于数据持续写入数据库,历史数据表中的记录数会不断增加。以1百万数据点存储为例,若每分钟生成1条记录,则每天的记录数是1000000×24×60=1440000000。如果UUID分区选择末尾5位作为目标位,maxv=165=1048576;且选择区间长度seclen=214=16384;则原始分区数seccount=1048576/16384=64,每个历史数据表1天的记录数是1440000000/64=22500000,1个月的记录数是22500000×30=675000000,接近10亿级别。如果设置数据表记录数上限maxrecord=675000000,则数据表分割条件相当于每月分割一次。
以当前数据表his_i×seclen为例,对应区间[(i-1)×seclen,i×seclen),其记录数记为record,具体分割步骤是:
步骤B5.1:比较record和数据表记录数上限值maxrecord(数据表记录数上限值,可根据数据点存储规模设置,如若干数据点一个月的存储记录数;也可直接设定如1亿、5亿、10亿),如果record≥maxrecord,则对当前数据表进行分割;
步骤B5.2:分割区间;
将数据表对应分区按照新的区间长度分割成两个新区间,新区间长度是原来长度的一半,即seclen/2,新区间是[(i-1)×seclen/2,i×seclen/2)、[i×seclen/2,i×seclen);新区间对应的历史数据表是his_i×seclen/2、his_i×seclen,his_i×seclen已经存在,只需要生成his_i×seclen/2即可;
步骤B5.3:同步分区信息;
存储管理节点完成区间分割后,将新的分区信息保存并同步到所有存储节点,存储节点据此重新计算确定所有数据点所在分区、与数据表的对应关系;
步骤B5.4:分割数据表;
存储节点按照新的分区关系将数据写到历史数据表中,原来his_i×seclen表中部分数据需要迁移到his_i×seclen/2表中;由于his_i×seclen表每条记录中包含了节点UUID信息,所以根据记录包含UUID计算目标位数值,判断是否需要迁移到表his_i×seclen/2中。
以上述1百万数据点存储所设定的各项参数为例,每次分割后的情况如下表所示:
分割次数 | 区间长度 | 表数目 | 表时间跨度(月) |
0 | 16384 | 64 | 1 |
1 | 8192 | 128 | 2 |
2 | 4096 | 256 | 4 |
3 | 2048 | 512 | 8 |
4 | 1024 | 1024 | 16 |
5 | 512 | 2048 | 32 |
由此可见,随着表的分割,区间长度减小、表数目增多、在表记录上限不变的情况下,表的数据周期不断扩大,存储可持续扩展。实际应用中,数据不会一直存储,都有固定的存储周期,因而,我们可以根据实际情况将数据表记录上限调低,以便始终保持良好的读写性能。
本发明还提供了一种SCADA分布式历史数据存储系统,包括UUID生成模块、存储节点排序模块、数据点UUID目标位数值计算模块、数据点分配模块、存储节点运行状态监测模块、UUID分区模块、历史数据库初始化模块、历史数据保存模块、历史数据分割模块;
UUID生成模块,用于生成数据点UUID和存储节点UUID,其中UUID表示通用唯一识别码;
存储节点排序模块,用于对存储节点UUID进行排序编号;
数据点UUID目标位数值计算模块,用于计算数据点UUID目标位数值;
数据点分配模块,用于根据数据点与存储节点映射关系分配数据点到存储节点;
存储节点运行状态监测模块,用于存储管理节点根据存储节点运行状态重新分配数据点;其中存储管理节点为存储节点管理者,给存储节点分配数据点;
UUID分区模块,用于选择数据点UUID目标位最大值和区间长度进行分区,得到若干分区节点;
历史数据库初始化模块,用于根据分区节点生成Hbase原始历史数据表;
历史数据保存模块,用于根据数据点UUID目标位数值将数据保存到对应历史数据表;
历史数据分割模块,用于根据历史数据表记录数上限值分割当前历史数据表。
本发明提供的SCADA系统中的每个数据点、存储节点都拥有一个唯一标识UUID。系统初始化过程中,存储管理节点基于UUID的离散性特点,根据数据点分配算法将数据点相对均衡地分配给每个存储节点;如果系统运行过程中存储节点宕机,存储管理节点会将该节点分担的数据点根据分配算法重新分配给其它正常运行的存储节点;如果系统运行过程中增加数据点,存储管理节点也会根据分配算法将新增数据点分配给存储节点。存储节点从采集节点实时库获取数据点数据后保存到系统Hbase历史数据库中,系统初始化过程中,基于UUID离散性,根据历史数据表生成算法,生成若干原始历史数据表;如果系统运行中数据点扩容或者数据表记录数达到阈值,将按照分表算法分割原来的数据表。SCADA分布式存储系统采用基于UUID的数据点分配算法、数据表生成和分割算法,极大减少了人工操作,具有较强的自适应性、提高了整个系统的工作效能。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (9)
1.一种SCADA分布式历史数据存储方法,其特征在于:包括数据点分配方法及历史数据入库方法;
所述数据点分配方法,具体实现包括以下步骤:
步骤A1:生成数据点UUID和存储节点UUID,其中UUID表示通用唯一识别码;
步骤A2:对存储节点UUID进行排序编号;
步骤A3:计算数据点UUID目标位数值;
步骤A4:根据数据点与存储节点映射关系分配数据点到存储节点;
步骤A5:存储管理节点根据存储节点运行状态重新分配数据点;其中存储管理节点为存储节点管理者,给存储节点分配数据点;
所述历史数据入库方法,具体实现包括以下步骤:
步骤B1:生成数据点UUID;
步骤B2:选择数据点UUID目标位最大值和区间长度进行分区,得到若干分区节点;
步骤B3:根据分区节点生成Hbase原始历史数据表;
步骤B4:根据数据点UUID目标位数值将数据保存到对应历史数据表;
步骤B5:根据历史数据表记录数上限值分割当前历史数据表。
2.根据权利要求1所述的SCADA分布式历史数据存储方法,其特征在于:步骤A2中,根据UUID字符串的字典序从小到大进行排序,并按照排序结果给存储节点进行编号,节点编号从1开始。
3.根据权利要求1所述的SCADA分布式历史数据存储方法,其特征在于:步骤A3中,选取k个连续位进行计算,k的选取条件为:设存储节点数目是t,则16k>t,k为正整数。
4.根据权利要求1所述的SCADA分布式历史数据存储方法,其特征在于:步骤A4中,计算每个数据点UUID目标位数值,记为v,存储节点数为n,对v和n进行映射,映射通过取模运算完成,即v mod n=i,则i+1即为该数据点映射的存储节点。
5.根据权利要求1所述的SCADA分布式历史数据存储方法,其特征在于:步骤A5中,存储管理节点通过心跳来监测存储节点是否在线;
当存储节点宕机时,存储管理节点与该存储节点之间的心跳异常,这时,存储管理节点启动数据点重新分配流程;对当前剩余存储节点排序,再根据每个数据点UUID目标位数值重新映射存储节点,重新分配;
当存储节点恢复运行时,存储管理节点与该存储节点之间的心跳恢复,这时,存储管理节点也启动数据点重新分配流程;重新分配流程与宕机时重新分配流程一样;
当系统需要增加存储节点时,配置管理系统将新增的存储节点信息通知存储管理节点,存储管理节点会启动数据点重新分配流程;重新分配流程与宕机时重新分配流程一样;所述配置管理系统负责配置数据点及其它业务节点;
当系统增加数据点时,配置管理系统将新增的数据点UUID通知存储管理节点,存储管理节点将这些新增的数据点分配给对应的存储节点;分配流程与宕机时重新分配流程一样。
6.根据权利要求1所述的SCADA分布式历史数据存储方法,其特征在于:步骤B2中,存储管理节点选取m个连续位作为数据点UUID目标位,目标位的最大数值记为maxv,maxv=16m;同时选取区间长度seclen,seclen=2j,且seccount=maxv/seclen,seccount≥2n,其中n为从4开始的正整数;据此,分区后的区间数目seccount=maxv/seclen,所有分区节点依次是seclen,2×seclen,...,maxv;对应的seccount个区间依次是0~seclen,seclen~2×seclen,(seccount-1)×seclen~maxv,每个区间不包括区间终点。
7.根据权利要求6所述的SCADA分布式历史数据存储方法,其特征在于:步骤B4中,系统运行时,存储节点首先计算其上所有数据点的所在分区;
具体如下:
步骤B4.1:计算数据点UUID目标位数值v;
步骤B4.2:查找数据点所在区间;遍历所有seccount个区间,如果v落在某个区间[(i-1)×seclen,i×seclen)内,则该点属于此区间,其对应的历史数据表是his_i×seclen;
步骤B4.3:保存数据点和历史数据表之间的对应关系;
当存储节点从采集节点获取到数据点数据时,将数据保存到其所在的历史数据表中;所述采集节点,通过工业控制总线,采集工业控制装置的数据点实时数据,并保存到实时库。
8.根据权利要求7所述的SCADA分布式历史数据存储方法,其特征在于:步骤B5中,假设当前数据表为his_i×seclen,对应区间[(i-1)×seclen,i×seclen),其记录数记为record,具体分割步骤是:
步骤B5.1:比较record和数据表记录数上限值maxrecord,如果record≥maxrecord,则对当前数据表进行分割;
步骤B5.2:分割区间;
将数据表对应分区按照新的区间长度分割成两个新区间,新区间长度是原来长度的一半,即seclen/2,新区间是[(i-1)×seclen/2,i×seclen/2)、[i×seclen/2,i×seclen);新区间对应的历史数据表是his_i×seclen/2、his_i×seclen,his_i×seclen已经存在,只需要生成his_i×seclen/2即可;
步骤B5.3:同步分区信息;
存储管理节点完成区间分割后,将新的分区信息保存并同步到所有存储节点,存储节点据此重新计算确定所有数据点所在分区、与数据表的对应关系;
步骤B5.4:分割数据表;
存储节点按照新的分区关系将数据写到历史数据表中,原来his_i×seclen表中部分数据需要迁移到his_i×seclen/2表中;由于his_i×seclen表每条记录中包含了节点UUID信息,所以根据记录包含UUID计算目标位数值,判断是否需要迁移到表his_i×seclen/2中。
9.一种SCADA分布式历史数据存储系统,其特征在于:包括UUID生成模块、存储节点排序模块、数据点UUID目标位数值计算模块、数据点分配模块、存储节点运行状态监测模块、UUID分区模块、历史数据库初始化模块、历史数据保存模块、历史数据分割模块;
所述UUID生成模块,用于生成数据点UUID和存储节点UUID,其中UUID表示通用唯一识别码;
所述存储节点排序模块,用于对存储节点UUID进行排序编号;
所述数据点UUID目标位数值计算模块,用于计算数据点UUID目标位数值;
所述数据点分配模块,用于根据数据点与存储节点映射关系分配数据点到存储节点;
所述存储节点运行状态监测模块,用于存储管理节点根据存储节点运行状态重新分配数据点;其中存储管理节点为存储节点管理者,给存储节点分配数据点;
所述UUID分区模块,用于选择数据点UUID目标位最大值和区间长度进行分区,得到若干分区节点;
所述历史数据库初始化模块,用于根据分区节点生成Hbase原始历史数据表;
所述历史数据保存模块,用于根据数据点UUID目标位数值将数据保存到对应历史数据表;
所述历史数据分割模块,用于根据历史数据表记录数上限值分割当前历史数据表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235008.0A CN109492052B (zh) | 2018-10-23 | 2018-10-23 | 一种scada分布式历史数据存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235008.0A CN109492052B (zh) | 2018-10-23 | 2018-10-23 | 一种scada分布式历史数据存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109492052A true CN109492052A (zh) | 2019-03-19 |
CN109492052B CN109492052B (zh) | 2021-10-12 |
Family
ID=65692519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811235008.0A Active CN109492052B (zh) | 2018-10-23 | 2018-10-23 | 一种scada分布式历史数据存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109492052B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417590A (zh) * | 2019-07-23 | 2019-11-05 | 浪潮电子信息产业股份有限公司 | 服务器配置方法、装置、整机柜服务器及可读存储介质 |
CN113341365A (zh) * | 2021-05-31 | 2021-09-03 | 安徽南瑞中天电力电子有限公司 | 一种智能电能表协议层数据的处理方法、系统、装置 |
CN114418137A (zh) * | 2021-12-02 | 2022-04-29 | 中冶南方(武汉)自动化有限公司 | 一种基于scada平台的电缆隧道智能巡检、维护方法及系统 |
CN117521619A (zh) * | 2024-01-04 | 2024-02-06 | 北京百灵天地环保科技股份有限公司 | 基于下位机的报表生成方法、计算机设备与存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101167131A (zh) * | 2005-04-26 | 2008-04-23 | 皇家飞利浦电子股份有限公司 | 用于记录数字信息信号的方法和设备 |
US7587481B1 (en) * | 2001-04-05 | 2009-09-08 | Dj Inventions, Llc | Enterprise server for SCADA system with security interface |
CN103116595A (zh) * | 2012-10-24 | 2013-05-22 | 中国电力科学研究院 | 面向电网的scada历史数据分布式存储的实现方法 |
CN103473330A (zh) * | 2013-09-18 | 2013-12-25 | 国家电网公司 | 采用二维表的电力系统能量管理系统历史数据存储方法 |
-
2018
- 2018-10-23 CN CN201811235008.0A patent/CN109492052B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587481B1 (en) * | 2001-04-05 | 2009-09-08 | Dj Inventions, Llc | Enterprise server for SCADA system with security interface |
CN101167131A (zh) * | 2005-04-26 | 2008-04-23 | 皇家飞利浦电子股份有限公司 | 用于记录数字信息信号的方法和设备 |
CN103116595A (zh) * | 2012-10-24 | 2013-05-22 | 中国电力科学研究院 | 面向电网的scada历史数据分布式存储的实现方法 |
CN103473330A (zh) * | 2013-09-18 | 2013-12-25 | 国家电网公司 | 采用二维表的电力系统能量管理系统历史数据存储方法 |
Non-Patent Citations (2)
Title |
---|
付艳萍: "基于马尔可夫模型的SCADA历史数据的存储研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
刘大为: "电力调度SCADA 系统中历史数据压缩及存储策略", 《内燃机与配件》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417590A (zh) * | 2019-07-23 | 2019-11-05 | 浪潮电子信息产业股份有限公司 | 服务器配置方法、装置、整机柜服务器及可读存储介质 |
CN113341365A (zh) * | 2021-05-31 | 2021-09-03 | 安徽南瑞中天电力电子有限公司 | 一种智能电能表协议层数据的处理方法、系统、装置 |
CN113341365B (zh) * | 2021-05-31 | 2024-03-01 | 安徽南瑞中天电力电子有限公司 | 一种智能电能表协议层数据的处理方法、系统、装置 |
CN114418137A (zh) * | 2021-12-02 | 2022-04-29 | 中冶南方(武汉)自动化有限公司 | 一种基于scada平台的电缆隧道智能巡检、维护方法及系统 |
CN117521619A (zh) * | 2024-01-04 | 2024-02-06 | 北京百灵天地环保科技股份有限公司 | 基于下位机的报表生成方法、计算机设备与存储介质 |
CN117521619B (zh) * | 2024-01-04 | 2024-03-29 | 北京百灵天地环保科技股份有限公司 | 基于下位机的报表生成方法、计算机设备与存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109492052B (zh) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109492052A (zh) | 一种scada分布式历史数据存储方法及系统 | |
US20080201335A1 (en) | Method and Apparatus for Storing Data in a Peer to Peer Network | |
US10346056B2 (en) | Declustered array of storage devices with chunk groups and support for multiple erasure schemes | |
CN102968498B (zh) | 数据处理方法及装置 | |
CN108287660B (zh) | 数据存储方法和设备 | |
US6000010A (en) | Method of increasing the storage capacity of a level five RAID disk array by adding, in a single step, a new parity block and N--1 new data blocks which respectively reside in a new columns, where N is at least two | |
CA2546242C (en) | Semi-static distribution technique | |
DE112013006504B4 (de) | Speichersystem und Datenverwaltungsverfahren | |
CN111596868B (zh) | 基于段单元的分布式存储系统的负载均衡方法和系统 | |
CN109597567B (zh) | 一种数据处理方法和装置 | |
CN107005596A (zh) | 用于在集群重新配置后的工作负载平衡的复制型数据库分配 | |
EP2021904A2 (en) | System and method for raid management, reallocation, and restriping | |
CN110188084B (zh) | 一种分布式文件存储系统及文件存储方法 | |
US7471687B2 (en) | Distribution of identifiers in serverless networks | |
CN103354923A (zh) | 一种数据重建方法、装置和系统 | |
CN103067525A (zh) | 一种基于特征码的云存储数据备份方法 | |
CN105511801A (zh) | 数据存储的方法和装置 | |
CN106294008A (zh) | 一种数据恢复方法和装置 | |
EP3059670B1 (en) | Data storage method and storage server | |
CN106897409A (zh) | 数据分库存储方法及装置 | |
CN106682215A (zh) | 一种数据处理方法和管理节点 | |
CN104572242A (zh) | 一种扩展虚拟机磁盘空间的方法、装置及虚拟机系统 | |
CN103457963A (zh) | 存储文件的方法及分布式存储系统 | |
CN103530206A (zh) | 一种数据恢复的方法和设备 | |
CN102043589B (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 |