实时数据库RTDB(Real-Time Data Base)是数据和事务都有定时特性或显示的定时限制的数据库。它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。RTDB的本质特征就是定时限制,定时限制可以归纳为两类:一类是与事务相联的定时限制,典型的就是“截止时间”;另一类为与数据相联的“时间一致性”。时间一致性则是作为过去的限制的一个时间窗口,它是由于要求数据库中数据的状态与外部环境中对应实体的实际状态要随时一致,以及由事务存取的各数据状态在时间上要一致而引起的。
实时数据库子系统是SCADA(Supervisory Control And Data Acquisition,即数据采集与监视控制系统。)系统的核心之一。
实时数据库,它们用在要求非常严格、数据量非常大的生产工控中。
实时数据库诞生于美国,主要是因为现代工业制造流程及大规模工业自动化的发展,导致大量的测量数据需要集成和存储,而采用关系数据库难以满足速度和容量的要求,因此在80年代中期,开始诞生了适用于工业监控领域的实时数据库。
实时数据库其实并不单单只是一个数据库,而是一个系统,包括对各类工业接口的数据采集,海量监测数据的压缩、存储及检索,基于监测数据的反馈及控制功能等。
广泛使用的实时数据库只有三个产品:
a. 美国OSI公司的 PI ( Plant Information System )
b. 美国HONEYWELL公司的 PHD ( Process History Database )
c. 美国AspenTech公司的 IP21 ( InfoPlus .21 )
1. PI
采用了旋转门压缩专利技术和独到的二次过滤技术,使进入到PI数据库的数据经过了最有效的压缩,极大地节省了硬盘空间。据计算,每秒1万点数据存储一年,仅需要4G的空间,即一只普通硬盘也可存贮五到十年的数据。是效率最高,使用最简单,使用最广泛的实时数据库,因为其杰出的性能,PI已经多次提高了它的价格,确实不坠OSI的名号,而且PI在其文档中公开了她的各种算法,比如上面提到的旋转门压缩和二次过滤。
2. PHD
HONEYWELL占据了DCS(DCS,全称:Distributed Control System)大部分份额,因此PHD使用得也比较广泛,PHD在内部其实使用了Oracle关系数据库,因此购买PHD就必须先购买Oracle。因为 PHD内部使用Oracle简化了开发量 和 Oracle的性能限制比较严重,所以 PHD 的价格在这三种数据库最低,算不上正宗的实时数据库。但不要以为PHD内部使用Oracle就认为Oracle很强,如果直接使用Oracle,只要两三秒的时间,巨大的数据量就会令它崩溃。HONEYWELL其志不在实时数据库这一块,而是她的DCS。
3. IP21
IP21是我见过的最差的关系数据库,也是我见过的最差的一个软件。
实时数据库的访问方式
a. 使用自己的API,这种方式效率最高,其实也最简单。
b. 使用ODBC,这种方式其实没有多大作用,因为实时数据库不同于关系数据库,ODBC没有太大的用武之地,所以在使用ODBC时有非常多的限制,大部分功能并不支持ODBC方式。
c. 使用OPC方式(OLE for Process Control)
因为太多的数据库和DCS使用自己的API方式存取数据,无法做到算法的通用,因为提出了一个标准的存取接口就是OPC,现在的OPC基本上也脱离了当初制定的目标。
1、海量数据的实时读写操作
实时数据库通过转为快速读写设计的时标型数据结构、高频缓存等技术,可以实现海量数据的实时读写操作。
2、大容量数据的存储
实时数据库采用了专门的压缩算法,包括哈佛曼算法、旋转门算法以及一些二次压缩算法,压缩比普遍能够达到30:1左右,再加上对于时间及索引的特殊处理,存储量能够缩小到关系库的1/40。
3、集成了工业接口的数据采集
实时库一般都集成了大量的工业协议接口,可以对各种类型的工业协议进行解析和传输。
4、集成控制功能,可实现实时控制
实时数据库一般都提供下行控制接口,并且是高速写出。写的效率严重依赖于接口通讯效率和执行机构。因此,实时数据库大都是从工控软件厂商发展而来的,他们就有丰富的工业控制写入的经验。即便如此,毕竟工业系统对时序有严格的要求,而数据库从读到写,会出现时滞,因此,实时数据库一般不适宜对快速开关量的控制。
在云计算的时代,实时数据库的一些缺点就慢慢的显露出来了。
首先,由于实时数据库是基于时标进行处理的,就导致它只能简单的使用时间段进行查询和检索,当然,各大厂商也开发了许多工具,但无论如何检索的丰富性不能和关系库比拟。
其次,由于实时库都是出售给大型工业企业的,因此价格昂贵,在物联网时代,对于中小工业企业来说,是个不小的成本。
再次,传统实时库在部署时不够方便灵活,传输也更多的考虑工业网络,甚少考虑互联网的情况,不太适应当下云计算环境的部署。
这个时候,新兴的时序数据库就出现了。时序数据库在2017年火了起来,出现了大量的开源和商业产品,时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。时序数据库其实主要是实时数据库的数据存储部分,但是,由于它采用了新的技术,极大地扩展了数据的容量,除了数据点和时间戳之外,还提供标签和内容等对数据的描述,并且提供各种聚合查询,弥补了实时库的缺陷。
但是,时序数据库不提供工业接口、下行控制等功能,这些都需要开发人员自行开发,或者将原有的接口与时序库对接。
当然,不管是实时数据库还是时序数据库,都在飞速发展中,双方一定会互相借鉴,互相学习,会提供更好、更多的产品供工业大数据使用。