DolphinDB作为工业物联网数据后台的7大优势

2022-04-28 00:00:00 数据 函数 支持 联网 计算

DolphinDB是完全自主研发的新一代的高性能分布式时序数据库,以一站式大数据方案、快速开发、性能优异、综合使用成本低著称。DolphinDB目前广泛应用于量化金融和工业物联网两大场景。

数据是工业物联网的血液。但是国内绝大部分的MES系统,以及所谓的智慧工厂,对生产过程中产生的海量的工艺数据,保存不会超过三个月,更不用说进一步对积累的数据研究利用了。数据的实时采集、计算和反控则对工业物联网背后的数据平台的实时计算能力提出了很高的要求。传统的关系型数据库,大部分开源的NoSQL,以及新一代的NewSQL离工业物联网数据平台的这两个苛求要求还有较远的距离。

时序数据库应运而生。DolphinDB作为工业物联网数据后台时具有以下7大天然优势。

1. 一站式数据解决方案

工业物联网不仅要采集机器产生的工艺数据,还要进行实时计算和预警,并把结果展示给操作员或直接反馈给机器。同时需要将这些原始的工艺数据保存到数据库,供在线或离线查询。积累大量历史数据后,又可以进行更为复杂的大数据挖掘。而这一切都可以在DolphinDB一个系统内完成。下图展示了 DolphinDB database 的数据处理流程。

对于系统集成商或企业来说,在一套系统上进行开发和维护,比起在多套系统上集成、开发和维护,无论是开发成本,维护成本,还是硬件的采购成本都会低得多。

2. 轻量级跨平台部署

工业物联网平台通常非常复杂。既有廉价的工控机(低配的PC或嵌入式系统),也有服务器或服务器集群。既有边缘计算,也有本地平台部署和云端平台部署。涉及的操作系统既有Linux,也有Windows。市场上不少开源或商用的时序数据库,以及相关的大数据生态,部件众多复杂,体积庞大,对软硬件的要求较高。使用一套系统进行跨平台部署,难度很大。

DolphinDB是一个非常轻量级的系统,用GNU C++开发,系统大小仅20余兆,无任何依赖,可以部署在上述任何平台上。这大大节约了系统集成商的开发和维护成本。

3. 安全可控

工业物联网平台的数据及系统的安全可控对一个企业,乃至对国家都至关重要。DolphinDB是一个从零开始,完全自主研发的分布式时序数据库。从底层的分布式文件系统和存储引擎,到数据库和核心类库,到分布式计算引擎,到脚本语言,到各种编程语言的开发接口,甚至外围的开发集成环境GUI、集群管理工具都是百分百自主研发的,无任何外部依赖,安全可控。

DolphinDB除了支持x86和arm的指令体系外,也在适配MIPS指令体系,以支持龙芯等国产CPU。这样在工业物联网平台上,可以实现软硬件同时自主可控。

4. 海量历史数据存储和处理

工业物联网数据采集的维度高,频率高,设备数量多,数据量特别大,且都是高时间精度数据。目前制造业使用的MES系统大部分采用关系型数据库,往往只能保存极短时间内的工艺数据,无法保留全量高精度数据。数据库系统的限制,导致企业无法发挥历史数据的价值。

DolphinDB database 采用列式存储,支持数据压缩(压缩率在20%左右),高支持纳秒精度的时间序列数据处理,单表支持百万级别分区。可以通过增加节点的方式水平扩展DolphinDB集群的存储能力和计算能力。DolphinDB集群支持多副本分布式存储和分布式事务,当一个副本的数据错误或丢失时,启用另一个副本恢复,保证数据的高可用和强一致。企业可以利用长年积累的历史数据进行深度数据挖掘和数据分析,如设备的预测性维护,工艺流程的改进,产品质量的提升,制造计划的优化等等。

简单的说,在同样的硬件设备上,关系型数据库(Oracle,SQL Server)可以支持亿级的时序数据,DolphinDB可以支持万亿级的时序数据。

5. 实时流计算

物联网实时采集的数据,可以交给DolphinDB的流计算引擎清洗、实时统计、即时入库,并通过可视化的方式实时展示。DolphinDB天然具备流表对偶性,发布一条消息相当于往流数据表中增加一条数据,可以直接使用SQL注入和查询分析流数据,极为方便。DolphinDB的流计算引擎是基于发布-订阅-消费的模式。通过流数据表发布数据,其他数据节点或第三方应用通过DolphinDB脚本或 API来订阅消费流数据,把计算结果实时反馈给机器或操作员。流计算教程可以参考DolphinDB流数据教程和DolphinDB流数据聚合引擎教程。

6. 丰富的计算功能

DolphinDB的计算功能可以说是市场上的时序数据库中丰富的。DolphinDB内置了脚本语言,可直接在数据库中进行复杂的计算和交互分析,避免了数据迁移。大部分计算功能和函数都经过优化,性能远远超过其他数据库中的相同功能。下面列举了DolphinDB中常用的计算功能。

6.1 范围查询

DolphinDB使用数据对(pair)的形式表示范围。例如,查询某个表某个时间范围内的数据:

select * from table where date between beginDate:endDate

相关文章