一种提高实时数据库数据处理性能的装置及处理方法制造方法及图纸

技术编号:29584180 阅读:8 留言:0更新日期:2021-08-06 19:42
一种提高实时数据库数据处理性能的装置及处理方法,包括:实时数据库,用于存储从各个电厂采集的生产实时数据;数据读取节点模块,内置数据读取节点程序,设置在计算服务器内部,部署有多个,并行读取实时数据库中的生产实时数据,并将读取的数据存储至共享内存数据库中;数据读取节点监测模块,内置数据读取节点监测程序,用于启动所述数据读取节点程序,并将实时数据库的测点表分发至各个数据读取节点模块。本发明专利技术通过同时运行多个数据读取节点程序,将从实时数据库中读取出的海量数据写入共享内存中,数据处理程序从共享内存中将数据取出并处理,然后将处理的结果再写入实时数据库中。

【技术实现步骤摘要】
一种提高实时数据库数据处理性能的装置及处理方法
本专利技术涉及计算机服务器端的开发
,特别涉及一种提高实时数据库数据处理性能的装置及处理方法。
技术介绍
在开发基于实时数据的业务系统时,需要使用实时数据库作为数据的存储介质。市面上常见的数据库有PI、Rython等,这些数据库都对业务系统提供了数据访问的SDK。考虑到对数据库的访问压力,这些SDK一般都不支持多线程的并行访问。因此在一些需要毫秒级的计算并且数据量比较大的情况中,常规方式下,实时数据访问的性能就无法满足这些业务了。
技术实现思路
为解决常规方式下实时数据访问的性能低的问题,本专利技术的目的在于提供一种提高实时数据库数据处理性能的装置及处理方法,该装置通过同时运行多个数据读取节点程序,将从实时数据库中读取出的海量数据写入共享内存中,数据处理程序从共享内存中将数据取出并处理,然后将处理的结果再写入实时数据库中。为了实现上述目的,本专利技术采用的技术方案和本专利技术的有益效果是:一种提高实时数据库数据处理性能的装置,包括:实时数据库1,用于存储从各个电厂采集的生产实时数据;数据读取节点模块2,内置数据读取节点程序,设置在计算服务器内部,部署有多个,并行读取实时数据库1中的生产实时数据,并将读取的数据存储至共享内存数据库4中;数据读取节点监测模块3,内置数据读取节点监测程序,用于启动所述数据读取节点程序,并将实时数据库1的测点表分发至各个数据读取节点模块2。所述数据读取节点模块2由四部分功能组成,包括测点表以及配置获取、实时数据读取、缓存队列、内存数据库写入;所述测点表以及配置获取通过web服务从节点监测模块3中读取所需要的实时数据库1的测点表,以及读取间隔、内存数据库写入线程个数的配置;所述实时数据读取通过获取到的测点表,以及读取间隔配置,周期性的通过测点名读取实时数据库1中的数据;所述缓存队列通过“测点名;值;时间戳”的形式将读取到的数据写入缓存队列中;所述内存数据库写入根据获取到的内存数据库写入线程个数,创建多个线程,每个线程从缓存队列中取出数据并写入内存数据库4中。所述共享内存数据库4,用于存储数据读取节点模块2读取的待处理的实时数据,并且向数据处理模块5提供高并发、高性能的数据读取接口;所述数据处理模块5,内置数据处理程序,从共享内存数据库4中读取数据进行处理,并将处理的结果再写入实时数据库1中。所述数据处理模块5从共享内存数据库4中读取数据进行数据清洗或者计算。一种提高实时数据库数据处理性能的处理方法,包括以下步骤;步骤1:在一台服务器上部署除实时数据库1以外的所有程序;步骤2:启动共享内存数据库4;步骤3:在数据读取节点监测模块3中配置需要启动的节点个数,并配置每个节点需要读取的实时数据库1的测点表;步骤4:数据读取节点监测程序模块3启动所有的数据读取节点程序模块2,并将实时数据库1的测点表分发至不同的节点;步骤5:数据读取节点程序模块2,将读取的数据写入共享内存数据库4中;步骤6:数据处理程序模块5,数据处理程序5将数据处理的结果写入实时数据库1中。本专利技术的有益效果:本专利技术通过部署多个数据读取节点程序模块2,并行读取实时数据库1中的数据。然后将读取的数据存储至共享内存数据库4中。数据处理程序5从内存数据库中读取数据,并进行数据清洗或者计算。在数据读取过程中,通过多节点的方式来模拟并行访问,提高了数据读取的性能。在数据处理过程中,通过使用共享内存数据库4的方式来减少网络访问、文件访问所带来的开销。最终支撑业务系统所需的毫秒级的计算功能。附图说明图1为本装置的部署示意图。图2为本专利技术数据处理流程示意图。图3数据读取节点模块程序架构图。图4为常规数据处理流程示意图。具体实施方式下面结合附图对本专利技术作进一步详细说明。一种提高实时数据库数据处理性能的装置及处理方法的具体过程介绍如下:实时数据库的数据访问SDK的特点是,每一个数据读取节点程序只可以存在一个访问实例,即使使用多线程技术,最终还是会通过锁的形式来约束并且保证在并发状态时,线程通过排队的方式来使用访问实例。但是,如果同时启动多个数据读取节点程序,每个数据读取节点程序就可以拥有自己的访问实例,这样就可以有多个访问实例并行的去读取数据,从而提高数据的读取效率。每个数据读取节点程序的数据都是使用进程隔离的。出于安全性的考虑,数据处理程序无法直接读取这些客户端的数据。所以需要将这些客户端的数据写入公共的数据库中。这里为了提高读取写入性能;减少网络、文件访问开销,选择使用内存数据库来保存这些数据。数据处理程序通过多线程的方式从共享内存数据库4中读取数据,对数据进行清洗、计算等处理。然后将结果写入实时数据库1中。如图3所示:所述数据读取节点模块2由四部分功能组成,包括测点表以及配置获取、实时数据读取、缓存队列、内存数据库写入;所述测点表以及配置获取通过web服务从节点监测模块3中读取所需要的实时数据库1的测点表,以及读取间隔、内存数据库写入线程个数的配置;所述实时数据读取通过获取到的测点表,以及读取间隔配置,周期性的通过测点名读取实时数据库1中的数据;所述缓存队列通过“测点名;值;时间戳”的形式将读取到的数据写入缓存队列中;所述内存数据库写入根据获取到的内存数据库写入线程个数,创建多个线程,每个线程从缓存队列中取出数据并写入内存数据库4中。综上所述,本专利技术的具体实现步骤如下:步骤1:按照图1所示,在一台服务器上部署除实时数据库1以外的所有程序;步骤2:启动共享内存数据库4;步骤3:在数据读取节点监测程序3中配置需要启动的节点个数,并配置每个节点需要读取的实时数据库1的测点表;步骤4:数据读取节点监测程序模块3启动所有的数据读取节点程序模块2,并将数据库1的测点表分发至不同的节点;步骤5:数据读取节点程序模块2,将读取的数据写入共享内存数据库4中;步骤5:数据处理程序模块5,数据处理程序5将数据处理的结果写入实时数据库1中。相比较常规数据处理流程(图4),本专利技术(图2)提高了实时数据库数据的处理性能。为业务系统所需的毫秒级的计算功能提供支撑。本文档来自技高网...

