四川门禁服务

门禁定制安装:13699-019-068

RT21-ISCS综合监控系统中实时历史数据库的设计与实现


  RT21-ISCS综合监控系统中实时历史数据库的设计与实现刘佳宝梁奕陈天浩(国电南瑞科技股份有限公成都门禁司,210061,南京//第一作者,工程师)具有重要意义。针对轨道交通综合监控系统通常只能保存几个月的历史数据且存储和查询速度慢的问题,根据轨道交通综合监控系统的特点,为RT21-ISCS综合监控系统设计了一种实时历史数据库FVDB.介绍了FVDB核心模块(点管理、实时数据管理、历史数据管理)的设计。FVDB能够在轨道交通综合监控系统海量信息的情况下,保存3年以上的历史数据并具有较快的存储和查询速度。
  RT21-ISCS综合监控系统是针对轨道交通和工业控制领域特点,集先进的计算机技术、网络通信技术和自动控制技术于一体的大容量、多专业、高性能的计算机软件系统。它是第一套应用广泛的国产轨道交通综合监控软件,目前已成功中标门客邦地铁9号线、门客邦房山线、重庆轨道交通3号线、广州珠江新城APM(旅客自动输送系统)等的综合监控系统和南京地铁2号线综合信息系统。
  对于综合监控系统而言,历史数据的存储以及方便、快速的检索具有重要意义。然而,轨道交通的现场设备多种多样,每天将产生大量数据(如南京地铁2号线RT21-ISCS系统每天产生500万1000万条采样数据),普通的关系型数据库如ORACLE根本无法满足存储和检索的效率要求。国外些成熟的实时历史数据库如PI,INSQL价格昂贵,可以处理的点数少。而轨道交通综合监控系统具有海量信息,如门客邦房山线全线预期约有50万点,因此,必须针对轨道交通综合监控的特点,设计开发自己的实时历史数据库来处理海量的采样信息。
  1跨平台和C/S结构的设计RT21-ISCS综合监控系统整体上都要求是跨平台的,支持所有主流的操作系统。因此,其实时历史数据库软件FVDB(FullViewDataBase)的设计必须满足跨平台要求。这就要求在具体的开发中采用跨平台的开发语言以及跨平台的第三方库,保证的平台无关性。
  为满足RT21-ISCS综合监控系统的分布式架构及实际工程的需要,FVDB必须是C/S(客户端/服务器)的结构设计。C/S结构提供了充分的开放性和灵活性。如,由于采用了双机热备份的方车站的数据提交程序fvdbcmmitserver至少要同步四台FVDB服务器(本车站的主、备FVDB服务器和控制中心的主、备FVDB服务器)。
  2FVDB核心模块的设计FVDB的核心模块主要包括点管理、实时数据年Cl城市轨道交通究数据的存储同步过程管理、历史数据管理等三个模块。
  2.1点管理模块示,如电压电流值、开关状态、温度计示数等。任何可测量的设备属性都可以被定义成“point”。点类型主要包括数字量和模拟量。在轨道交通综合监控系统中,数字量变化频率较低,模拟量变化频率较高,因此,其历史数据大部分为模拟量。
  在FVDB中,点用一个18位的字符串来唯一标识,称之为点标签。单点信息般包括点标签、类型、单位、描述、死区值、是否保存历史数据、B+树根结点等。其中,点标签是唯一标识一组点信息的关键字。所有点信息的集合构成了张点表,全部放到内存中。点管理主要指对点表的维护,包括点的增加或删除、点信息的修改、点的快速查找等。
  点是数据管理的基本单位,对数据的各种操作都是以点为单位进行的。因而,快速的点查询对提高系统性能具有重要意义。FVDB采用HASH表的索引方式进行点查询,可快速查找到指定点信息。
  2.2实时数据的管理实时数据是点在最近某一时刻的瞬时值,是与时间有关的数据。每一个实时数据记录上都有一个时间戳,记录实时数据的采样时间。一条实时数据记录包括点标签、时间戳、状态、数值等四个组成部分。
  根据轨道交通监控系统中数字量多、模拟量少,以及数字量变化慢、模拟量变化快的特点,为更好地将实时数据转化为历史数据,本文设计了双缓存的方法。具体如下:为每个点设立一个相对较大的缓存(如100条记录的缓存),记为cache」。数据库服务端接收到实时数据后,并不直接存入B+树,而是根据点名直接写入该点对应的cache」中;当cache」存储的记录数达到最大限度后,统一打包存入B+树(如所示)。这种以点为单位的批量存储,极大地减少了B +树的写入次数,降低了B+树的高度,提高了写入和查询的速度,并且在得到点的组数据后,也能进行有效的数据压缩处理。在点数特别多(如50万点)的情况下,可事先开辟一定大小的缓存区max」ahche1s.当该缓冲区全部被占满后,在调入新的点的cache」时,采用最近最久未使用的置换算法把那些久未使用的点调出内存。由于数字量变化慢、模拟量变化快,故模拟量更频繁地访问cache」。
  但轨道交通监控系统中数字量占绝对比例而模拟量相对较少,因此在系统允许的情况下,把maxcahchel大小设为接近模拟量点数Xsizeof(cache1),即可具有较好的命中率。
  根据内存大小,为每个点设立一个相对较小的缓存,记为cache」:,保证所有点的cache2都能放到内存中。实时数据过来后首先存入相应点的cache」缓存中,当cache」存储的记录数达到上限后,再写入cache」(见)。设置缓存cache」
  范人的cache数据叶艿点丨叶节点FVDB的数据流研究报告的目的同样是为了提高速度。由于数字量多但变化慢(天可能只有几条数据),这个较小的缓存对数字量而言足够应付成都刷卡门禁系统报价很久。通过cache2批量处理,极大地减少了访问cache」的次数,也就减少了程序访问磁盘的次数,提高了写入速度。
  综上所述,所谓双缓存技术,即为每个点分别设立一个相对较大和较小的记录存储缓冲。小缓冲始终在内存;而大缓冲可以在内外存间调入调出,米用最近最久未使用的置换算法。这种缓存技术的使用,极大地提高了数据库处理历史数据的性能,进而可以支持更多的点数。
  2.3历史数据的管理当实时数据的存在超过定期限后,即被认为是历史数据,存放在磁盘中,如所示。
  实时和历史数据的关系保存历史数据具有重要的实际意义。通过分析过程历史数据,不仅可以优化企业生产,也为故障分析提供了有力的工具。FVDB能够保存所有点的历史数据,而且可以保存3年以上。
  2.3.1采用B+树索引结构FVDB采用B+树来组织文件数据。这是因为在工作集有序的情况下,B+树具有较好效率,而FVDB存储的历史数据由实时数据产生,所以处理的基本都是时序数据。
  当点的一组实时数据过期后就需要存储它在B+树中。每个点都拥有一棵以时间为索引的B+树,B+树的叶结点就是一组历史数据的压缩包。
  2.3.2历史数据的压缩方法为了能够在有限存储空间中保存长期的历史数据,FVDB采用了Huffman压缩算法(如),分别对数值、时间戳、状态进行压缩,从而大大减少历史数据存储占用的磁盘空间。当需要查询某个点的一段历史数据时,先把满足条件的压缩包按时间顺序依次读到内存,然后在内存中解压缩,还原成原始数据,返回给查询用户。
  压缩算法的应用3结语本文根据轨道交通综合监控的特点设计了实时历史数据库FVDB,它具有数据保存时间长、存储和检索快速的特点。FVDB已经在南京地铁2号线的RT21-ISCS综合监控系统中应用,验证了本文设计的可行性。
cache
Processed in 0.011280 Second.