物联网行业中,我们如何选择数据库?

在当今数字化潮流中,我们面对的不仅是海量数据,更是时间的涟漪。从生产线的传感器到金融市场的交易记录,时间序列数据成为了理解事物演变和趋势的关键。在面对这样庞大而动态的数据流时,我们需要深入了解一种强大的工具——时序数据库。时序数据库的崛起不仅是技术发展的产物,更是对时间维度数据挖掘需求的响应。

时序数据库广泛应用于物联网、工业监控、能源管理、量化金融等领域,是数字化转型的关键组成部分。本文将着眼于物联网行业,为大家介绍时序数据库的核心概念、优势及应用场景等。我们将揭开时序数据库的技术奥秘,探讨它对于数据管理和分析的深远影响,提供一种物联网数据库选型的新思路。

什么是时序数据?

时序数据是一种按时间顺序排列的数据,其主要特征是数据随时间变化而变化。时序数据往往具有时间依赖性、连续性、周期性、实时性、大规模性、异步性、多维性、不确定性等特点。时序数据的处理和分析需要专门的数据库管理系统,即时序数据库。

时序数据的应用场景有哪些?

  • 生产制造与工业自动化

  • 能源电力与石油化工

  • 车联网与轨道交通

  • 航空航天

  • 物联网传感器测量(水冷、高温、地震...)

  • 服务器监控(CPU、内存、磁盘...)

  • 资源消耗(能源、电力...)

  • 医疗健康监测(心率、血氧浓度...)

  • 网络流量分析

  • 零售与电子商务

  • 金融市场交易

什么是时序数据库?

时序数据库全称是时间序列数据库(Time series database,TSDB),主要用于存储和处理带时间标签的时序数据。时序数据库的存储结构往往具有列式存储、索引结构和压缩算法等特点,能够最大程度地提高数据存储和检索的效率。

在时序数据库成为热点之前,时序数据通常使用 MySQL 或 PostgreSQL 等关系数据库进行处理。但随着互联网和通信技术的发展,网络中产生的时间序列数据量有了爆炸式的增长,传统的数据库已经无法处理这种万亿级的海量数据。不仅如此,现代业务对数据价值挖掘的需求已不仅停留在简单计算和绘制图表的层面上,而是需要更多精细、复杂的计算分析。

如何以一种高性能的方式记录、查询和分析如此大规模的数据,成为了一个难题。时序数据库(time-series database)应运而生。

时序数据库与传统数据库在技术上有哪些区别呢?

1. 首先,大部分时序数据库的查询场景可以认为是 OLAP(Online Analytical Processing )分析型数据库场景。具体地说,时序数据库的读取负载主要可以分为两种,一种是对指定时间序列在指定时间段内数据的查询,如查询某个设备或某支股票最新一小时的数据等;另一种是对大量数据进行统计分析,如分析某支股票、甚至是所有股票在过去一周内的平均价格。这两种场景都是典型的 OLAP 读取场景。因此,时序数据库具有大部分 OLAP 数据库的特点,如列存会对数据做压缩支持复杂的查询语句等,并更加注重时序数据的查询,特别是对于按时间范围的查询和聚合操作的性能。

2. 从写入负载来分析,时序数据库的场景有大量数据的实时写入,而非单行数据的写入与修改。由于时序数据库的写入负载通常很高,如每秒几百万甚至几千万条数据,所以时序数据库的存储引擎往往是基于对大量写入更加友好的 LSM Tree(Log Structured Merge Tree)。

3. 时序数据库支持很多时序场景特有的分析语句与函数。一些常见的语句与函数有:降采样、插值、滑动平均、时间滑动平均、累积和、window join、context by、pivot by 等。要高效地(往往是向量化地)支持这些查询语句并不是一件非常容易的事情。

4. 流数据的处理。对时序数据的离线分析属于批处理的范畴,而还有许多时序数据场景则可以抽象成另外一个称之为流数据的计算场景:有数据不停地产生,且需要低延时地对这些数据做即时的响应与计算。在时序领域,对于流数据的处理,以往的做法是使用 flink 等单独的流数据处理平台,这当然也能够解决问题,但会导致至少两个问题,第一是需要维护时序数据库与 flink 两套系统,使得运维成本大大提升;第二个问题则可能更加致命,那就是流数据的处理是否能够与批数据处理一致,而如果产生不一致,则可能会对业务场景带来负面影响。如果时序数据库能够推出针对时序场景的特殊流数据处理子系统,并且能够达到 “流批一体”,就可以保证批数据与流数据处理的结果完全一致。

