一种水力发电站数据缓存操作方法和系统
文献发布时间:2023-06-19 12:02:28
技术领域
本发明属于水力发电站多源海量信号数据存储技术领域,更具体地,涉及一种水力发电站数据缓存操作方法和系统。
背景技术
水力发电是指利用河流、湖泊等位于高处具有位能的水流至低处,将其中所含的位能转换成动能,再借助发电机转换成电能的过程。开发水电能带来巨大的经济效益,同时也带来相应的社会和生态效益。大中型的水电工程兼具防洪、灌溉、供水、航运、养殖等多重效益,起到防汛抗旱、优化水资源配置的作用,并保障下游粮食安全、改善生态环境。作为清洁能源,水电取之不尽,用之不竭,可再生、无污染、运行费用低,方便进行电力调峰,有利于提高资源利用率和经济社会综合效益。
在水电行业,随着我国自动化领域国产化的步步深入,“无人值班、少人值守”的水电模式的推行建设,以及智能水电厂概念的提出及构建,发电企业也陆续新建了各种自动化实时、准实时监测系统和信息管理系统。为监测水力发电站各系统运行,电站布置安装大量传感器,这些监测数据随时间呈现爆炸增长,对数据持久化及硬软件设备运行提出了更高的要求,增大了对机组状态评估、故障诊断、趋势预测等算法时间开销,成为机组各系统高效实时运行的技术瓶颈。
为了有效加快数据的访问速度,现有的水力发电站数据缓存操作方法和系统将一些频繁查询访问的监测数据放置于缓存中。然而,现有的水力发电站数据缓存管理是复杂困难的,主要体现在两个方面:
1)目前水力发电站数据的存储仅以机械磁盘搭载的关系型数据库存储,机械磁盘依靠盘片存储数据,适合存储大容量的数据,不会因为某个元件的损坏造成数据无法提取。虽然该种方式保证了数据的安全性,但无法满足对于数据快速读取的需求。而水力发电站安全稳定运行需重点关注运行期间的数据,分析并处理数据以得到水力发电站运行状态与趋势。而机械磁盘的读写速度不能满足实时监测水力发电站安全稳定运行的要求。
2)现有的水力发电站数据缓存操作系统中,水力发电站数据统一存储至较大数据库中,随着数据量的增长,数据检索的时间开销也在逐渐增大;当数据量较大时,查询访问时间变长,同时也需要耗费大量的缓存时间,且数据进行缓存时将长时间占据电脑处理器资源。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种水力发电站数据缓存操作方法和系统,用以解决现有技术由于缓存读写速度较慢而导致的无法实时监测水力发电站安全稳定运行的技术问题。
为了实现上述目的,第一方面,本发明提供了一种水力发电站数据缓存操作方法,包括对待缓存的各水力发电站数据进行缓存,具体包括以下步骤:
S1、分别对待缓存的各水力发电站数据的数据属性从数据需求度和时间相关性两个方面进行分析,获取待缓存的各水力发电站数据的缓存优先级;
S2、分别将待缓存的各水力发电站数据写入对应缓存等级的缓存区内;
其中,水力发电站数据的数据属性包括:水力发电站中保障安全稳定运行的算法对数据的访问热度、数据的数值类型、数据类别、水力发电站中保障安全稳定运行的算法对数据的需求度和对数据进行操作的时间;缓存区的级数为N个,对应N个不同的缓存等级,各缓存区的缓存等级依据其硬件读写速度和存储机制进行设置;N为大于或等于2的整数;水力发电站数据的缓存优先级级数与缓存区的级数相同。
第二方面,本发明提供了一种水力发电站数据缓存操作方法,包括读取缓存数据,其方法包括:
按照上述步骤S1对待读取的水力发电站数据进行处理,获取待读取的水力发电站数据的缓存优先级,并从对应缓存等级的缓存区读取该水力发电站数据;
其中,缓存区的级数为N个,对应N个不同的缓存等级,各缓存区的缓存等级依据其硬件读写速度和存储机制进行设置;N为大于或等于2的整数;水力发电站数据的缓存优先级级数与缓存区的级数相同。
进一步优选地,上述缓存操作方法,还包括:
S21、判断是否从当前缓存等级的缓存区中成功读取到待读取的水力发电站数据;若是,则返回该水力发电站数据,并转至步骤S23;否则,转至步骤S22;
S22、判断当前缓存等级是否为最低缓存等级,若是,则返回空值,操作结束;否则,从下一个更低缓存等级的缓存区读取该水力发电站数据,转至步骤S21;
S23、判断当前读取缓存数据的操作是否是水力发电站中保障安全稳定运行的算法所触发的操作,若是,则转至步骤S24;否则,操作结束;
S24、此时,水力发电站数据的数据属性被更新;重新按照步骤S1对待读取的水力发电站数据进行处理,获取当前待读取的水力发电站数据的缓存优先级,并判断待读取的水力发电站数据的缓存优先级是否发生变化,当待读取的水力发电站数据的缓存优先级发生变化时,将上述待读取的水力发电站数据同步缓存至对应缓存等级的缓存区,并删除原始缓存区中所存储的待读取的水力发电站数据,操作结束。
第三方面,本发明提供了一种水力发电站数据缓存操作方法,包括更新缓存数据的方法,具体包括以下步骤:每隔一个预设周期,按照缓存等级由高到低的顺序,依次读取各缓存区所缓存的水力发电站数据,按照上述步骤S1对所读取的水力发电站数据进行处理,获取当前时刻水力发电站数据的缓存优先级,并与上一时刻该水力发电站数据的缓存优先级进行比较,当该水力发电站数据的缓存优先级发生变化时,将该水力发电站数据同步缓存至对应缓存等级的缓存区,并删除原始缓存区中的该水力发电站数据;
其中,缓存区的级数为N个,对应N个不同的缓存等级,各缓存区的缓存等级依据其硬件读写速度和存储机制进行设置;N为大于或等于2的整数;水力发电站数据的缓存优先级级数与缓存区的级数相同。
进一步优选地,获取水力发电站数据的缓存优先级的方法,包括以下步骤:
1)、对水力发电站数据的各数据属性值,分别依据预先确定的数据属性值权重与数据属性值区间的对应关系,得到各数据属性值权重;并基于各数据属性值的重要度对各数据属性值权重进行加权求和,得到水力发电站数据的数据需求优先级权重;
2)、计算水力发电站数据的采集时间与水力发电站中保障安全稳定运行的算法访问该水力发电站数据的时间的时间差,并依据预先确定的时间优先权重与时间差区间的对应关系,得到水力发电站数据的时间优先权重;
3)、综合水力发电站数据的数据需求优先级权重和时间优先权重得到综合权重,并依据预先确定的数据缓存优先级与综合权重的对应关系,得到水力发电站数据的数据缓存优先级。
进一步优选地,在获取水力发电站数据的缓存优先级之前,分别确定数据属性值权重与数据属性值区间的对应关系、时间优先权重与时间差区间的对应关系和数据缓存优先级与综合权重的对应关系;具体包括:
采集大量水力发电站数据的数据属性值;
分别对各水力发电站数据的水力发电站中保障安全稳定运行的算法对数据的访问热度和水力发电站中保障安全稳定运行的算法对数据的需求度,确定其上下界,并划分为多个数据区间,并对各数据区间分别分配对应的数据属性值权重;取值较大的数据区间所分配的数据属性值权重大于取值较小的数据区间所分配的数据属性值权重;
分别计算各水力发电站数据的采集时间与水力发电站中保障安全稳定运行的算法访问该水力发电站数据的时间的时间差,确定其上下界,并划分为多个时间区间,并对各时间区间分别分配对应的时间优先权重;时间较小的时间区间所分配的时间优先权重大于时间较大的时间区间所分配的时间优先权重;
分别对各水力发电站数据,按照步骤1)和步骤2)操作后,综合水力发电站数据的数据需求优先级权重和时间优先权重得到综合权重,确定其上下界,并划分为N个区间,并对各区间分别分配对应的数据缓存优先级;其中,综合权重越大,所分配的缓存优先级越高。
进一步优选地,缓存区的级数为4个,包括缓存等级从高到低的第一级缓存区、第二级缓存区、第三级缓存区和第四级缓存区;第一级缓存区、第二级缓存区和第三级缓存区集中在同一服务器上;第四级缓存区有多个,分布在不同服务器上;
第一级缓存区采用寄存器进行缓存;第二级缓存区采用内存进行缓存,所采用的数据库为基于键值对方式存储数据的数据库;第三级缓存区采用固态硬盘进行缓存,所采用的数据库为基于可持久化存储的关系型数据库;第四级缓存区采用机械磁盘进行缓存,所采用的数据库为基于可持久化存储的非关系型数据库。
进一步优选地,第二级缓存区所采用的数据库为Redis数据库或Memcached数据库;第三级缓存区所采用的数据库为MySql数据库或SqlServer数据库;第四级缓存所采用的数据库为DRDS数据库、TiDB数据库、GreenPlum数据库、Cobar数据库、Aurora数据库或Mycat数据库。
第四方面,本发明提供了一种水力发电站数据缓存操作系统,包括:数据缓存优先级计算模块、缓存写入模块、缓存读取模块、缓存更新模块和缓存区;
数据缓存优先级计算模块分别与缓存写入模块、缓存读取模块和缓存更新模块双向连接;缓存写入模块和缓存更新模块的输出端分别与缓存区的输入端连接;缓存读取模块与缓存区双向连接;
数据缓存优先级计算模块用于对水力发电站数据的数据属性从数据需求度和时间相关性两个方面进行分析,确定水力发电站数据的缓存优先级;
缓存写入模块用于将待缓存的各水力发电站数据分别输入到数据缓存优先级计算模块中,得到待缓存的各水力发电站数据的缓存优先级,并分别将待缓存的各水力发电站数据写入对应缓存等级的缓存区内;
缓存读取模块用于将待读取的水力发电站数据输入到数据缓存优先级计算模块中,得到待读取的水力发电站数据的缓存优先级,并从对应缓存等级的缓存区读取该水力发电站数据;
缓存更新模块用于每隔一个预设周期,按照缓存等级由高到低的顺序,依次读取各缓存区所缓存的水力发电站数据,并输入到数据缓存优先级计算模块中,得到当前时刻水力发电站数据的缓存优先级,并与上一时刻该水力发电站数据的缓存优先级进行比较,当该水力发电站数据的缓存优先级发生变化时,将该水力发电站数据同步缓存至对应缓存等级的缓存区,并删除原始缓存区中的该水力发电站数据;
其中,水力发电站数据的数据属性包括:水力发电站中保障安全稳定运行的算法对数据的访问热度、数据的数值类型、数据类别、水力发电站中保障安全稳定运行的算法对数据的需求度和对数据进行操作的时间;缓存区的级数为N个,对应N个不同的缓存等级,各缓存区的缓存等级依据其硬件读写速度和存储机制进行设置;N为大于或等于2的整数;水力发电站数据的缓存优先级级数与缓存区的级数相同。
进一步优选地,上述水力发电站数据缓存操作系统还包括:数据采集模块、数据请求模块和通讯模块;
缓存区的级数为4个,包括缓存等级从高到低的第一级缓存区、第二级缓存区、第三级缓存区和第四级缓存区;其中,第一级缓存区包括寄存器;第二级缓存区包括内存;第三级缓存区包括固态硬盘;第四级缓存区包括机械磁盘;第一级缓存区、第二级缓存区和第三级缓存区集中在同一服务器上;第四级缓存区有多个,分布在不同服务器上;
数据采集模块的输出端分别与缓存写入模块、缓存读取模块和缓存更新模块的输入端相连;数据请求模块的输出端分别与缓存写入模块、缓存读取模块和缓存更新模块的输入端相连;缓存写入模块和缓存更新模块的输出端均与前三级缓存区的输入端连接;缓存读取模块与前三级缓存区双向连接;前三级缓存区与第四级缓存区通过通讯模块相连;
数据请求模块用于发起缓存写入、缓存读取或缓存更新的指令;
数据采集模块用于采集水力发电站数据;
通讯模块用于为前三级缓存区与第四级缓存区建立通讯连接。
第五方面,本发明还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现如上所述的任一种水力发电站数据缓存操作方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
1、本发明提供了一种水力发电站数据缓存操作方法,对水力发电站数据的数据属性从数据需求度和时间相关性两个方面进行分析,获取水力发电站数据的缓存优先级;并将水力发电站数据的缓存优先级与缓存区的缓存等级相对应,操作越频繁的数据对应存储在缓存等级越高的缓存区内;通过对水力发电站数据进行多级缓存,对数据进行缓存、读取和更新,保障了数据的准确性,避免了由于某个数据库连接不上而无法获取缓存数据的问题,使数据丢失的风险得到了控制,大大提高了缓存读写速度,能够实时监测水力发电站的安全稳定运行。
2、本发明所提供的水力发电站数据缓存操作方法,设置了多级缓存,充分考虑水力发电站中保障安全稳定运行的算法对数据的访问热度、数据的数值类型、数据类别、水力发电站中保障安全稳定运行的算法对数据的需求度和对数据进行操作的时间,将数据存储在不同等级的缓存区中,可使获取缓存的时间大大缩短,从而减少了整个计算过程处理数据的时间,加快了缓存的读取速度,增加了程序的吞吐量。
3、本发明提供了一种水力发电站数据缓存操作系统,包括数据缓存优先级计算模块、缓存写入模块、缓存读取模块、缓存更新模块和缓存区;在对水力发电站数据进行缓存操作之前,采用数据缓存优先级计算模块确定水力发电站数据的缓存优先级;由于缓存区的级数为多个,且各缓存区的缓存等级依据其硬件读写速度和存储机制进行设置,并与水力发电站数据的缓存优先级相对应,从而实现了多级缓存系统,大大提高了数据存储的可扩展性及容错性,并降低访问延迟,能够实时监测水力发电站的安全稳定运行。
4、本发明所提供的水力发电站数据缓存操作系统中,缓存区包括缓存等级从高到低的第一级缓存区、第二级缓存区、第三级缓存区和第四级缓存区;不同缓存等级的缓存区具有不同的带宽和延迟,其中,前三级缓存区集中在同一服务器上且第三级缓存区中的固态硬盘具有较高的I/O性能,较高的带宽和和较低的延迟,能够更大限度的提高I/O并行能力;而分布式缓存仅针对第四级“机械磁盘缓存”,由于不需要很高的实时性,同时又因为该级别数据量大,需要的机械磁盘数量多,若与前三级缓存共同管理,需就地设置机房,因此本发明采用分布式的方式通过通讯模块进行网络通讯将第四级缓存设置成分布式的形式。
附图说明
图1为本发明第一方面所提供的水力发电站数据缓存操作方法流程图;
图2为本发明第二方面所提供的水力发电站数据缓存操作方法流程图;
图3为在水轮机转轮生命周期预测系统中采用本发明所提供的缓存操作方法读取数据的流程图;
图4为本发明所提供的水力发电站数据缓存操作系统结构示意图;
图5为本发明所提供的当缓存区的级数为4个时,水力发电站数据缓存操作系统的详细结构示意图。
图6为本发明所提供的多级分布式缓存区的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为了实现上述目的,第一方面,本发明提供了一种水力发电站数据缓存操作方法,如图1所示,包括对待缓存的各水力发电站数据进行缓存,具体为:
S1、分别对待缓存的各水力发电站数据的数据属性从数据需求度和时间相关性两个方面进行分析,获取各水力发电站数据的缓存优先级;其中,水力发电站数据的数据属性包括:水力发电站中保障安全稳定运行的算法对数据的访问热度a
具体的,获取水力发电站数据的缓存优先级的方法,包括以下步骤:
1)、对水力发电站数据的各数据属性值,分别依据预先确定的数据属性值权重与数据属性值区间的对应关系,得到各数据属性值权重;并基于各数据属性值的重要度对各数据属性值权重进行加权求和,得到水力发电站数据的数据需求优先级权重;
具体地,水力发电站中保障安全稳定运行的算法对数据的访问热度a
2)、计算水力发电站数据的采集时间与水力发电站中保障安全稳定运行的算法访问该水力发电站数据的时间的时间差,并依据预先确定的时间优先权重与时间差区间的对应关系,得到水力发电站数据的时间优先权重;
具体地,水力发电站中保障安全稳定运行的算法重点关注近期的数据,因而,为近期数据设置更高级的数据优先权重将极大减少算法获取数据的时间。本实施例中,设置时间差区间为一天以内、一天以上且一周以内、一周以上且一月以内和一月以上,并分别赋予1、0.8、0.6和0.4的权重值。
3)、综合待水力发电站数据的数据需求优先级权重和时间优先权重得到综合权重,并依据预先确定的数据缓存优先级与综合权重的对应关系,得到水力发电站数据的数据缓存优先级。
具体地,本实施例中,所得的综合权重w=0.5×w
进一步地,需要说明的是,在获取水力发电站数据的缓存优先级之前,分别确定数据属性值权重与数据属性值区间的对应关系、时间优先权重与时间差区间的对应关系和数据缓存优先级与综合权重的对应关系;具体包括:
采集大量水力发电站数据的数据属性值;
分别对各水力发电站数据的水力发电站中保障安全稳定运行的算法对数据的访问热度和水力发电站中保障安全稳定运行的算法对数据的需求度,确定其上下界,并划分为多个数据区间,并对各数据区间分别分配对应的数据属性值权重;取值较大的数据区间所分配的数据属性值权重大于取值较小的数据区间所分配的数据属性值权重;而水力发电站中数据的数值类型包括整型和浮点型。整型中主要包含开关量、启闭次数等特征参量;浮点型则为传感器采集数据。数据缓存中整型数据因数据位数小于浮点型,其读写速度更快。本实施例中,基于大量数据验证并综合数值类型字节数、读写时间及存储空间,将数值类型为整型的数据的属性值权重赋值为1,将数值类型为浮点型的数据赋值权重0.8。数值类型为整型的数据属性值权重大于数值类型为浮点型的数据属性值权重。水力发电站数据类别包含振动量、位移量、压力量、流量、噪声量和转速。各数据类别对水力发电站运行状态的表征不同。同样的数据数值变化对水力发电站的安全运行影响差异大。采集大量数据并综合数据类别中反映水力发电站安全运行的程度,对不同的数据类别设置了不同的权重,对水力发电站安全运行的影响从高到低依次为:振动量、压力量、转速、流量、位移量、噪声量。根据数据类别划分区间。优选的:数据类别为振动量、压力量、转速、流量、位移量和噪声量的数据属性值权重分别赋值为:1、0.9、0.8、0.7、0.6和0.5。权重越高则其数值变化越能反应水力发电站运行状态。
分别计算各水力发电站数据的采集时间与水力发电站中保障安全稳定运行的算法访问该水力发电站数据的时间的时间差,确定其上下界,并划分为多个时间区间,并对各时间区间分别分配对应的时间优先权重;时间较小的时间区间所分配的时间优先权重大于时间较大的时间区间所分配的时间优先权重;
分别对各水力发电站数据,按照步骤1)和步骤2)操作后,综合水力发电站数据的数据需求优先级权重和时间优先权重得到综合权重,确定其上下界,并划分为N个区间,并对各区间分别分配对应的数据缓存优先级;其中,综合权重越大,所分配的缓存优先级越高。
S2、分别将各待缓存数据写入对应缓存等级的缓存区内;其中,缓存区的级数为N个,对应N个不同的缓存等级,各缓存区的缓存等级依据其硬件读写速度和存储机制进行设置(硬件读写速度越快,缓存等级越高);N为大于或等于2的整数;水力发电站数据的缓存优先级级数与缓存区的级数相同。优选地,按照数据缓存优先级由高到低的顺序,分别将各待缓存数据写入对应缓存等级的缓存区内;由于在设置缓存区级别时,缓存区级别越高,读写速度越快;按照优先级由高到低按顺序写入缓存区能够快速完成优先级高的缓存区数据存储;同时,缓存级高则读取频率高,本发明将经常访问且重要的数据设置较高的缓存优先级,可加快缓存读取速度,对于实时性要求较高的算法而言,读取数据节省的时间可加快算法整体时间,能够大大保障数据的安全性,在水力发电站出现事故之前及时预警,保障厂房及人员的安全。
本实施例中,缓存区的级数为4个,对应N个不同的缓存等级(即N=4),包括缓存等级从高到低的第一级缓存区、第二级缓存区、第三级缓存区和第四级缓存区。第一级缓存区采用寄存器进行缓存;第二级缓存区采用内存(优选为高速内存或超高速内存)进行缓存,所采用的数据库为基于键值对方式存储数据的数据库,优选为Redis数据库或Memcached数据库;第三级缓存区采用固态硬盘进行缓存,所采用的数据库为基于可持久化存储的关系型数据库,优选为MySql数据库或SqlServer数据库;第四级缓存区采用机械磁盘进行缓存(优选为分布式机械磁盘缓存),通过网络交互通讯数据,所采用的数据库为基于可持久化存储的非关系型数据库,优选为DRDS数据库、TiDB数据库、GreenPlum数据库、Cobar数据库、Aurora数据库或Mycat数据库。优选地,第一级缓存区、第二级缓存区和第三级缓存区集中在同一服务器上,第四级缓存区有多个,采用分布式方式分布在不同的服务器上。本实施例中,分布式缓存仅针对第四级“机械磁盘缓存”,由于不需要很高的实时性,同时又因为该级别数据量大,需要的机械磁盘数量多,若与前三级缓存共同管理,需就地设置机房,因此提出分布式的策略,通过网络通讯将第四级缓存设置成分布式的形式。
进一步地,需要说明的是,本发明应用于水力发电站中,以水力发电站中保障安全稳定运行的算法对数据的需求度为例,如趋势预测算法对数据实时性要求高,需快速获取数据进行分析,故设立寄存器作为第一级缓存可满足要求,同时以内存为第二级缓存可弥补寄存器存储空间不足的问题。而故障诊断算法对数据实时性要求不高,但对数据量级要求高,故设立固态硬盘作为第三级缓存可满足实时性与数据量级的要求。另外,历史数据作为水力发电站中保障安全稳定运行的算法的训练及补充,虽然使用频率较低但也需有效持久化,故设立了分布式机械磁盘作为第四级缓存作为这些数据的存储物理介质。因此,本发明设置了四级缓存区。
第二方面,本发明提供了一种水力发电站数据缓存操作方法,包括:读取缓存数据的方法,具体为:
按照第一方面中所述的步骤S1对待读取的水力发电站数据进行处理,获取待读取的水力发电站数据的缓存优先级,并从对应缓存等级的缓存区读取该水力发电站数据;相关技术方案同第一方面所提供的水力发电站数据缓存操作方法,这里不做赘述。
进一步地,如图2所示,上述缓存操作方法,还包括:
S21、判断是否从当前缓存等级的缓存区中成功读取到待读取的水力发电站数据;若是,则返回该水力发电站数据,并转至步骤S23;否则,转至步骤S22;
S22、判断当前缓存等级是否为最低缓存等级,若是,则返回空值,操作结束;否则,从下一个更低缓存等级的缓存区读取该水力发电站数据,转至步骤S21;
S23、判断当前读取缓存数据的操作是否是水力发电站中保障安全稳定运行的算法所触发的操作,若是,则转至步骤S24;否则,操作结束;
S24、此时,水力发电站数据的数据属性被更新;重新按照步骤S1对待读取的水力发电站数据进行处理,获取当前待读取的水力发电站数据的缓存优先级,并判断待读取的水力发电站数据的缓存优先级是否发生变化,当待读取的水力发电站数据的缓存优先级发生变化时,将上述待读取的水力发电站数据同步缓存至对应缓存等级的缓存区,并删除原始缓存区中所存储的待读取的水力发电站数据,操作结束。
第三方面,本发明提供了一种水力发电站数据缓存操作方法,包括更新缓存数据的方法,具体包括以下步骤:每隔一个预设周期,按照缓存等级由高到低的顺序,依次读取各缓存区所缓存的水力发电站数据,按照第一方面中所述的步骤S1对所读取的水力发电站数据进行处理,获取当前时刻水力发电站数据的缓存优先级,并与上一时刻该水力发电站数据的缓存优先级进行比较,当该水力发电站数据的缓存优先级发生变化时,将该水力发电站数据同步缓存至对应缓存等级的缓存区,并删除原始缓存区中的该水力发电站数据。需要说明的是,缓存级别高,则数据访问越频繁,故本发明采用由高到低的顺序对缓存等级进行更新。其中,上述预设周期可根据电站数据量级来确定;本实施例中取值为3天。
相关技术方案同第一方面所提供的水力发电站数据缓存操作方法,这里不做赘述。
本发明对水力发电站数据进行分级缓存、分级读取和分级更新,保障了水力发电站数据的准确性,避免了由于某个数据库连接不上而无法获取缓存数据的问题,使数据丢失的风险得到了控制,将数据存储在优先级不同的缓存区中,可使获取缓存的时间大大缩短,从而减少了整个计算过程处理数据的时间,加快了缓存的读取速度,增加了程序的吞吐量。
进一步地,以水轮机转轮生命周期预测系统为例,监测转轮的声发射传感器、振动传感器采集到水轮机监测数据。首先为该数据贴好时间戳,结合水轮机中保障安全稳定运行的算法对数据的访问热度、数据的数值类型、数据类别和水轮机中保障安全稳定运行的算法对数据的需求度计算水轮机监测数据的需求优先级权重和时间优先权重,得到水轮机监测数据的数据缓存优先级,并将水轮机监测数据存储到对应缓存等级的缓存区内。针对水轮机转轮生命周期的预测所需要的水轮机转轮振动信号、声发射信号、流量、水头、出力等基本数据,当需要用到缓存的上述数据的时,开始按照四级缓存方式读取缓存的数据,如图3所示。具体的,当所需读取的数据的数据缓存优先级为1时,则从第一级缓存区中读取需要的缓存数据,例如:从寄存器内的CacheBuilder对象中读取缓存数据。由于寄存器读取速度快,且不需要网络连接,所以将寄存器设置为第一级缓存,但同时由于寄存器大小的限制,寄存器缓存的数据有限。当所需读取的数据的数据缓存优先级为2时,则从第二级缓存区中读取需要的缓存数据,例如:从基于本地内存物理载体的Redis数据库中读取需要的缓存数据。由于Redis是一个高性能的Key-value内存数据库,读取数据快。依靠单线程完成缓存查询,避免线程之间的竞争,减少磁盘的io,同时采用多路复用模型,拥有更多的数据结构并支持丰富的数据操作。同时,Redis持久化采用RDB机制,对Redis数据库中的数据执行周期性的持久化,保证了数据的安全可靠性。当所需读取的数据的数据缓存优先级为3时,则从第三级缓存中读取需要的缓存数据,例如:从基于固态硬盘为物理载体的Mysql数据库中读取需要的缓存数据。将Mysql作为第三级缓存,主要基于Mysql可持久化存储数据到固态硬盘,不易丢失,且Mysql作为关系型数据库读取性能高,能满足需求。同样地,也可以使用Sqlserver等具有相同或类似特性的数据库作为第三级缓存,可达到同样的效果。需要说明的是,关系型数据库:数据关系模型基于关系模型,结构化存储,完整性约束。基于二维表及其之间的联系,需要连接、并、交、差、除等数据操作;采用结构化的查询语言做数据读写;操作需要数据的一致性,需要事务甚至是强一致性;但关系型数据库的数据存储为了更高的规范性,把数据分割为最小的关系表以避免重复,获得精简的空间利用;但是当单个操作设计到多张表的时候,数据管理就显得有点麻烦。当所需读取的数据的数据缓存优先级为4时,则从第四级缓存中读取需要的缓存数据,例如:从分布型Nosql数据库DRDS数据库中读取需要的缓存数据。采用非结构化数据,非结构化的存储,基于多维关系模型,具有特有的使用场景,高并发,大数据下读写能力较强。支持分布式,易于扩展,可伸缩,简单,弱结构化存储。DRDS数据库基于动态结构,使用与非结构化数据。可以很容易适应数据类型和结构的变化。而DRDS据库是横向扩展的,它的存储天然就是分布式的,可以通过给资源池添加更多的普通数据库服务器来分担负载。如果获取到所需数据,则返回需求数据,进行后续的逻辑计算。同时,因数据访问热度的更改,需要重新计算数据缓存优先级。如果优先级更改,则同步缓存至对应更新后的缓存区,删除原有缓存区数据。
本实施例主要是采用四级缓存,针对数据的数据类别、数值类型、访问热度、需求度、时间戳等信息减少缓存数据读取过程中的开销,以便快速读取到缓存,减少处理单条数据的时间,从而增加整个程序的吞吐量,提高程序的处理效率;四级缓存同时也能保障数据的准确性,避免单数据存储的丢失、数据库无法连接的问题。
第四方面,本发明提供了一种水力发电站数据缓存操作系统,如图4所示,包括:数据缓存优先级计算模块、缓存写入模块、缓存读取模块、缓存更新模块和缓存区;
数据缓存优先级计算模块分别与缓存写入模块、缓存读取模块和缓存更新模块双向连接;缓存写入模块和缓存更新模块的输出端分别与缓存区的输入端连接;缓存读取模块与缓存区双向连接;
数据缓存优先级计算模块用于对水力发电站数据的数据属性从数据需求度和时间相关性两个方面进行分析,确定水力发电站数据的缓存优先级;
缓存写入模块用于将待缓存的各水力发电站数据分别输入到数据缓存优先级计算模块中,得到待缓存的各水力发电站数据的缓存优先级,并分别将待缓存的各水力发电站数据写入对应缓存等级的缓存区内;
缓存读取模块用于将待读取的水力发电站数据输入到数据缓存优先级计算模块中,得到待读取的水力发电站数据的缓存优先级,并从对应缓存等级的缓存区读取该水力发电站数据;
缓存更新模块用于每隔一个预设周期,按照缓存等级由高到低的顺序,依次读取各缓存区所缓存的水力发电站数据,并输入到数据缓存优先级计算模块中,得到当前时刻水力发电站数据的缓存优先级,并与上一时刻该水力发电站数据的缓存优先级进行比较,当该水力发电站数据的缓存优先级发生变化时,将该水力发电站数据同步缓存至对应缓存等级的缓存区,并删除原始缓存区中的该水力发电站数据;
其中,水力发电站数据的数据属性包括:水力发电站中保障安全稳定运行的算法对数据的访问热度、数据的数值类型、数据类别、水力发电站中保障安全稳定运行的算法对数据的需求度和对数据进行操作的时间;具体地,缓存区的级数为N个,对应N个不同的缓存等级,各缓存区的缓存等级依据其硬件读写速度和存储机制进行设置;N为大于或等于2的整数;水力发电站数据的缓存优先级级数与缓存区的级数相同。
进一步地,数据缓存优先级计算模块包括:双向连接的处理器DSP和RAM;其中,处理器DSP用于分别对水力发电站数据的数据属性从数据需求度和时间相关性两个方面进行分析,获取水力发电站数据的数据属性的缓存优先级;相关技术方案同第一方面所提供的获取水力发电站数据的缓存优先级的方法,这里不做赘述;RAM用于对处理器DSP计算过程的数据进行临时存储。
进一步地,如图5所示,上述水力发电站数据缓存操作系统还包括:数据采集模块、数据请求模块和通讯模块;
如图6所示,缓存区的级数为4个,包括缓存等级从高到低的第一级缓存区、第二级缓存区、第三级缓存区和第四级缓存区;其中,第一级缓存区包括寄存器;第二级缓存区包括内存;第三级缓存区包括固态硬盘;第四级缓存区包括机械磁盘;第一级缓存区、第二级缓存区和第三级缓存区集中在同一服务器上;第四级缓存区有多个,分布在不同服务器上;
数据采集模块的输出端分别与缓存写入模块、缓存读取模块和缓存更新模块的输入端相连;数据请求模块的输出端分别与缓存写入模块、缓存读取模块和缓存更新模块的输入端相连;缓存写入模块和缓存更新模块的输出端均与前三级缓存区的输入端连接;缓存读取模块与前三级缓存区双向连接;前三级缓存区与第四级缓存区通过通讯模块相连;进一步地,数据采集模块的输入端与水力发电站中的各传感器相连,以获取水力发电站各传感器所采集的水力发电站数据。
数据请求模块用于发起缓存写入、缓存读取或缓存更新的指令;数据采集模块用于采集水力发电站数据;通讯模块用于为前三级缓存区与第四级缓存区建立通讯连接。
本实施例中,分布式缓存仅针对第四级“机械磁盘缓存”,由于不需要很高的实时性,同时又因为该级别数据量大,需要的机械磁盘数量多,若与前三级缓存共同管理,需就地设置机房,因此提出分布式的策略,通过网络通讯将第四级缓存设置成分布式的形式。
相关技术方案同上述第一方面至第三方面中所述的水力发电站数据缓存操作方法,这里不做赘述。
第五方面,本发明还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现第一方面至第三方面中所述的任意一种水力发电站数据缓存操作方法。
相关技术方案同上述第一方面至第三方面中所述的水力发电站数据缓存操作方法,这里不做赘述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 一种水力发电站数据缓存操作方法和系统
- 一种简易水力发电站的建设方法及简易水力发电站