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

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

用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

6.2 多维查询

DolphinDB可以针对不同列进行聚合,实现高维或低维的范围查询功能。例如,对field1,field2 列进行过滤并分组聚合:

select sum(prc) from table where field1 in (1..100) and field2 = ‘A’ group by field1, field2

6.3 抽样查询

DolphinDB提供了以分区为单位的抽样查询机制,可以按照指定的比例或者数量对分区进行抽样,只需要在where后调用sample函数。例如,按设备ID进行范围分区,抽取10%分区中的数据和10个分区中的数据

//抽样10%分区
select * from trades where sample(equipmentId, 0.1)
//抽样10个分区
select * from trades where sample(equipmentId, 10)

6.4 精度查询

DolphinDB的时间精度达到纳秒,支持海量高精度历史数据存储,也支持把高精度大数据集聚合转换成低精度小数据集存储。同时,DolphinDB支持多种时间精度分组抽样。例如,选择某两个日期之间的数据,按分钟进行分组计算。

select avg(tint) from t1 where date(timestamp) between 2018.01.01:2018.10.11 group by minute(timestamp) 

DolphinDB也支持自定义精度分组。例如,每5秒一个分组:

select avg(tint) from t1 where date(timestamp) between 2018.01.01:2018.10.11 group by bar(timestamp,5000)

6.5 插值查询

在工业领域经常会发生采集的数据缺失。DolphinDB在查询计算时提供了4种插值方式补全数据,向前/向后取非空值填充(bfill/ffill),线性填充(lfill)和指定值填充(nullFill)。用户也可以通过脚本或C++插件扩充新的插值函数。

6.6 聚合查询

DolphinDB的函数库非常丰富,支持以下聚合函数:atImax, atImin, avg, beta, contextCount, contextSum, contextSum2, count, corr, covar, derivative, difference, first, imax, last, lastNot, max, maxPositiveStreak, mean, med, min, mode, percentile, rank, stat, std,sum, sum2,var, wavg, wsum, zscore。

6.7 面板数据分组查询

处理面板数据时,有时候希望为每个分组的每一行数据生成一个值。DolphinDB提供了context by和滑动统计函数。

DolphinDB支持以下滑动统计函数:deltas, mavg, mbeta, mcorr, mcount, mcovar, mimax, mimin, mmax, mmed, mmin, mpercentile, mrank, mstd, msum, mvar, ratios。

例如,计算每台设备过去10个采集点的移动平均温度:

select equipmentId, mavg(temperature,10) as mavg_temperature context by equipmentId

DolphinDB对部分滑动统计函数进行了优化,每次计算时,充分利用上一个窗口的计算结果,最大程度地降低了重复计算。

6.8 对比查询

DolphinDB的pivot by可用于数据透视,特别是同一时间不同列的指标对比。例如,想要对比同一时间段不同设备的平均温度,可以使用以下代码:

equipmentId = `A`B`B`B`C`C`A`A`A$symbol;
temperature= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29;
timestamp = [09:34:07,09:35:42,09:36:51,09:36:59,09:35:47,09:36:26,09:34:16,09:35:26,09:36:12];
t = table(timestamp, equipmentId, temperature)
select avg(temperature) from t pivot by timestamp.minute() as minute, equipmentId

返回的结果为:

minute   A   B   C
09:34m  50.18
09:35m  50.32   29.46   174.97
09:36m  51.29   29.77   175.23

6.9 关联查询

DolphinDB支持的关联查询种类非常多,包括等值连接、完全连接、交叉连接、左连接、asof join和窗口连接。其中asof join和窗口连接(window join)是专门为时间序列数据设计的连接方式,能够满足更多场景的需求。

当两个表中的时间字段不完全对应时,可以使用asof join,如果左表中的时间为t,它会自动选择右表中不超过t的最近时间。窗口连接是asof join的扩展,如果窗口为w1:w2,它会在右表中选择(t+w1)到(t+w2)之间的数据,并对这些数据使用聚合函数。例如:

select equipmentId,t1.temperature,t2.humidity from aj(t1,t2,`timestamp)select * from wj(t1,t2,-5:0,<avg(temperature)>,`equipmentId`timestamp)

6.10 机器学习和分布式计算

DolphinDB提供了map-reduce,iterative map-reduce等分布式计算框架。用户只需要指定数据源、map函数、reduce函数和final函数,无需编译、部署,可以直接在线使用。为方便用户,DolphinDB内置了常用的拟合和分类算法,可在本地数据源和分布式数据源上使用,这些算法包括线性回归、广义线性模型(GLM)、随机森林(Random Forest)、逻辑回归等。后续将会推出更多机器学习算法。

除了已有的功能外,DolphinDB提供了几种途径扩展系统功能。DolphinDB内置强大的类SQL和Python的脚本语言。用户可以用脚本语言自定义函数来扩展系统功能。DolphinDB支持使用C++开发插件来扩展系统功能。除此以外,DolphinDB提供了C++、C#、Java、Python、R、JS、Excel等语言和系统的API,方便与其它系统集成。

7. 综合使用成本低

工业企业的利润率不高,如果数据平台成本(软硬件的采购成本,系统集成费用,维护费用,应用开发成本等)过高,会严重限制工业物联网的发展。DolphinDB一站式的解决方案、跨平台部署能力、强大的实时数据和海量历史数据处理能力、丰富的计算功能及扩展能力极大的降低了系统的综合拥有成本。