5. 另外,时序数据库对于多变、动态的数据模型更为灵活,能够容纳不同类型和结构的时序数据,在设计上更加注重满足时序数据的特殊需求,以提供更高效灵活的存储和查询方案。传统数据库则更多面向一般性的数据存储和查询需求。

作为一种针对时序数据高度优化的垂直型数据库,时序数据库在物联网行业有广泛的应用场景(如工业制造、能源电力、航空航天、智慧交通、设备健康、智能运维、医疗保健、零售业等),通过对海量时序数据进行分析预测,企业可以获得有价值的信息,从而做出更明智的决策,获得独特的竞争优势。

物联网大数据平台数据库选型的考量因素:

物联网大数据平台在进行时序数据库选型时,会考虑哪些性能特征呢?以下为一些常见的考量因素,供大家参考~

1. 高效的分布式系统与存储功能。物联网产生的数据量巨大,因此处理系统必须是分布式的、水平扩展的。为降低成本,一个节点的处理性能必须是高效的,需要支持数据的快速写入和快速查询。

2. 数据持续稳定写入。对于物联网系统,通常数据流量呈平稳状态,因此我们可以相对准确地估算数据写入所需的资源。然而,挑战在于查询和分析阶段,尤其是即席查询,可能对系统资源造成巨大压力。因此,系统必须确保分配足够的资源,以保障数据能够顺利写入系统而不至丢失。具体而言,这要求系统采取写优先的策略,以确保对写入操作的优先满足。

3. 实时处理的框架。对于物联网场景,需要基于采集的数据做实时预警、决策,延时要控制在秒级以内。物联网数据的实时性要求数据库具备快速的数据摄取和处理能力,以支持实时监控、预警和其他实时应用场景。

4. 实时流式计算功能。支持流式数据处理,能够对连续流入的数据进行实时处理和分析,以满足物联网环境中快速变化的数据需求。实时预警或预测已经不再简单地基于单一阈值进行,而是需要对多个设备生成的数据流进行实时聚合计算。这种计算不再仅限于单一时间点,而是基于时间窗口进行,考虑了更广泛的时间范围。

5. 快速且灵活的查询能力。时序数据库提供了专门用于时序数据分析的查询能力。它包括了经过优化的函数、运算符和索引技术,通过其处理涉及时间间隔、滑动窗口和聚合等复杂查询的能力,使用户能够迅速准确地从物联网海量数据中提取有价值的指标。

6. 持续聚合。允许用户预先计算并存储不同时间间隔的聚合数据。这个特性极大地提高了常见聚合查询的性能,例如在特定时间范围内计算平均值、总和或计数。对于需要实时分析和仪表板的物联网应用,持续聚合提供了显著的性能提升。

7. 高扩展性和高可用性。由于物联网设备数量众多,数据库应该具备高度可扩展性,能够轻松应对不断增长的设备连接和数据量;同时,由于物联网环境复杂,数据库应具备容错性和高可用性,以确保即使在设备故障或网络问题的情况下,系统仍能保持稳定运行。

8. 支持云边协同。要有一套灵活的机制将边缘计算节点的数据上传到云端,根据具体需要,可以将原始数据及加工计算后的数据,或仅符合过滤条件的数据同步到云端,而且随时可以取消,更改策略。

9. 便于私有化部署。通过私有化部署,便于掌握系统的管理、配置和访问控制,确保数据安全性并满足内部隐私和合规性要求,并适应特定业务流程和工作负载。

作为 DB-Engines 排行榜上国内排名第一的时序数据库,DolphinDB 是完全自主研发的新一代的高性能分布式时序数据库,以一站式大数据方案、快速开发、性能优异、综合使用成本低著称。DolphinDB 目前广泛应用于量化金融及工业物联网领域,接下来介绍 DolphinDB 作为工业物联网数据平台的7大优势,为大家提供数据库选型参考。

1. 一站式数据解决方案

工业物联网的要求不仅包括对机器产生的工艺数据的采集,还需要进行实时计算和预警,并将结果直观地展示给操作员或直接反馈给机器。同时,对这些原始的工艺数据进行保存,以支持在线或离线查询。在积累了大量的历史数据后,可以在 DolphinDB 这一套系统内完成更为复杂的大数据挖掘,高效一体地进行整个数据处理和分析流程。

