一种能源scada海量数据分布式处理系统及其方法

文档序号:9396637阅读:704来源:国知局
一种能源scada海量数据分布式处理系统及其方法
【技术领域】
[0001]本发明涉及技术领域,尤其涉及一种能源SCADA海量数据分布式处理系统及其方法。
【背景技术】
[0002]随着互联网的飞速发展,能源自动化领域也受到+互联网和互联网+的影响,应用需求涉及面越来越广,需要实时采集的信息量越来越大,海量的历史数据给网络、信息处理和存储系统造成了极大的负担,而且面对用户随机提出的查询需求,对关系数据库预先建索引就失去了价值,从海量信息中遍历查询某个字段的效率较低。
[0003]SCADA系统是一类功能强大的计算机远程控制与数据采集系统,它综合利用了计算机技术、控制技术、通信与网络技术,完成了对测控点分散的各种过程或设备的实时数据采集,本地或远程的自动控制,以及生产过程的全面实时监控,并为安全生产、调度、管理、优化和故障诊断提供必要和完整的数据及技术手段。能源SCADA系统中设备种类多、信息量大、采集点多,同时由于各种应用的实际需要,通常需要把采集的数据保留一段很长的时间,用于查询、分析和统计。另外,数据的实时性要求高,对数据点就要保持较高的采样频率,采样频率一般包括秒级和分钟级。这样,数据会呈现爆发式的增长,如果不能对采集的数据信息进行及时的处理,就会产生数据丢失的问题。
[0004]面对数据量的迅速增长,通常有两种解决方案,一种是使用更好的硬件,另一种就是分布式处理,将数据分散处理。但是硬件通常是有物理极限的,达到极限以后,处理能力就不能再增加了,而后者只需要普通的服务器,成本很低,而且理论上可以无限扩展。
[0005]现有技术中,对大量数据的采集、处理和存储采用的方法是:
[0006]I)前置服务器采集电力数据,并将数据组装成报文,以消息的形式发放到总线上;各服务器读取各自订阅的消息报文,解析得到的数据放入实时库;实时库的数据不断被刷新;
[0007]2)数据以不同的采样频率刷入开源实时库,根据频率不同,对应开源分布式数据库中的表结构不同;
[0008]3)同一地区的数据放在相邻行,数据按照键值对形式存储。
[0009]其技术缺点是使用传统关系数据库集中存储,系统复杂,在无索引的情况下,随机大数据量访问效率低,并且可扩展性差。另外,通过应用程序对数据的处理和分析受限,灵活性差。

【发明内容】

