美文网首页
028 实时数据库【工控】

028 实时数据库【工控】

作者: 得奕 | 来源:发表于2019-08-14 17:44 被阅读0次

1 概述

实时数据库(Real Time Database,RTDB)技术是实时系统和数据库技术相结合的产物,用于处理不断更新的快速变化的数据及具有时间限制的事务,利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调和资源分配算法。主要应用于工业监控,如:电力、石化、化工、钢铁、冶金、造纸、交通控制和证券金融等工业领域的监控。

2 整体架构

任何复杂的大型实时数据库,其基本体系架构如图所示,通过现场适配层适配现场的各种接口,在工业控制中这是一个复杂的工作。然后通过实时核心,完成数据的采集、实时计算、报警计算、其它处理,实时数据被不断泵入磁盘历史存储,形成可追溯的历时信息,同时通过向应用层提供各种适配接口,支持各种开发语言和各种应用需求的访问。

3 特点

①时间约束:实时数据库是其数据和事务都有明确的时间限制的数据库。在实时系统中,具有时间约束的数据主要是来自于外部的动态数据,以及由这些数据求导出的新的数据。数据库中的数据必须如实反映现场设备的运行情况。

②事务调度:实时数据库系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果所产生的时间。事务调度既要考虑事务的执行时间,也要考虑事务的截止期、紧迫程度等因素。

③数据存储:实时数据库主要承担系统所有实时数据的存储和管理,为相关的功能提供快速、正确的实时信息。为了达到实时性,实时数据库在系统运行过程中,应常驻内存,以保证读取速度。对于实时性要求不高的数据可存放在外存储空间。因此,在实时数据库设计时,要妥善处理时间与存储空间的矛盾,以保证系统的实时性。

④数据在线压缩:在实际的数据存储中,实时数据库还要解决如何高效处理海量数据的问题。如果数据被原封不动地存储势必需要大量内存和磁盘空间以及耗费大量的时间,因此必须对实时数据进行在线压缩存储。

实时数据库系统的技术核心在于数据压缩。需要将数据经压缩后再存入硬盘,当需要用数据时再解压缩硬盘上的数据。目前用于国内外实时数据库上的压缩算法通常分为两类:无损压缩和有损压缩。

无损压缩:

大多数信息的表达都存在着一定的冗余度,通过采用一定的模型和编码方法,可以降低这种冗余度。Huffman编码是无损压缩中非常著名的算法之一。WinRar和WinZip等软件都采用了类似Huffman编码的压缩方式。这些压缩方法的共同特点是:压缩和解压过程中,信息不会发生变化。在实时数据库中,也可以采用这些无损压缩技术,但是在实现时,必须要考虑压缩和解压缩的效率,如果某个压缩算法的压缩比非常高,但是其解压的速度非常慢,则肯定不能用于实时数据库中,否则,人们在查询数据时,会等待得失去耐心。

有损压缩:

相对于无损压缩,有缩压缩肯定会丢失一些信息,但必须要保证这些丢失的信息不能影响系统数据的精度。大家在其它领域中也遇到过有损压缩的应用,比如:JPG图像压缩就是一种有损压缩,MP3声音压缩也是一种有损压缩。在实时数据库中,有损压缩主要有两种方法:死区压缩和趋势压缩。

死区压缩:所谓死区就是定义某一测点的值不变的范围。采用死区压缩就是记录该点死区之外的数据值。例如有一测点 A,定义其死区为 1%,上次记录的测点值为 110.00,那么此次采集的测点值为 111.00,那么两者差值(111-110)/110<1%,那么认为此次测点值在该点的死区范围内,则认为不变化,即不记录。若下一次测点值为 120.00,那么两者差值(120-110)/110>1%,那么认为此次测点值在该点的死区范围外,则认为变化,记录。

趋势压缩:根据测点的阶段性趋势进行压缩,原则上只记录满足趋势条件的起点和终点。PI的旋转门压缩技术是该类算法的典范。

4 与其他数据库的联系

①实时数据库与内存数据库

为了实现实时系统中数据和事务的实时(及时)性,必须尽可能加快实时数据库的响应和处理速度,同时实时数据库中的实时事务要求系统能较准确地预报事务的运行时间。但对磁盘数据库而言,由于磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大,不能满足部分实时系统的“及时性”要求。如果将整个数据库或其主要的“工作”部分放入内存;使每个事务在执行过程中没有磁盘I/O,则为系统较准确估算和安排事务的运行时间,使之具有较好的动态可预报性提供了有力的支持,同时也为实现事务的定时限制打下了基础。