下图展示了 DolphinDB 的数据处理流程:

对于系统集成商或企业而言,在一套系统上进行开发和维护,无论是在开发维护还是硬件采购成本上都更为经济高效。

2. 轻量级跨平台部署

工业物联网平台的复杂性体现在多方面:从低成本的工控机(低配 PC 或嵌入式系统)到高性能的服务器或服务器集群,涵盖了边缘计算、本地平台部署以及云端平台部署。这涉及到多种操作系统,包括 Linux 和 Windows。市场上存在许多开源或商用的时序数据库,以及相关的大数据生态系统,这些组件繁多且复杂,体积庞大,对软硬件的要求也较高。尝试使用一套系统进行跨平台部署会面临巨大的挑战。

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

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

工业物联网数据采集的特点是维度高、频率高、设备数量众多,数据量巨大,且具备高时间精度。由于数据库系统的限制,企业难以充分挖掘历史数据的价值。

DolphinDB 以列式存储为特色,支持高达20%左右的数据压缩率,能够处理最高纳秒精度的时序数据。单表支持百万级别分区,通过增加节点水平扩展集群的存储和计算能力。DolphinDB 集群还支持多副本分布式存储和分布式事务机制,确保数据的高可用性和强一致性。

企业可以充分利用 DolphinDB 对长时间积累的历史数据进行深度数据挖掘和分析,如设备的预测性维护、工艺流程的改进、产品质量的提升以及制造计划的优化等。这有助于企业更全面、深入地了解生产过程,智能决策。

4. 实时流计算

物联网实时采集的数据可以通过 DolphinDB 的流计算引擎进行清洗、实时统计,并即时入库,同时通过可视化方式实时展示。DolphinDB 具备流表对偶性,可直接使用 SQL 注入和查询分析流数据。其流计算引擎基于发布-订阅-消费的模式,通过流数据表发布数据,其他数据节点或第三方应用可以通过 DolphinDB 脚本或 API 订阅消费流数据,将计算结果实时反馈给机器或操作员。

5. 丰富的函数与计算功能

DolphinDB 内置了脚本语言,可直接在数据库中进行复杂的计算和交互分析,无需数据迁移。大部分计算功能和函数都经过优化,性能远远超过其他数据库中的相同功能。

以下为一些 DolphinDB 常用的计算功能:

  • 范围查询:DolphinDB 使用数据对(pair)的形式表示范围。

  • 多维查询:可以针对不同列进行聚合,实现高维或低维的范围查询功能。

  • 抽样查询:提供了以分区为单位的抽样查询机制,可以按照指定的比例或者数量对分区进行抽样,只需要在 where 后调用 sample 函数。

  • 精度查询:DolphinDB 的时间精度达到纳秒,支持海量高精度历史数据存储,也支持把高精度大数据集聚合转换成低精度小数据集存储。同时,支持多种精度分组抽样及自定义分组。

  • 插值查询:在工业领域经常会发生采集的数据缺失。DolphinDB 在查询计算时提供了4种插值方式补全数据,向前/向后取非空值填充(bfill/ffill),线性填充(lfill)和指定值填充(nullFill)。

  • 聚合查询: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。

  • 面板数据分组查询:DolphinDB 提供了 context by 和滑动统计函数,并对部分滑动统计函数进行了优化,最大程度地降低了重复计算。

  • 对比查询:DolphinDB 的 pivot by 可用于数据透视,特别是同一时间不同列的指标对比。

  • 关联查询:支持多种关联查询,包括等值连接、完全连接、交叉连接、左连接、asof join 和窗口连接。

  • 机器学习与分布式计算:提供了 map-reduce,iterative map-reduce 等分布式计算框架,无需编译、部署,可以直接在线使用。同时,DolphinDB 内置了常用的拟合和分类算法,如线性回归、广义线性模型(GLM)、随机森林(Random Forest)、逻辑回归等。

除了已有的功能外,DolphinDB 提供了几种途径扩展系统功能。用户可以用脚本语言自定义函数来扩展系统功能。同时,还提供了 C++、C#、Java、Python、R、JS、Excel 等语言和系统 API ,方便与其它系统集成。

6. 综合使用成本低