欢迎访问官网下载 DolphinDB database

咨询邮箱:media@dolphindb.com

分布式时序数据库作为工业物联网数据后台的7大优势相关推荐

  1. 华为云自研PB级分布式时序数据库揭秘第一期:初识GaussDB(for Influx)

    本文分享自华为云社区<华为自研PB级分布式时序数据库揭秘第一期:初识GaussDB(for Influx)>,原文作者:栖迟於一丘. 前言 随着云计算规模越来越大,以及物联网应用逐渐普及, ...

  2. 华为自研分布式时序数据库集群:初始GaussDB(for Influx)

    前言 随着云计算规模越来越大,以及物联网应用逐渐普及,在物联网(AIoT)以及运维监控(AIOps)领域,存在海量的时序数据需要存储管理.以华为云监控服务(Cloud Eye Service,CES) ...

  3. 新型时序数据库TimelineDB在风电监控应用中的技术优势

    风能是一种清洁而稳定的新能源, 在环境污染和温室气体排放日益严重的今天,风力发电作为全球公认可以有效减缓气候变化.提高能源安全.促进低碳经济增长的方案,得到各国政府.机构和企业等的高度关注.此外,由于 ...

  4. 分布式时序数据库InfluxDB

    InfluxDB 是一个开源分布式时序.事件和指标数据库.使用 Go 语言编写,无需外部依赖.其设计目标是实现分布式和水平伸缩扩展. 它有三大特性: 1. Time Series (时间序列):你可以 ...

  5. 物联网概论(IoT)_Chp7 物联网数据与计算/Google大数据/云计算

    Chp7 物联网数据与计算 大数据(Big Data):无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合. 一般而言,大数据是指在一定的时间范围内无法用常规软件工具进行获取.存储. ...

  6. ProcessDB实时/时序数据库——JDBC读写实时数据

    一.实时数据表字段介绍 CREATE TABLE RT_TABLE ( ID_F INT;//数据点ID,NAME_F STRING;//数据点名称,VALUE_F STRING;//实时数据值,UN ...

  7. 构建煤矿物联网大数据平台思路(2)-实时数据库与时序数据库

    传统工业实时历史数据库与时序数据库的区别? 本文介绍了实时数据库和时序数据库,并就其特点.应用场景.相关厂商.联系与区别做介绍. 实时历史数据库 ![实时历史数据库架构.png](https://im ...

  8. 中国高校首个Apache开源项目 清华数为物联网时序数据库IoTDB 及可自由组装的大数据软件栈系列组件发布...

    四月的清华园,百花冠冕,春意盎然. 4月25日,清华软件学院师生校友相约云端,共贺清华大学109周年校庆,软件学院建院19周年. 由于疫情防控需要,软件学院通过腾讯会议和学堂在线在线直播方式,举办&q ...

  9. 时序数据到底是什么,为什么我们需要时序数据库?

    作者:刘东华 什么是时序数据?如何存储?如何分析并挖掘其中的价值? 先看个问题:自动驾驶的特斯拉.自动华尔街交易算法.智能家居.当日送达的快递.跟踪每日新冠统计数据和社区空气质量,这些有什么共同之处? ...

  10. 拥抱时序数据库,构筑IoT时代下智慧康养数据存储底座

    摘要:在HDZ城市行广州站中,来自华为云华为云数据库创新Lab向宇从时序数据库的技术角度,解读一下华为云时序数据库GaussDB(for Influx)如何应用在智慧健康养老行业. 本文分享自华为云社 ...

最新文章

  1. StringBuilder的构造方法和append方法
  2. java 圆的交点_java – 获取线条和形状的交点
  3. ajax数据交互代码,Django中使用jquery的ajax进行数据交互的实例代码
  4. C 语言传递数组给函数的三种形式
  5. 最佳mysql可视化管理工具_2014年十大最佳MySQL可视化管理工具
  6. 八种抽样技术的科学指南
  7. 【python】Python学到什么程度可以面试工作(解答一)
  8. centos8修改主机名称
  9. leetcode 1175. Prime Arrangements(python)
  10. QFile读取移动硬盘文件卡死问题
  11. 忍者理论谈《嗜血边缘》如何做出独特的4V4战斗音效
  12. CPU的指令集(指令系统)
  13. js/jquery(2)
  14. 在 dart fluter 中使用 typedef
  15. 二分图匹配——匈牙利算法
  16. 该怎么职场中进行有效沟通工作?
  17. VBA中MsgBox的几个用法
  18. STM32基础(11)ADC模数转换
  19. 论文学习记录:PROGRESSIVE GROWING OF GANS
  20. 【ceph】ceph性能分析工具之perf dump代码打点调试统计PerfCounters

热门文章

  1. Flutter 自定义TabBar指示器(indicator)实现秒杀UI样式
  2. 在Ubuntu 14.04上如何安装 WordPress 教程
  3. authorization cache cannot be obtained
  4. 国家计算机病毒中心发现篡改IE的恶意木马
  5. Carsim 2019 安装后打不开 未响应 acquiring licence information
  6. 【Linux】动静态库及gdb的使用
  7. AMD显卡怎么提高帧数?AMD显卡提高fps的方法
  8. 学会如何学习 - 成为更好的终身学习者
  9. bzoj3384[Usaco2004 Nov]Apple Catching 接苹果*bzoj1750[Usaco2005 qua]Apple Catching*
  10. Deepest Root(dfs深度优先遍历)