实时数据库介绍
- 格式:doc
- 大小:380.50 KB
- 文档页数:16
实时数据库系统的设计与实现研究近年来,随着物联网和工业互联网的推广,实时数据库系统的需求越来越高。
实时数据库系统是指具备实时性和并发控制能力的数据库系统,可以适应实时数据的高速处理和实时查询等复杂任务。
本文将围绕实时数据库系统的设计与实现进行研究。
一、实时数据库系统的背景介绍实时数据库系统主要应用于以下领域:工业自动化、交通运输、通讯、医疗设备、金融、航空航天、国防等等。
这些应用场景需要对实时数据进行高效的存储和处理,确保数据能够被及时地获取和更新。
实时数据库系统的优劣将直接影响到系统性能和数据的准确性。
二、实时数据库系统的设计与实现为了实现实时数据库系统的设计,需要考虑如下因素:1.高可用性:实时数据库系统需要具备高可用性,以确保系统稳定运行。
如果系统出现故障,需要能够快速进行数据恢复和重构。
2.高并发控制能力:实时数据库系统需要具有高的并发控制能力,以满足多用户、多任务的要求。
并发控制是通过事务控制、锁定机制和多版本控制等实现的。
3.高吞吐量:实时数据库系统需要具有高吞吐量,以保证对实时数据进行高效的处理和查询。
为了实现高吞吐量,系统需要采用高效的数据结构和算法。
4.可扩展性:实时数据库系统需要具有可扩展性,以满足数据量的不断增加和扩展性的要求。
可扩展性是通过分布式存储和负载均衡等技术实现的。
实时数据库系统的实现主要包括以下两个方面:1.数据模型的设计:数据模型是实时数据库系统的核心,需要根据应用需求设计合适的数据模型。
数据模型包括数据类型、数据结构和数据存储方式等。
2.系统架构的设计:系统架构需要根据数据模型进行设计,包括数据存储、数据索引、数据备份和恢复等。
三、实时数据库系统的应用案例实时数据库系统的应用案例非常广泛,下面列举一些典型案例:1.工业自动化:实时数据库系统被广泛应用于工业自动化领域,包括智能制造、物流和仓储等。
通过实时数据库系统,可以实现工业数据的高效采集和实时监测,提高生产效率和质量。
实时数据库与关系数据库
实时数据库是一种特殊类型的数据库,能够在较短时间内为不同的应用程序访问和更新数据。
实时数据库具有较高的响应速度和决策支持能力,特别适用于需要实时数据访问和更新的领域,如物联网、建筑自动化和系统控制等。
关系数据库是常见的基于表格的数据库系统,具备处理多种数据之间相互关系的能力,数据以主键和外键定义与其他数据之间的关系。
关系数据库广泛用于企业内部数据处理和管理,如财务、人力资源等方面。
二者在原理、应用、优势方面的区别如下:
原理:
实时数据库的核心理念是使用内存数据结构。
实时数据库能够迅速读写数据,因为所有的数据都存储在内存中,而不是从磁盘或其他存储器加载数据。
而关系数据库则基于SQL语言的关系理论,可以使用关联、聚合、选择等操作在表格中进行数据操作和管理。
应用:
实时数据库通常应用于智能城市、智能制造和物联网等领域,对于需要对数据进行快速分析和决策的场景特别有用。
关系数据库则广泛应用于企业内部数据处理和管理,如财务、人力资源等方面。
优势:
实时数据库的最大优势是快速访问和处理实时数据,因此很适合于需要接收大量数据并迅速做出决策的应用场景。
关系数据库则运用多种约束条件来保证数据的完整性和一致性,减小数据存储冗余,更适用于需要长期存储和管理大量数据的场景。
综上所述,实时数据库和关系数据库在原理、应用、优势等方面有很大的区别。
实时数据库用于快速的数据获取和实时决策,关系数据库则可以高效地存储和管理大量长期数据。
openPlant实时/历史数据库介绍1 openPlant实时/历史数据库功能1.1 openPlant数据库管理工具1)openPlant数据组织结构实时数据库处理的主要对象为从现场各控制系统采集来的各测点的实时数据,为了统一管理这些数据,保证数据的唯一性,openPlant实时数据库采用了“[数据库名].[节点名].[点名]”的多维结构,对进入系统的所有采集点、手工输入点、计算点进行统一规划和属性定义,保留控制系统原有的点名,使采集数据在全厂范围内得到统一管理并易于查询,为企业数据的集成应用提供便利;openPlant实时数据库系统采用分布式架构,让您轻松应对集团级实时/历史数据管理要求。
其中:root 系统的根节点rtdb 表示一个实时数据库实例。
如一个集团下属多个分厂,在每个分厂安装有一个openPlant数据库,那么每个RTDB表示一个分厂。
node 可以表示一个实时数据库实例中的某个节点,如DCS、输煤、化学、ECS、NCS等,或用户自定义的每个节点,如计算点的节点、手工输入点的节点等。
point 表示某个采集节点中的点。
2)openPlant数据库管理控制台openPlant实时数据库提供基于B/S的数据库管理控制台,提供节点管理、数据点管理、数据导入/导出、用户管理、系统监视等功能。
3)openPlant数据库优化工具openPlant实时数据库优化工具(Optimizer)用于对数据库的存储性能进行优化,可以分析各测点的数据变化率和占用的存储空间,列出数据库中占用存储空间较多的测点,同时给出各测点的建议优化配置参数。
用户利用优化工具可以不断提高数据库的性能。
4)openPlant数据导入/导出openPlant实时数据库提供基于数据库控制台和基于命令行方式的两种数据导入/导出工具,方便用户对数据库的配置、维护和备份。
系统充分考虑实际工程经常遇到的大量点配置及数据的导入和导出,支持txt、csv、xml、Excel 等格式,大大提高工作效率。
事实数据库名词解释事实数据库(Factual Database),又称为实时数据库或真实数据库,是一种专门用于存储和查询实时数据的数据库系统。
它具有高速、高效的特点,并且能够保证数据的一致性和完整性。
事实数据库主要用于存储实时数据,包括运营数据、交易数据、传感器数据等,这些数据的变化非常频繁,需要实时更新和查询。
事实数据库的特点主要有以下几个方面:1. 实时性:事实数据库能够实时地存储和查询数据。
它能够快速接收和处理大量的实时数据,并能够提供实时查询结果。
对于需要实时处理的应用场景,如金融交易系统、物流管理系统等,事实数据库非常适用。
2. 高性能:事实数据库具有高性能的特点。
它能够提供高速的数据读写操作,能够在很短的时间内完成大量的数据处理任务。
对于需要大规模并发访问的应用场景,如电商平台、社交网络等,事实数据库的高性能非常重要。
3. 数据一致性和完整性:事实数据库能够保证数据的一致性和完整性。
它采用事务机制来确保数据的一致性,对数据进行事务级别的隔离和锁定,避免数据的冲突和损坏。
另外,事实数据库可以定义数据的约束和规则,对数据进行验证和过滤,确保数据的完整性。
4. 扩展性:事实数据库具有良好的扩展性。
它能够支持大规模的数据存储和查询,并能够动态扩展和优化系统资源,适应不断增长的数据量和访问量。
对于需要处理大规模数据的应用场景,如物联网、大数据分析等,事实数据库的扩展性非常重要。
5. 多种查询支持:事实数据库支持多种查询方式,包括结构化查询语言(SQL)、类SQL查询语言和编程接口等。
它能够灵活地处理不同类型的查询需求,并能够通过索引、分区和优化等技术来提高查询效率。
事实数据库广泛应用于各个领域,如金融、电商、物流、智能制造等。
它能够支持实时数据的存储和查询,帮助企业实时监控、预测和决策,提高运营效率和竞争力。
同时,在互联网、物联网等技术的推动下,事实数据库的应用场景不断扩大,对数据库的性能和可扩展性提出了更高的要求。
6. 实时数据库和历史数据库6、实时数据库和历史数据库在当今数字化的时代,数据成为了企业和组织决策的重要依据。
而在数据管理领域,实时数据库和历史数据库是两个至关重要的概念。
实时数据库,顾名思义,它能够实时地处理和存储数据。
这意味着数据的更新几乎是瞬间完成的,能够及时反映出当前的状态和情况。
想象一下,在一个工业生产线上,各种传感器不断地采集温度、压力、流量等数据。
这些数据需要被迅速处理和分析,以便操作人员能够及时发现问题并采取措施。
实时数据库就能够在这一过程中发挥关键作用,它可以快速地接收、存储和处理这些实时产生的数据,为生产过程的监控和控制提供支持。
实时数据库的特点之一是其高效的读写性能。
它能够在短时间内处理大量的数据写入和读取请求,确保数据的及时性和准确性。
为了实现这一点,实时数据库通常采用了优化的存储结构和算法,以及高性能的硬件设施。
另一个特点是数据的时效性。
在实时数据库中,数据的价值往往在于其能够反映当前的情况。
一旦数据过时,其价值可能就会大打折扣。
因此,实时数据库会不断地更新和淘汰旧的数据,以保证所存储的数据始终是最新的。
实时数据库在许多领域都有广泛的应用。
比如在电力系统中,它可以用于监控电网的运行状态,及时发现故障并进行处理;在交通管理中,它可以实时收集路况信息,为交通信号灯的控制和车辆的导航提供依据;在金融交易中,它能够实时处理交易数据,确保交易的安全和准确。
与实时数据库相对应的是历史数据库。
历史数据库主要用于存储过去一段时间内的数据,这些数据虽然不再是实时的,但却具有重要的价值。
历史数据库就像是一个数据的“档案馆”,它将大量的过去数据妥善保存起来。
这些数据可能包括了多年来的生产记录、销售数据、用户行为数据等等。
通过对这些历史数据的分析,我们可以发现趋势、规律和模式,从而为未来的决策提供参考。
历史数据库的一个重要作用是支持数据分析和决策。
例如,一家企业想要了解产品在过去几年的销售趋势,就可以从历史数据库中提取相关数据进行分析。
实时数据库和传统数据库的区别与应用场景分析随着信息技术的不断发展,数据库在各行各业中的应用越来越广泛。
在数据库的应用领域中,实时数据库和传统数据库是两种常见的类型。
本文将对实时数据库和传统数据库的区别进行分析,并探讨它们在不同应用场景中的应用情况。
一、实时数据库和传统数据库的区别实时数据库是一种专门用于处理实时数据的数据库系统。
实时数据是指那些要求在严格的时间要求下进行处理和响应的数据。
相比之下,传统数据库则更适用于处理非实时数据,如批处理和离线数据处理。
1. 数据处理方式不同实时数据库采用了一系列优化策略来保证数据的实时性和响应性能。
它使用了高效的数据存储和索引结构,能够在较短的时间内对数据进行读写操作。
而传统数据库则更注重数据的一致性和持久性,对于实时性要求不高的应用场景更为适用。
2. 数据处理速度不同实时数据库能够以毫秒级的速度对数据进行读写操作,能够满足对数据实时性要求较高的应用场景。
而传统数据库则需要更长的时间来处理数据,适用于对实时性要求不高的场景。
3. 数据规模不同实时数据库通常用于处理大规模的实时数据,如传感器数据、监控数据等。
它能够高效地处理大量的数据并保证数据的实时性。
传统数据库则更适用于处理较小规模的数据,如企业的业务数据、客户数据等。
二、实时数据库的应用场景1. 物联网领域随着物联网技术的不断发展,各种传感器设备产生的实时数据需要被高效地处理和分析。
实时数据库能够满足对实时性要求较高的物联网应用场景,如智能家居、智能交通等。
2. 金融领域在金融交易中,实时性是非常重要的。
实时数据库能够高效地处理金融交易数据,保证交易的实时性和准确性。
例如,证券交易系统、支付系统等都需要使用实时数据库来处理交易数据。
3. 游戏领域实时数据库在游戏领域中也有广泛的应用。
游戏中需要实时地处理玩家的操作和交互,实时数据库能够满足对游戏数据实时性和响应性能的要求。
三、传统数据库的应用场景1. 企业应用传统数据库在企业应用中有广泛的应用。
引言实时数据库和时序数据库是两种广泛应用于数据存储和处理的技术,它们在功能架构上有一些共同点,同时也存在一些差异。
本文将对实时数据库和时序数据库的功能架构进行对比,探讨它们各自的特点和适用场景。
概述实时数据库和时序数据库都是为了满足特定应用领域的数据存储和处理需求而设计的。
实时数据库主要用于管理实时数据,并提供实时数据分析和处理的功能;时序数据库则专注于处理和分析时间序列数据,以支持对时间序列数据的高效查询和分析。
正文一、实时数据库功能架构1.实时数据管理:实时数据库负责管理实时数据的插入、更新和删除操作。
它提供高效的数据存储和检索机制,以满足实时数据的快速响应和高效查询。
2.实时数据分析:实时数据库提供实时数据分析功能,可以对实时数据进行实时统计、聚合和计算,以支持实时的数据分析和决策。
3.实时数据处理:实时数据库能够对实时数据进行实时处理,可以对数据进行过滤、转换和计算,以满足实时业务应用对数据的处理需求。
4.实时数据同步:实时数据库支持实时数据的同步和复制,在分布式系统中能够实现数据的一致性和可用性。
5.安全和可靠性:实时数据库提供数据安全和可靠性保障,包括数据的备份和恢复机制、数据的访问控制和权限管理,以及故障和异常处理。
二、时序数据库功能架构1.时间序列数据管理:时序数据库负责管理时间序列数据的插入、更新和删除操作。
它提供高效的数据存储和检索机制,以支持对时间序列数据的快速查询和分析。
2.时间序列数据分析:时序数据库提供时间序列数据分析功能,可以对时间序列数据进行统计、聚合和计算,以支持对时间序列数据的深入分析和挖掘。
3.时间序列数据处理:时序数据库能够对时间序列数据进行处理,包括数据的过滤、插值、模型拟合等操作,以满足时间序列数据的处理需求。
4.时间序列数据存储和索引:时序数据库采用特定的数据存储和索引结构,以支持对时间序列数据的高效存储和快速检索。
5.安全和可靠性:时序数据库提供数据安全和可靠性保障,包括数据的备份和恢复机制、数据的访问控制和权限管理,以及故障和异常处理。
实时数据库与时序数据库的对比分析(一)引言概述:实时数据库和时序数据库是两种常见的数据库类型,它们在数据存储和处理方面有着不同的优势和应用场景。
本文将通过对实时数据库和时序数据库的功能、数据模型、应用场景、性能和扩展性等方面进行对比分析,帮助读者更好地理解和选择适合自己需求的数据库类型。
一、功能对比1. 实时数据库的功能:- 支持多用户同时访问和操作数据- 提供实时和动态的数据更新和查询能力- 支持复杂的查询和事务处理- 支持数据的持久化和故障恢复2. 时序数据库的功能:- 提供高效的存储和查询时序数据的能力- 支持对时序数据的快速插入、更新和删除操作- 提供时序数据的压缩和聚合功能- 支持时序数据的版本管理和时间序列索引二、数据模型对比1. 实时数据库的数据模型:- 基于关系模型,采用表格形式组织数据- 支持复杂的数据关系和约束- 使用 SQL 或类似的查询语言进行数据操作2. 时序数据库的数据模型:- 基于时序模型,将数据组织成时间序列- 数据按时间顺序存储,每个时间点对应一个数值 - 支持时间范围和时间间隔的查询和聚合操作三、应用场景对比1. 实时数据库的应用场景:- 电子商务和在线交易系统- 物联网和工业自动化系统- 实时监控和数据分析系统2. 时序数据库的应用场景:- 传感器数据采集和监控系统- 日志分析和系统性能监控- 时间序列数据的存储和分析四、性能对比1. 实时数据库的性能特点:- 支持高并发和实时数据处理- 提供较低的读写延迟和高吞吐量- 处理大规模数据的存储和查询操作- 支持水平和垂直扩展2. 时序数据库的性能特点:- 高效的时序数据存储和查询- 提供快速的数据插入和更新能力- 支持时间序列数据的压缩和聚合- 高性能的时间范围和时间间隔查询五、扩展性对比1. 实时数据库的扩展性:- 可以通过集群部署实现横向扩展- 支持分布式数据和查询处理- 提供数据分片和分区功能2. 时序数据库的扩展性:- 支持海量时序数据的存储和处理- 提供数据的分区和分片功能- 可以通过分布式部署实现横向扩展总结:实时数据库和时序数据库在功能、数据模型、应用场景、性能和扩展性等方面有着不同的特点和优势。
PI实时数据库PI 系统技术特点1.技术特点及先进性单机支持的最大规模已经达到2000 万点。
数据吞吐量达4 百万/秒。
存储能力为10-15 万个事件/秒。
数据访问能力为100 万个/秒。
占用硬盘空间极小,平均单点占用磁盘空间约为1KB/24 小时。
提供超过400 个标准接口。
提供超过30 种可视化、报警、分析工具。
对客户端数量无限制。
独有的旋转门压缩技术。
以数据原型存储,保持高精度,便于应用和分析。
长期在线存储数据,调用数据非常方便。
多个采集点、分布式的方式,效率高并安全。
支持多服务器同时运行,可同时调用多个服务器的数据。
操作简单、易学易用、易于维护,易于升级。
数据存储年限:软件本身可以支持的数据存储年限没有限制。
对计算机和网络的要求:不高,普通的PC 服务器和UNIX 小型机均适用。
监视范围:凡是工厂计算机网络和控制系统能够达到的地方,都可以授权监视;经过授权以后也可以远程登陆网络监视生产情况。
专利的Swing Door 压缩算法,每个采集点的数据压缩率可自行设置;在保证数据精度要求的条件下优化了系统的运行效率,调用数据速度快。
支持多个时区。
支持以前的数据插入。
PI 支持多种数据类型,包括:Digital, 16-bit integers, 32-bitintegers, float16, float32,float64, text and BLOB (binary large object)。
这些包括了常用的模拟量、开关量,以及运行人员对操作的评价等文本信息。
2.系统的可扩展性系统灵活,可根据需要扩展(客户端、数据采集接口、数据容量等)。
数据容量可从1 千点扩展到2 千点、5 千点、1 万点、2 万点、5 万点,10 万点,15 万点等,升级扩展方便快捷。
如果新增其他装置或控制系统的话,可以增加新的接口,将这些新系统的数据统一由PI 服务器进行采集、存储和管理。
客户端不需要重新设置,就可以浏览新增系统的信息。
大数据的实时处理技术随着信息技术的快速发展,大数据已经渐渐走入我们的视野,并且在各个领域中发挥着重要作用。
而在大数据的处理过程中,实时处理技术的应用变得愈加重要。
本文将介绍大数据的实时处理技术,包括实时数据流处理和实时数据库。
一、实时数据流处理技术实时数据流处理技术是指对数据流进行实时处理和分析的技术。
它不同于传统的批处理模式,能够在数据产生的同时对数据进行处理和分析,极大地提高了数据的实时性和响应速度。
1. 数据流处理引擎在实时数据流处理技术中,数据流处理引擎是核心组件之一。
它负责接收、处理和分析数据流,并进行相应的操作和计算。
常见的数据流引擎有Apache Kafka、Apache Flink等。
2. 流处理语言为了方便开发人员对数据流进行处理和分析,流处理语言应运而生。
它是一种特殊的编程语言,能够帮助开发人员快速编写处理数据流的代码。
目前比较流行的流处理语言有SQL、Siddhi等。
3. 实时监控和告警实时数据流处理技术还包括实时监控和告警机制。
通过对数据流的实时监控和分析,可以快速发现数据异常和问题,并及时进行处理和告警。
二、实时数据库技术实时数据库技术是指能够对数据进行实时存储和查询的数据库技术。
相比传统的批处理数据库,实时数据库可以实现数据的即时插入和查询,具有更高的实时性和并发性。
1. 内存数据库内存数据库是实时数据库的重要组成部分。
它将数据存储在内存中,大大提高了数据的读写性能。
同时,内存数据库还支持事务处理和数据持久化等功能。
2. 数据索引和查询实时数据库还需要支持高效的数据索引和查询机制。
通过优化索引结构和查询算法,可以实现快速的数据检索和查询,满足大数据实时处理的需求。
3. 数据一致性实时数据库需要保证数据的一致性。
在多用户并发读写的情况下,实时数据库能够正确处理各个事务之间的数据依赖和冲突,保证数据的正确性和完整性。
总结随着大数据越来越广泛地应用于各个领域,实时处理技术变得愈加重要。
PI 实时数据库系统详细介绍PI.实时数据库系统---详细介绍2010-08-20 11:50PI实时数据库系统(Plant Information System)是由美国OSI Software公司开发的基于C/S、B/S结构的商品化软件应用平台,是工厂底层控制网络与上层治理信息系统连接的桥梁,PI在工厂信息集成中扮演着特别和重要的角色。
PI实时数据库系统适用于电力、石油、化工、冶金、造纸、制药、水处理、食品饮料、通讯等各种生产流程企业的生产过程优化。
PI是全世界装机量最多的实时数据库系统,已成为OSI公司的标志产品。
美国OSI Software公司创建于1980年,总部设在加州San Leandro。
在休斯顿、西雅图、克里夫兰设有分部,在美国的IL、FL、MO、MA、NY、NC等州设有办事处,在澳大利亚、新西兰、德国、新加坡设有办事处,全球范围有超过50多个分销商,智网科技(杭州)有限公司是OSI Software公司在中国的指定分销商。
同时,智网科技还利用自身的技术优势,在PI系统的平台上,二次开发了诸多的电厂应用子系统,使用户十分方便地进行电厂生产过程优化及安全运行治理。
OSI Software公司与Microsoft、SAP、KBC等闻名公司保持着良好的合作关系,PI的客户端产品中底层完全采用微软Windows技术,同时也将用户界面Windows化。
迄今为止,PI的客户端模块以功能强盛、灵活、易用的特点在业界一直保持着领先的地位。
OSI Software公司还与世界上几乎所有的DCS/PLC厂商保持着良好合作关系,这就使得PI与DCS/PLC的数据接口建立在坚实的基础之上。
PI实时数据库系统概述世界上众多的企业都熟悉到生产过程的实时数据与历史数据是企业最有价值的信息财富,是整个企业信息系统的核心和基础。
但是,假如生产现场缺乏数据,数据不完整或者不一致,以及历史数据丢失,都将导致管理者对工厂的现状无法判断,给管理带来困难,严峻时甚至导致工厂停产,发生事故等等。
引言:实时数据库和时序数据库是两种不同类型的数据库,它们在数据存储和查询方面有一些差异。
在本文中,将对实时数据库和时序数据库进行对比分析,以帮助读者更好地了解它们的特点和用途。
概述:实时数据库和时序数据库都是现代数据库技术中的重要组成部分。
实时数据库主要用于存储和查询实时数据,而时序数据库则专门用于存储和查询时间序列数据。
虽然两者的功能有一些重叠,但它们在数据存储结构、查询性能和数据分析等方面存在一些差异。
正文:1. 数据存储结构1.1 实时数据库:实时数据库通常采用类似传统关系数据库的数据存储结构,使用表格和行的形式存储数据。
每个表格由列构成,每行代表一个数据实体。
它使用事务和索引等技术来确保数据的一致性和可靠性。
1.2 时序数据库:时序数据库采用特殊的数据存储结构,将时间序列数据按照时间顺序存储。
它通常使用时间作为主键,将所有相关数据按照时间戳进行排序。
这种存储结构能够提高查询性能和数据压缩率,适用于大规模时间序列数据的存储和查询。
2. 查询性能2.1 实时数据库:实时数据库具有较好的事务处理性能和查询性能。
它支持复杂的SQL查询,并通过索引优化来提高查询效率。
实时数据库还能够实时处理大量的并发请求,适用于高并发和实时性要求较高的场景。
2.2 时序数据库:时序数据库专注于时间序列数据的存储和查询,具有较高的查询性能。
它使用时间索引来加速查询,提供快速的时间范围查询和聚合查询。
时序数据库还能够进行数据压缩和归档,减少存储空间和提高查询效率。
3. 数据分析3.1 实时数据库:实时数据库能够实时处理和分析实时数据,提供即时的数据分析和决策支持。
它通常具有强大的分析功能和灵活的数据处理能力,可以进行数据挖掘、统计分析和复杂的计算操作。
3.2 时序数据库:时序数据库专门用于存储和查询时间序列数据,提供强大的时间序列数据分析功能。
它支持时间序列数据的聚合、插值和平滑等操作,可以进行趋势分析、周期分析和异常检测等数据分析任务。
实时数据库介绍 拖太久了,最终我还是要将这篇文章写出来,希望能够对同仁们有所帮助。 在此文章中,我计划主要介绍如下主题:
谈到实时数据库,有些同仁还颇感神秘,我写此文结合我05年开始做的MES RTDBE实时数据库工程师培训教材来开展,逐渐解开面纱,给大家展示一个真实的实时数据库世界。注:图其实都很清晰,如看不清,纯属CEC博客功能问题,用鼠标点一下图,看大图。
先了解概念,再深入原理。 说道实时数据库,当时诞生于美国,随着流程工业和航天工业的发展,大量的测量数据需要集成和存储,采用关系数据库难以满足速度和容量的要求,而且接口访问复杂,不适合科研和监控的需要,因此80年代中期,开始诞生了以工业监控为目的的实时数据库。 今天大家看到的一些实时数据库,如PI、Uniformance、Infoplus、InSql等工业监控类实时数据库均先后诞生于此阶段。而当时还有另外一个分支,即所谓硬实时数据库,它的采集速度和响应速度均是毫秒级的,而大家知道,今天大量应用实时数据库,主动采集速度均是秒级的,响应速度也不严格,在Windows平台下,小于40ms的响应均不准确,但当时却有这类产品,目前多用于军事和科研了。到了上世纪90年代,实时数据库在流程工业全世界范围内大行其道,源于以太网的逐步普及;主要应用于工业监控、控制和公用工程。国内的实时数据库发展较为缓慢,这和技术封锁和政治风气都有关系,到了2000年之后,国内的实时数据库逐渐展露头角,如ESP-iSYS、Agilor等与国外的PI、InfoPlus均属于大型分布式网络实时数据库。规模相对较小的,如PHD、ConRTDB、SuperInfo,在国内开始应用。由于应用场景的不同,好多企业开始还只是解决现场监控的问题,分不清RTDB与SCADA的概念,结果InSql获得了一个发展的机会。 那么,什么是实时数据库呢,过去国人老将其与SCADA搞混,倒也给SCADA一个发展的机会。实际上实时数据库是“对实时性要求高的时标型信息的数据库管理系统”,注意,这里特别提醒,是管理系统,而非单独一个数据库。实时数据库虽是系统软件,但更多是一个应用平台软件,原因是实时数据库还没有一个像SQL一样的标准,而且其功能太过综合,各厂商推出的产品功能各有侧重。但以上的膜片中至少总结了实时数据库的主要功能。
目前实时数据库已经应用到众多领域,它的应用范围还在不断扩展,业界的同仁在不断创造出实时数据库的应用模式。只要有时标型数据,实时数据库就可以在一定程度上发挥威力。 说到这里,渐渐要讲原理了。与一般认识不同,时标型数据并非仅仅指时间戳、值和质量码,还有一个很重要的属性,那就是及时性,及时性有两重含义,采样间隔和数据的新鲜度。时标型数据的价值随新鲜度降低而递减。1秒钟内的数据可以用来流程工业中的控制,5秒钟之内可以用来监视,半小时内的数据可以用来分析和优化,一天内的数据可以用来日报表,如果是半年前的数据,则只能做对比和追溯了。而得到数据的新鲜程度往往取决于采样频率,这就是为什么如此重视实时数据库的采样快速性。同时采样的频率还进一步决定了实时数据库保存信息的丰富程度。请看下一张膜片:
大家都知道采样定理,根据拉普拉斯变换,任何信号都可以被分解为频率不同、幅值不同的正弦波叠加,而如果要让采到的数据中包含一个频率的信息,则采样频率至少为此频率的2倍。所以大家不要过分关心实时数据库宣称的无损压缩,更重要的是要明白,信息的最大损失就在于采样。更简单的例子,当你以10秒钟的周期去采样,可能装置运行过程中出现了异常的超调,在5秒内又恢复了,而你的实时数据库中却根本不存在这些信息。从另一个方面讲,实时数据库中存储的数据永远是滤波后数据,实时数据库就像一个低通滤波器。
接下去,要讲到实时数据库的核心技术原理了,理解了这些原理,在设定实时数据库运行参数的时候,才能得到更好的效果。也就会明白,一个RTDBA(RTDB Administrator)的存在价值。
看看这些标题,就知道,我下面会讲很多关键的东西,之前很多Q友在群里面抱怨我不提供完整的实时数据库原理知识材料,抱歉,太忙了。不是吝惜什么或技术保密,今天,只要你努力,都可以做出一个实时数据库的核来,但从一个内核到产品的质变,是需要公司正规研发投入的,因此,原理实在不需要保密,讲个明白,大家能更好地使用实时数据库。
首先看看,任何复杂的大型实时数据库,其基本体系架构,也不外乎如图所示,通过现场适配层适配现场的各种接口,做工控的都知道,这是一个复杂的工作。然后通过实时核心,完成数据的采集、实时计算、报警计算、其它处理,实时数据被不断泵入磁盘历时存储,形成可追溯的历时信息,同时通过向应用层提供各种适配接口,支持各种开发语言和各种应用需求的访问。认识好这个基础架构,下面看核心原理,就思路清晰了。
总的来说,目前工业通讯、传输的协议种类繁多,主要有两方面原因:1、历史遗留;2、人为垄断;二者的合力就是上边这张膜片的内容,搭建看看,难啊,很多时候,为了不付出厂商提出的巨额接口或接口板卡费用,广大的业界同仁采取编程口、打印口等极端方式,以获得可以接受的性价比。在协议载体上,主要是串行和以太两种,当然在串行通讯中又有很多专用总线分支,例如Profibus等。未来在载体上是相当的清晰,请大家看我的另一篇文章《工业以太网技术有望统一现场总线 》,以太网通讯技术已经势如破竹,所以,前途光明,但另一个困扰更大,就是封闭的协议,目前大部分厂商都宣称自己开放了,但开放的是上层,而非底层。虽然,至少可以做到采用OPC访问实时数据库,但要想简单地将For InSql的接口用于Agilor,则很难,这就是底层没有协议的问题。前两天在接收《今日自动化》采访的时候,我也提出,如果底层协议不统一,实时数据库的市场将继续存在混乱和低速发展。
谈到接口,小型实时数据库(许多是号称自己是实时数据库的组态软件)均采用了以上的架构,即将核心和接口做在一起,用户使用起来较为简单,但如果出现任何一个不稳定的接口或局部异常,那整个实时数据库就崩溃了。另外对于大型应用,这种结构也较难扩展。对于大型分布式实时数据库,基本按照如下的配置: 接口软件被独立出来,即可以与实时数据库核心集中部署在1台计算机上,也可以与部署在接口机上,在大规模应用的时候,接口的负载不会影响核心的稳定,同时任意一个接口出现Crash,都不会导致实时数据库整体宕机。从而提供了更好的可扩展性和稳定性。 谈到影响接口效率的因素,主要如下:
首先协议如果慢,那是没招了,这主要可以看看DDE协议,在OPC出现前,也曾经红火了一段时间,DDE使计算机上跨进程数据可以方便通讯,但这种通讯协议本身效率很低。计算机再快,容量不能大幅度上升,几百个位号就很不错了。就这一点,就决定了其退出了历史舞台。第二在于网络状况。没有有效地组网,以太网也会十分缓慢。有效的带宽变低,使得快速协议也变得缓慢而不稳定。网络状况有两方面:1、物理结构合理性,多少次经验告诉我们,没有合理组织的以太网,往往导致数据的阻塞,梳理以太网就像控制交通流量,任何地方出现瓶颈,都会导致数据缓慢;2、病毒,尤其是占用大量带宽的蠕虫,一旦感染了这个,接口中断就很有可能了。设备效率也一样关键,经常出现DCS工作压力很大了,这时再看其通讯,就很难了。针对这种情况往往应该增加通讯卡件来提高效率;工作站负载也是影响大型系统接口效率的关键,很多大型系统的OPC都在工作站上,这时,如果工作站负载很重,OPC能分到的运行时间不足,又会影响效率,最终数据传输还是很缓慢,而且不稳定。谈到这里,大家可以看看我的另一篇文章《OPC——资本和崇洋豢养的病态协议 》,OPC并非什么好协议,只不过因是中立国出的协议而如此广泛被使用罢了。如果这些都没有问题,那么最终协议总归协议,实现协议交互的软件质量还十分关键,在实施中,我们也经常会碰到因为质量不好的OPC,效率低、稳定性差导致整个系统不稳定的。 知道了以上内容,现场遇到问题,应逐个排除,不要一开始就责怪实时数据库不好,只有对症下药地解决问题,才能获得高效的系统。 接下去的内容将更加精彩,我们将探寻接口内部的奥秘,先给大家一张预览图:
谈到这里,就要谈到实时数据库为做到实时的考虑了。为了做到实时,实时数据库采取了“实时”的反面-》“缓存”,缓存是为了提高交互效率,从而使整体更加实时,这点后面将详细介绍。那么一个接口程序内部有什么呢?主要有两部分:现场接口协议栈和位号分组。当然,对于小型的接口,位号分组被省略了。位号分组是按照实时数据库组态的要求,按不同的频率采集实时数据。分组的优势在于降低了位号采集的工作量。要知道很多协议是慢速的(如串口协议)。如果实时数据库中仅要求5秒钟的采样频率,而下端却不作区分,按最快的频率采集,则往往效率就会降低,甚至影响到配置为高速采集的其它位号。因此,分组往往是必须的。协议栈则不用解释,大家都知道必须实现的。实现的好,则效率高、稳定性好。实时数据库接口中有定时器,在Windows平台上能获得的最高定时精度为40ms,因此采样周期高于40ms,没有意义。一般主动采集的频率都是1赫兹以下的(慢于1秒/次),更加快速的时候,均采用主动通知的方法,即当数据变化的时候,主动向实时数据库内核发送变化的数据,以达到更高效率。接口就简单介绍到这里,要明确的是,对于主动采集方式下,接口相当于多了一层缓存,在今后的讲解中,大家会发现,实时数据库的效率和缓存的层次多少很有关系。
简单谈谈分布式技术,大型分布式实时数据库都采用了一定的分布式技术,采用的技术不同,局限性也不同。COM/DCOM被熟知,被业界认同,是微软主要分布式技术,因此被广泛应用。但逃不出DCOM安全性的魔障,与Windows权限捆绑紧密。而且对于连接效率低的时候容易出错。跨平台能力则更是彻底不具备了。J2EE很好,但效率有些低,最近JAVA6出现后,效率已经有了显著提升。甚至比.Net快,但作为底层研发来说,采用J2EE很不合适,原因是其对硬件的访问能力较弱。随着以太网和工业通讯标准的提升,J2EE平台也许在工业应用上有后劲。目前多数实时数据库厂商采用了专用TCP/IP协议,优势是易跨平台,部署方便,稳定性容易掌控。但增加了掌控能力的同时也降低了对已有框架的集成,开发工作量大。从实时数据库所面向的应用场景来说,专用TCP/IP协议更加适合一些。
下面给出实时数据库的简化模型,后面的原理将结合这张图来讲解。