工业企业的利润率通常较低,若数据平台的成本(软硬件采购、系统集成费用、维护费用及应用开发成本等)过高,将严重制约工业物联网的发展。DolphinDB 提供一站式解决方案、跨平台部署能力、强大的实时数据和海量历史数据处理能力、丰富的计算功能以及可扩展性,大幅度降低了系统的综合成本。

7. 安全可控

DolphinDB 是一个完全自主研发的分布式时序数据库,从底层的分布式文件系统和存储引擎,到数据库和核心类库,再到分布式计算引擎、脚本语言,甚至外围的开发集成环境 GUI 和集群管理工具,全部自主研发,无任何外部依赖,保证了系统的安全可控性。

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

小结

在本文中,我们深入探索了时序数据库这一前沿技术,揭示了其在物联网领域的关键作用与优势。时序数据库不仅是存储时序数据的媒介,更是对数据进行深刻理解的智能引擎,为我们提供了探索和解析复杂数据的工具。时序数据库作为工业 4.0 时代的利器,打开了数据洞察与智能运维的大门。未来,时序数据库将继续在不断涌现的数据浪潮中发挥至关重要的作用,为万物互联与智慧城市开创新的可能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/509987.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

比torchvision更强大,从timm库引用预训练模型和本地加载的方法

1,介绍 torchvision是大家最常用的预训练模型来源,但是其包含的预训练模型种类很少,往往并不能满足研究者们的需求。 而timm库提供了一个更强大的替代选项。 利用如下代码查询 import timmprint(len(timm.list_models())) 输出 1032 可…

【C++】 vector <string> 的超详细解析!!!

目录 一、前言 二、 vector <string> 的个人理解和总结 三、vector <string> 的初始化 四、vector <string> 的输入 \ 输出 五、vector <string> 中的注意事项 六、常考面试题 七、共勉 一、前言 在【C】中&#xff0c;vector 是一个动态数组…

游戏开发各岗位的优势和劣势

在这个充满创意和技术的时代&#xff0c;游戏行业成为众多创新人才追求梦想的热土。对于那些准备踏入这个充满挑战与机遇的领域的新人来说&#xff0c;了解游戏开发的各个岗位及其独特性是至关重要的。游戏程序员、美术设计师和游戏策划——这三个核心岗位不仅构成了游戏创造的…

【SpringBoot整合系列】SpirngBoot整合EasyExcel

目录 背景需求发展 EasyExcel官网介绍优势常用注解 SpringBoot整合EaxyExcel1.引入依赖2.实体类定义实体类代码示例注解解释 3.自定义转换器转换器代码示例涉及的枚举类型 4.Excel工具类5.简单导出接口SQL 6.简单导入接口SQL 7.复杂的导出&#xff08;合并行、合并列&#xff0…

Maplesoft Maple 2024(数学科学计算)mac/win

Maplesoft Maple是一款强大的数学计算软件&#xff0c;提供了丰富的功能和工具&#xff0c;用于数学建模、符号计算、数据可视化等领域的数学分析和解决方案。 Mac版软件下载&#xff1a;Maplesoft Maple 2024 for mac激活版 WIn版软件下载&#xff1a;Maplesoft Maple 2024特别…

Kubernetes中pod的概念

pod pod是什么&#xff1a;pod是k8s中基本的构建模块&#xff0c;一个pod可以包含多个和单个容器&#xff0c;包含多个容器时&#xff0c;这些容器总是运行在同一个工作节点上&#xff0c;因为一个pod绝不会跨多个工作节点。 了解pod&#xff1a; pod将容器绑定在一起&#xf…

浅析扩散模型与图像生成【应用篇】(十五)——SDG

15. More Control for Free! Image Synthesis with Semantic Diffusion Guidance 该文提出一种基于语义引导扩散模型的的图像生成算法&#xff0c;SDG&#xff0c;可使用文本或图像作为引导来指引图像的生成&#xff0c;也可以二者同时使用&#xff0c;实现多模态的引导。增加引…

【Redis】Redis的类型及相关操作

一、常用的key操作命令 keys * 查看当前数据库的键值 ttl key 查看还有多少秒过期&#xff0c;-1表示永不过期&#xff0c;-2表示过期 del / unlink key 同样是删除&#xff0c;unlink是非阻塞删除&#xff0c;del则有可能导致阻塞 select dbindex 切换数据库 flushdb 清空…

微服务(基础篇-007-RabbitMQ部署指南)

