制造过程企业对实时数据库的选型实时数据库简介作者:Linkman,文章多处引用自:1.前言一提到数据库,大家肯定会想到SQL Server、Oracle等关系型数据库。
实际上,数据库的种类非常多,在计算机发展的历史上,存在着多种类型的数据库。
早期,关系型数据库与层次型数据库、网络型数据库并驾齐驱,但关系型数据库依靠其描述简单、实现容易等特点,在竞争中取得了胜利,在上世纪90年代初期,从Foxpro、Access到Oracle、Informix、SyBase、SQL server,关系型数据库一统天下。
但在特定的应用领域中,关系型数据库并不能完美表现,于是,产生了新的数据库类型:在协同办公领域中使用的文档型数据库(如NOTES),在嵌入式应用领域中使用的嵌入式数据库(如SQLite),在工业监控领域使用的实时数据库(如PI),等等。
本文章将对实时数据库进行简单的介绍。
2.在工业监控领域中,数据库应用的特点工业监控系统的定义非常大,所有需要对运行设备进行自动化监视、控制的系统都可以定义为工业监控系统,这里面就包括火电厂厂级监控系统(SIS),在这类应用领域中,数据库应用有如下特点:测点数量多一个新建300WM的火电厂的SIS系统,需要处理的测点数超过了10000点,这些测点的变化周期通常在1秒钟之内,也就是说,需要将超过10000点的数据在1秒钟之内保存到数据库中。
存储量大实时数据库的核心就是对大量的实时信息进行处理,由于成年累月的数据将占据大量的硬盘空间。
例如对于 1万点的系统,每 1秒钟存储一次,每次单点占用 8个字节,那么保存 10年的数据量将有 10000*8*10*365*86400=25228800000000字节,也就是 23TGB。
若用 80GB的硬盘存放,需要存放 293块硬盘!时效性强λ每个需要处理的测点的值都与时间相关,一秒钟之后的数据与一秒钟之前的数据可能就不一样了,因此,在保存测点值的同时,必须通过某种方法将其对应的时间也纪录起来。
3.不选择关系型数据库的理由关系型数据库,较难处理工业控制领域的数据。
主要原因是:插入速度慢λ一般关系型数据库是基于事务处理的,在处理失效后,还要回滚作业。
所以至少要存放两处,该机制使速度较慢;既使用今日的Intel P4 双至强类CPU,在对2000 个测点进行插入时也用占用10s 以上的时间。
而工业监控系统需要面对的是数万点的实时数据以秒级的间隔存放数据。
维护困难λ商用数据库为了保证完整性,所有的内容往往放在一个文件内,这对海量数据的存放维护发生困难。
如果有一个200G 的数据库,完全备份就可能要一天。
备份文件中有一个错误就可能导致200G 的备份文件失效,所以不实用。
不能满足实时应用的需求λ用数据库存放实时数据据及查询方式不能满足实时应用的需要。
一个简单的例子是假定以1 秒为间隔存放好了数据,一周有数据604800 组,但是现要以60 秒为间隔取出其中10080 组或者以等间隔原则取出8888 组,标准SQL 语法就较难实现。
因此,工业监控领域以及电厂SIS应用领域,必须寻找适合实时应用需要的实时数据库系统。
4.实时数据库的压缩算法介绍实时数据库系统的技术核心在于数据压缩。
需要将数据经压缩后再存入硬盘,当需要用数据时再解压缩硬盘上的数据。
目前用于国内外实时数据库上的压缩算法通常分为两类:无损压缩和有损压缩。
4.1 无损压缩大多数信息的表达都存在着一定的冗余度,通过采用一定的模型和编码方法,可以降低这种冗余度。
Huffman编码是无损压缩中非常著名的算法之一。
WinRar和WinZip等软件都采用了类似Huffman编码的压缩方式。
这些压缩方法的共同特点是:压缩和解压过程中,信息不会发生变化。
在实时数据库中,也可以采用这些无损压缩技术,但是在实现时,必须要考虑压缩和解压缩的效率,如果某个压缩算法的压缩比非常高,但是其解压的速度非常慢,则肯定不能用于实时数据库中,否则,人们在查询数据时,会等待得失去耐心。
4.2 有损压缩相对于无损压缩,有缩压缩肯定会丢失一些信息,但必须要保证这些丢失的信息不能影响系统数据的精度。
大家在其它领域中也遇到过有损压缩的应用,比如:JPG 图像压缩就是一种有损压缩,MP3声音压缩也是一种有损压缩。
在实时数据库中,有损压缩主要有两种方法:死区压缩和趋势压缩。
死区压缩λ所谓死区就是定义某一测点的值不变的范围。
采用死区压缩就是记录该点死区之外的数据值。
例如有一测点 A,定义其死区为 1%,上次记录的测点值为 110.00,那么此次采集的测点值为 111.00,那么两者差值(111-110)/110<1%,那么认为此次测点值在该点的死区范围内,则认为不变化,即不记录。
若下一次测点值为 120.00,那么两者差值(120-110)/110>1%,那么认为此次测点值在该点的死区范围外,则认为变化,记录。
趋势压缩λ趋势压缩,是根据测点的阶段性趋势进行压缩,原则上只记录满足趋势条件的起点和终点。
PI的旋转门压缩技术是该类算法的典范。
一般的趋势压缩如上图所示,T1到 T2时刻某测点的值保持者该趋势,那么在此趋势上下的两条容差线将是下一时刻点的死区范围,若下一时刻 T3在此两条两条容差线之间,那么不记录此值,两条容差线将适用于下一时刻,若下一时刻 T4在此两条两条容差线之外,则记录该值,趋势发生改变,两条容差线将发生改变,下一时刻测点将按改变后的容差线来判断。
5.实时数据库的访问方式使用实时数据库提供的APIλ这种方式效率最高,也最简单。
使用ODBCλ大部分实时数据库提供了标准的ODBC接口,也提供了SQL查询语言,通过这些方法,用户可以将实时数据库当作一个标准的数据库来使用。
但这种方法速度较慢,且不能体现实时数据的全部优势。
使用OPC方式(OLE for Process Control)λ因为太多的数据库和DCS使用自己的API方式存取数据,无法做到算法的通用,因为工业监控领域提出了一个标准的存取接口,这就是OPC,如今有超过两百家产商加入到OPC组织中,声势浩大。
6.可供选择的实时数据库产品目前进入国内市场比较成熟的实时数据库产品如下所列:美国OSIsoft公司,PI;美国老牌数据库,30年来一直只做数据库开发且一直在行业中占据第一位,世界500强的制造型企业有过半采用PI数据库。
⌝美国Wonderware公司,IndustrialSQL Server,简称INSQL;⌝美国 GE,Intellution公司,iHistorian;⌝美国HONEYWELL公司,Process History Database,简称PHD ;往往搭配其DCS 和硬件买卖,数据库不是其主营方向,因为PHD是介乎于关系数据库和生产数据库之间。
⌝美国AspenTech公司,InfoPlus;好像在中石化方面关系做得不错。
⌝总的来说,国外实时数据库产品在工业监控行业占垄断地位。
其中OSIsoft公司的PI采用了旋转门压缩专利技术和独到的二次过滤技术,使进入到PI数据库的数据经过了最有效的压缩,极大地节省了硬盘空间,是效率最高,使用最简单,使用最广泛、性能最突出的实时数据库。
7.总结实时数据库在SIS、MES系统中起着非常重要的作用,是SIS系统存贮数据的基础。
实时数据库是一种特殊类型的数据库系统,但它有许多与关系型数据库存在差异。
只有理解了这些相同之处和差异部分,才能对实时数据库有更深地了解。
本文章对实时数据库的基本概念、压缩算法、访问方式等进行了简单介绍。
网站上关于实时数据库的介绍还不是很多,很多网站都只是提到了实时数据库的名称,如果大家想对实时数据库有更多地了解,可以到几个主要的实时数据库提供商的网站上寻找更多资料,本人也收集了一些实时数据库的资料,如果大家感兴趣,可以与我共同讨论和研究。
实时数据库、关系数据库、内存数据库的对比分析在很多情况下,用户很容易将实时数据库与关系数据库混为一谈,实际上,这两类产品的设计理念及应用场合是完全不同的。
特别是在电厂SIS、化工MES中弄清这个概念尤为重要。
为此本人又整理总结了一下:内存数据库就是将数据放在内存中直接操作的数据库,它利用内存的读写速度比磁盘快、内存是随机访问而磁盘是顺序访问这两个特点,将数据保存在内存中,在内存中模仿建立表结构和索引结构并针对内存特性进行优化,相比从磁盘上访问,内存数据库能够提高应用的性能。
而实时数据库不但利用了内存的特性,而且考虑到工控行业的应用特性,将关系数据库的表结构和表关系简化,以进行性能的优化,并针对工控行业的数据特性,对数据进行压缩处理。
关系数据库、实时数据库与内存数据库相比,有如下差别:实时数据库与关系数据库对比分析从以上的表格可以看出,内存数据库与关系数据库相比,速度快10-20倍左右,且具有与关系数据库类似的完整表结构,因此在电信业处理大量实时事务业务时经常用到,它也可以应用在工控行业,比如,在很多电力行业SCADA软件中,都包含了一个小型的内存数据库系统(但不是真正意义上的内存数据库),但是,在超大型SCADA软件中,它仍不能满足需求,因为它性能比实时数据库慢10倍,且不能解决历史数据存贮的问题,还存在因为掉电导致大量数据丢失的风险。
以上的比较,指标并不全面,也并不是说,实时数据库一定比关系数据库和内存数据库好,只能说,需要针对不同应用的不同需求,做出综合决策,选择最适合自己需要的数据库产品。
PI实时数据库强大技术优势1.1 采集效率高、读取速度快单机点数规模达400万点;数据吞吐量为4百万/秒;存储能力为10-15万个事件/秒;数据访问能力为100万个事件/秒;秒级时间内可以取到1000点的2年至3年的历史数据。
1.2 数据存储效率高、磁盘占用空间小、恢复精度100%旋转门压缩专利技术和独到的二次过滤技术,使进入到PI数据库的数据经过了最有效的压缩,极大地节省了硬盘空间。
1.3 丰富的客户端应用程序,便于展示和分析实时数据30多种基于B/S、C/S的客户端,满足用户各种展示需求。
1.4 分布式服务器结构,提供成熟接口开发工具分布式数据采集结构、集中式数据管理方式,使数据来源复杂而又分散的问题迎刃而解。
提供400多种成熟的接口软件。
接口软件具有数据缓存功能。
1.5 支持集团化应用支持多服务器结构的分布式数据存储,数据可以分散存储在不同地点或不同区域的服务器上,便于集团化企业构建生产实时管理系统。
1.6 较高的安全性和稳定性PI具有极高的安全性和良好的安全机制:1、PI的注册机制,提供基于用户注册的连接许可;2、PI的信任机制,提供非交互式应用的访问许可;3、数据库安全,控制对数据库的访问。
系统运行稳定性极高,在全球拥有一万多用户,25年来从未因为系统故障影响业务连续性。