[0010]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种能源SCADA海量数据的分布式处理系统及其方法,其将海量历史数据的存储文件的路径、时间等属性信息和数据本身分开存储,文件的属性信息存储在管理服务器上,数据信息存储在数据服务器节点上,并将数据分片以二进制文件形式存储在多个不同的服务器上,以便于海量信息的存储,文件属性信息的作用相当于编程语言里的指针,指向数据本身。当访问历史数据时,首先访问控制服务器,然后快速定位到目标主机,并从指定的文件中读取信息。由于数据信息存储在多个服务器上,它们会并行对外传输数据,数据服务器的数量越多时,访问的效率越高,解决了当前SCADA海量历史信息的存储和访问问题。
[0011]为实现上述目的,本发明提供了一种能源SCADA海量数据分布式处理系统,其特征在于:包括客户端、实时通信节点、管理服务器和分布式数据服务器,所述客户端通过互联网与实时通信节点相连接,所述实时通信节点与管理服务器连接,所述管理服务器通过以太网与分布式数据服务器相连接;所述实时通信节点包括实时库和配置库,所述管理服务器包括主管理服务器和备管理服务器,所述分布式数据服务器包括多个主存储节点和多个备存储节点。
[0012]一种能源SCADA海量数据分布式处理方法,其特征在于,包括以下步骤:
[0013]S1、客户端首先通过配置工具配置所有的1点及属性信息,将配置信息存储到配置库中,配置数据是通过关系数据库来管理,并生成xml文件,即配置文件;
[0014]S2、实时库产生的数据包括模拟量、数字量、字符和报警信息,模拟量暂时存储到本地的缓存中,数字量是在发生变化时主动发动给管理服务器,报警信息是在发生报警时主动发送给管理服务器;
[0015]S3、管理服务器中启动了三个线程去采集或接收实时库中产生的数据信息,这三个线程分别是analog线程、digital线程和alarm线程,analog线程按照配置的频率去实时库中采集模拟量数据,digital线程和alarm时刻监听着各自的端口,如果监听到消息则立即接收;
[0016]S4、管理服务器将接收到的数据先进行报文解析,根据配置文件进行过滤,丢弃配置文件中不需要保存的1点,对需要保存的1点进行检查,若非本月首次存储,则存储到本月其他数据已分配的主机中,否则,按照一定的分配策略重新分配到不同的分布式数据服务器的各个存储节点中,将存储文件的路径和时间信息存放在管理服务器中;
[0017]S5、每一个存储服务器都会在管理服务器中进行注册,注册完成后,管理服务器中会生成主机名到IP的映射表,一个主机名映射两个IP,分别是主存储节点和备存储节点的IP,主存储节点的IP会被优先访问;当主存储节点出现故障时,管理服务器检测到后会将备存储节点的IP置为优先级最高,同时,备存储节点立即替代故障的节点工作;其中,任一组存储节点包括η个存储服务器,分别存储一部分历史数据;
[0018]S6、当有1点数据需要存储时,管理服务器就会根据已注册的所有主机名来分配数据,并根据路由表将要存储的数据路由到目的主机,这些工作由RRM进程(Register andRouter Manager,注册和路由管理)来完成;
[0019]S7、数据被传输到分布式数据服务器后,先暂时存储在内存中,然后每隔一段时间把内存中的数据转移到硬盘中,在硬盘中以二进制文件的形式进行存储,存储路径是固定的,存储路径采用“tagName/attribute/具体的月份”三层文件夹的格式,如果某个文件夹不存在,就新建一个对应名字的文件夹。
[0020]进一步地,所述步骤S6中RRM进程的执行过程为:客户端不需要知道要访问的数据存放的位置,只需将请求提交给RRM进程,RRM进程知道目标数据在哪个主机,然后将请求转发给目标服务进程,目标服务进程读取数据后直接传输给客户端进程。
[0021]进一步地,所述步骤S4的分配策略为:分配策略采用一致性哈希方法和固定分配相结合的方式,同一个月的数据被固定分配到同一个存储节点上;当月份发生改变时,再采用一致性哈希方法计算出要被分配的下一个节点编号;当需要查询某个点的某一段时间的数据时,根据月份直接定位到数据所在的存储节点。
[0022]进一步地,所述采用的一致性哈希方法过程如下:
[0023]I)使用哈希函数H(m) = m MOD n,其中η = 232;其哈希值空间为0_(2 32_1),每个空间可以看做一个桶,将编号为0-(232-1)的桶头尾相连,形成一个虚拟环;
[0024]2)把月份m通过步骤I)中使用的哈希函数计算出对应的key值,然后散列到虚拟环上;
[0025]3)把存储节点的主机名作为输入值通过同步骤I) 一样的哈希函数也映射到虚拟环中,然后以顺时针的方向计算,将所有月份m存储到离自己最近的机器中。
[0026]进一步地,所述步骤S7中数据文件存储在月份文件夹下,二进制文件以一天来分割进行存储,即不同一天的数据存储在不同的二进制文件中;如果是模拟量,则二进制文件以具体的日期和采样频率的组合来命名,采样频率可以在配置库中进行配置;如果是数字量,二进制文件以具体的日期命名,二进制文件中每一条都要存储具体时间,而数据信息只用存储第一条数据,以后只用存储相对于第一条数据的偏移量;如果是字符,则二进制文件以具体的日期命名,而且全部存储;当超过设置的最大值时,自动删除存储时间最早的文件。
[0027]进一步地,所述步骤S5中对某个1点的某一段时间的数据进行访问时,客户端会将查询请求先提交给管理服务器,管理服务器进行报文解析,根据存储时的哈希算法计算出目标主机,然后根据路由表把查询信息路由到目标主机。
[0028]进一步地,所述查询信息路由到目标主机分三种情况:
[0029]I)如果查询的是同一天的数据,则查询进程会先在目的主机中的内存中查找,当内存中没有请求的数据时,再到硬盘中的tagName (点名)和月份文件夹下找到对应的二进制文件,然后根据具体的时间计算出偏移量,定位到文件中的某一行
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1