目录 05-RabbitMQ快速入门--介绍和安装_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p65&vd_source60a35a11f813c6dff0b76089e5e138cc 1.单机部署 1.1.下载镜像 1.2.安装MQ 2.集群部署 2.1.集群分类 2.2.设置网络 视频地址&#xff1a; 05-Rab…

《养育男孩》:培养未来男子汉,养育男孩的全方位指南

粉丝福利&#xff1a;公众号内回复4可免费获取本期《养育男孩》的读书音频哦。 作为一名家长&#xff0c;我们深知在孩子成长过程中&#xff0c;尤其是男孩的成长过程中&#xff0c;父母的角色和责任有多么重大。最近阅读了心理学家史蒂夫比达尔夫所著的《养育男孩》一书&…

使用plasmo开发浏览器插件在网页指定位置添加自定义UI

使用plasmo开发浏览器插件的时候&#xff0c;有时候需要在指定网站的指定页面添加自定义的UI内容&#xff0c;如果通过content.js内容脚本去通过js创建的话&#xff0c;可就太麻烦了&#xff0c;要写不少的js代码。不过plasmo已经帮我们实现了这个功能&#xff0c;就是Content …

「51媒体网」媒体邀约现场采访的优势有哪些?

传媒如春雨&#xff0c;润物细无声的&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约现场采访的优势主要表现在以下几个方面&#xff1a; 实时报道与传播&#xff1a;现场采访能够让媒体了解活动的真实性&#xff0c;此外&#xff0c;到场报道媒体可以实时迅速将…

谷粒商城实战(009 缓存-分布式锁)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第158p-第p165的内容 分布式锁 原理和使用 使用下shell对产生的命令进行发送 查看 -> 撰写 -> 撰写栏 idea 选中的代码提取成方法 加锁…

go优雅读取zip压缩包-进阶2

【前言】 看到这里就晓得了&#xff0c;之前那一一篇文章go优雅读取zip压缩包&#xff0c;依旧还是有些问题&#xff0c;接下来&#xff0c;我就开始描述下本文章讲述的内容&#xff1a; 面对需要多次读取多个zip压缩包里的指定文件内容&#xff0c;如何提升读取的速度&#x…

smart link实验配置

相关知识点&#xff1a;stp生成树协议&#xff0c;收敛时间慢会导致丢帧&#xff0c;所以利用samrt link配置 1.分主从端口&#xff0c;正常情况下主端口工作&#xff0c;从端口阻塞&#xff0c;防止回路&#xff0c;主端口出问题&#xff0c;切换从端口&#xff0c;并通过flu…

寒冬已逝,“量子春天”正来

最近&#xff0c;全球对量子技术领域的私人投资有所下降&#xff0c;引发了一些观点认为这个领域可能正逐渐衰退。 政治家、资助者和投资者并不总是以科学为关注焦点。然而&#xff0c;某些科技领域偶尔会成为热点&#xff0c;正如20世纪50年代核能技术的兴起&#xff0c;那时人…

分月饼 java题解

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in); int m sc.nextInt(); // 读取员工数量mint n sc.nextInt(); // 读取月饼数量n// 调用distribute方法并打印返回的分配方法总数//先默认每人分一个…

​慧天[HTWATER]可以与与SWMM模型之间实现转换吗?

​慧天[HTWATER]软件简介 针对城市排水系统基础设施数据管理的需求&#xff0c;以及水文、水力及水质模拟对数据的需求&#xff0c;实现了以数据库方式对相应数据的存储。可以对分流制排水系统及合流制排水系统进行地表水文、管网水力、水质过程的模拟计算。可以对城市低影响开…

echarts仪表盘特殊样式

const drawChartOption function (value, max) {const colorConfig {name: 测试,colorList: {text: #fff,line2: {type: linear,x: 0, // 右y: 0, // 下x2: 1, // 左y2: 0, // 上colorStops: [// {// offset: 0,// color: transparent// },{offset: 0.1,color: #031e…

TikTok防关联引流系统:全球多账号运营的终极解决方案

tiktok防关联引流系统介绍&#xff0c;tiktok防关联系统是基于tiktok生态研发的效率工具&#xff0c;帮你快速实现tiktok全球多账号运营&#xff0c;系统配备了性能强劲的安卓&#xff0c;防关联智能终端&#xff0c;可一建创建全球多国手机环境&#xff0c;完美满足各类app软件…