内存数据库的设计应该打破传统磁盘数据库的设计观念,考虑内存直接快速存取的特点,以CPU和内存空间的高效利用为目标来重新设计开发各种策略与算法、技术、方法及机制。也可以说,内存数据库是在实际应用系统的实时性要求下而产生的。

②实时数据库与主动数据库

今后,实时数据库的应用可能越来越复杂,为了满足各种复杂的应用要求,有必要使实时数据库系统具备高度的动态性、自适应性和智能行为。而主动数据库(ADB)技术与实时数据库(RTDB)的结合为自适应性及智能性的实现创造了合理的机制。主动数据库(ADB)技术现在已经在实时数据库(RTDB)领域广泛应用。

③实时数据库与分布式数据库

随着Internet的迅速推广,实时系统应用范围和规模不断扩大,也对实时数据库系统提出了分布式计算的要求,因而有必要将分布式数据库技术运用于实时系统中。为了满足对数据的实时和分布的要求,分布式实时数据库(DRTDB)将具有执行期限的数据和事务分布在不同的结点上,由分布式实时数据库管理系统来统一管理、调度执行。国内的实时数据库产品与国外的产品相比,都有一定的差距,主要体现在其事务处理层并没有实现完全的分布式事务处理,与实时数据库的理论有一定的距离。实时数据库与内存数据库、主动数据库、分布式数据库的有效集成才可以满足现代数据库的需求。

④实时数据库与时态数据库

与时态数据库相同之处是,实时数据库也涉及时间信息。但是,时态数据库与实时数据库存在区别,主要表现在:

时态数据库目的在于处理包含随时间变化的信息,维护数据库中对象经历的历史变化;而实时数据库则更侧重考虑信息的“及时”性,它的查询与事务处理都有与之相联系的定时限制,结果产生的时间与结果本身一样重要。

时态数据库保存数据库对象随着时间变化的特征,但缺乏维护数据有效性的机制,不显式考虑查询与事务有关的时间限制。在TDB中,随时间变化而改变的数据的处理是保留“历史”,增加新的数据项,可以查询某个过去时间曾经有效的数据。RTDB则提供维护数据有效性和事务及时性的机制,一般只存取数据库当前“有效”的信息。事务必须维护数据库对象的“时间一致性”,所以有时间限制与之联系。

时态数据库更多考虑“结构”,实时数据库则侧重考虑“行动”(控制实时),有时“及时”性比正确性更重要。

相关文章

  • 什么是数据驱动?

    什么是数据驱动? 二种主要的数据构成: 实时/历史数据库和关系型数据库 实时数据库 实时数据库是数据库系统发展的一...

  • 工业控制网络漏洞分析

    一、分类工控安全漏洞可划分为工控设备漏洞、工控网络协议漏洞、工控软件系统漏洞、工控安全防护设备漏洞等。 工控RTU...

  • 2018-06-04

    迈肯思:工控机机箱用什么材质的比较好? 一般工控机(有无风扇工控机、工控机箱、多串口工控机、静音工控机点击了解)的...

  • Flink解析kafka的json字段并利用Flink CEP实

    上篇博客写了Flink接入Kafka数据并实时写入数据库实时展示,这次利用Flink CEP进行实时监控。 整体架...

  • 数据库实时转移之Confluent介绍(一)

    1.背景 最近研究了数据库实时转移的方案,目的是要把数据库中某些表的指定数据实时的转移到别的数据库中。 这与平时了...

  • Android GreenDao 3.3.0 入门

    关联表:https://www.jianshu.com/p/6e3f0592f028数据库升级:https://w...

  • IDEA技巧

    数据库篇 实时查看数据库:右侧"database"面板,可以直连数据库,效果和sqlfront一样 根据数据库表字...

  • 支持硬盘热插拔的高科技感机箱

    19寸工控机中,工控机箱作为工控机中无法缺少的组成部分,从结构、到工控机的美感,都是机箱说了算。对于高端市...

  • 文件查找及压缩工具

    文件查找 locate,模糊查找,非实时查找(数据库查找)find:实时查找 locate 查询系统上预建的文件索...

  • SpringBoot进阶教程 | 第三篇:整合Druid连接池以

    这篇文篇将介绍,如何通过SpringBoot整合Druid数据库链接池,实时监控数据库链接信息,为优化数据库性能提...

网友评论

      本文标题:028 实时数据库【工控】

      本文链接:https://www.haomeiwen.com/subject/zwezjctx.html