【技术保护点】
1.一种提高实时数据库数据处理性能的装置,其特征在于,包括:/n实时数据库(1),用于存储从各个电厂采集的生产实时数据;/n数据读取节点模块(2),内置数据读取节点程序,设置在计算服务器内部,部署有多个,并行读取实时数据库(1)中的生产实时数据,并将读取的数据存储至共享内存数据库(4)中;/n数据读取节点监测模块(3),内置数据读取节点监测程序,用于启动所述数据读取节点程序,并将实时数据库(1)的测点表分发至各个数据读取节点模块(2)。/n

【技术特征摘要】
1.一种提高实时数据库数据处理性能的装置,其特征在于,包括:
实时数据库(1),用于存储从各个电厂采集的生产实时数据;
数据读取节点模块(2),内置数据读取节点程序,设置在计算服务器内部,部署有多个,并行读取实时数据库(1)中的生产实时数据,并将读取的数据存储至共享内存数据库(4)中;
数据读取节点监测模块(3),内置数据读取节点监测程序,用于启动所述数据读取节点程序,并将实时数据库(1)的测点表分发至各个数据读取节点模块(2)。


2.根据权利要求1所述的一种提高实时数据库数据处理性能的装置,其特征在于,所述数据读取节点模块(2)由四部分功能组成,包括测点表以及配置获取、实时数据读取、缓存队列、内存数据库写入;
所述测点表以及配置获取通过web服务从节点监测模块(3)中读取所需要的实时数据库(1)的测点表,以及读取间隔、内存数据库写入线程个数的配置;
所述实时数据读取通过获取到的测点表,以及读取间隔配置,周期性的通过测点名读取实时数据库(1)中的数据;
所述缓存队列通过“测点名;值;时间戳”的形式将读取到的数据写入缓存队列中;
所述内存数据库写入根据获取到的内存数据库写入线程个数,创建多个线程,每个线程从缓存队列中取出数据并写入内存数据库(4)中。


3.根据权利要求1所述的一种提高实时数据库数据处理性能的装置,其特征在于,所述共享内...

【专利技术属性】
技术研发人员:王智微丁辉刘鹏飞王毅张宪岭颜刚时标
申请(专利权)人:西安热工研究院有限公司华能南京金陵发电有限公司华能集团技术创新中心有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1