从IoTDB的发展回顾时序数据库演进史

bdca15c9e34b058c65c23b3983c1ca8b.jpeg

面向工业物联网时代,以 IoTDB 为代表的时序数据库加速发展。

时序数据的主要产生来源之一是设备与传感器,具有监测点多、采样频率高、存储数据量大等多类不同于其他数据类型的特性,从而导致数据库在实现高通量写入、存储成本、实时查询等多个维度存在管理难点。针对这些特性与难点,专门针对时序数据管理构建的时序数据库也在逐步成熟。

以 IoTDB 为代表的国产时序数据库面向工业物联网时代,时序数据的主要应用场景与痛点,正在逐步建立稳定、高效、协同、完善的时序数据管理解决方案,希望打破技术垄断,解决基础软件“卡脖子”难题

01

时序数据管理的早期方案

(1)最早的“时序数据库”:RRDtool

时序数据库的起源可以追溯到 20 世纪 70 年代,随着工业控制和 SCADA 系统的兴起,大量的时序数据产生,于是需要一套完整的存储与处理方案。而 1999 年出现的 RRDtool(Round Robin Database Tool)最早提出了专门面向时序数据存储、处理的方法。

RRDtool 命名中提到的 Round Robin 其实是一种存储数据的方式,使用固定大小的存储空间,并有一个指针指向数据库中最新数据的位置。如果将这个固定的存储空间想象为一个类似时钟的圆盘,上面有很多代表数据存储位置的刻度,指针就可以看做像时针/分针一样,是一条从圆盘中心指向刻度的直线。

就像时钟可以不停转动一样,RRDtool 中的指针也可以一直移动,在存储空间足够的情况下,不存在无法存储新数据的问题;而因为数据存储空间是固定的,当所有的空间都存满了数据,就会覆盖最老的数据。

(2)RRDtool 的创新与不足

从这样的设计就可以看出,RRDtool 的存储方式具有明确的时间属性,所以它适合存储时序数据,它绘制出的图类型也非常契合时序数据的属性,即以时间为横轴,以数值为纵轴的折线演变,强化了时序数据“以时间为第一概念”的数据特性。

同时,因为 RRDtool 的存储空间大小是已经被定义好的,当空间存储满后,它将从指针的开头开始重新存储,数据集不会增大,所以存储空间大小不需维护

然而,这类数据库也能够很明显的看到它的问题。首先,因为存储空间的手动设定,RRDtool 的存储能力难以扩展,在数据量逐渐增多的情况下,很难覆盖历史数据,实现时序数据的“应存尽存”。其次,RRDtool 的数据读取功能较弱,缺乏针对时间维度的查询优化,处理的数据模型也较为单一,通常是内嵌在监控系统中。最后,RRDtool 仅支持单机模式,未覆盖分布式管理的需求。

02

时序数据库发展期:

针对特征,优化性能

(1)从 OpenTSDB 到 InfluxDB

随着大数据的发展,时序数据爆发式增长,已有方案逐渐不能满足需求,在 2010 年之后,出现了第二类产品,首先是以 OpenTSDB 为代表的基于分布式存储的时序数据库。

这类时序数据库在继承通用分布式存储的基础上,扩展了时序数据的语义,并针对时序数据的进行了查询、处理等优化。如 OpenTSDB 底层依赖于 HBase 集群存储,根据时序的特征对数据进行压缩,节省存储空间;对时序数据的常用查询进行封装,提供数据聚合、过滤等操作。

而 OpenTSDB 存在的部署复杂和维护成本高等问题,促进了低成本的垂直型时序数据库的诞生,也就是以 InfluxDB 为首的时序数据库。

这类时序数据库的目标场景是互联网的服务监控、运维等场景,拥有更灵活的数据模型,以标签模型对监控项进行管理。相对于 OpenTSDB 需要配置 Java 环境和 HBase 环境,InfluxDB 没有依赖,大大减少了开发与运维成本,易于部署和维护。

同时,Influxdb 针对时序数据特性进行了存储引擎、查询引擎的重新设计,使得读写性能、易用性相比 OpenTSDB 获得了明显提升,如 InfluxDB 的采用类似 LSM Tree 的 TSM Tree存储结构,引入了 series-key 的概念,根据时间特征对数据实现了很好的分类,减少冗余存储,提高数据压缩率。

(2)时序数据库下一步发展挑战

上面提到的以 InfluxDB 为代表的时序数据库产品,在监控场景时序数据的多个管理痛点,如读写性能、存储成本、特性查询、部署运维等多个方向均实现了性能突破,并结合云服务、微服务等其他发展趋势,正在进一步拓宽其集成链路与适用场景。

然而,InfluxDB 主要面向云端服务监控,并且重点面向近期几个月的数据。但在时序数据大规模产生的工业物联网场景中,数据往往需要需要管理数年、甚至数十年之久,且需要分布式部署。Influxdb 目前仅单机版开源,难以管理如此大的数据量,且随着存储时长的增加,查询性能会大幅下降

在工业场景中,时序数据的管理还具有一些行业特点,数据大多是从端侧设备产生出来的,这些数据首先会服务于工厂的应用管理,所以它们会首先传到工厂内部的边缘网关,再传输到中心侧的数据库去支持监控、告警等服务。边缘侧网络资源、环境配置往往有限,此类时序数据库产品部署的带宽成本较高,对于数据库多终端之间同步传输的运维压力也较大

03

时序数据库的未来方向:

实现工业物联网场景的“端-边-云”协同

(1)工业物联网场景的端边云协同解决方案

面向工业物联网时代,国产自研的时序数据库产品也开始发展、成熟,试图打破垄断。以 IoTDB 为代表的新的国产时序数据库旨在将 OT 和 IT 结合起来,提供完整的工业物联网时序数据解决方案,实现“端-边-云协同”,即需要时序数据库在端侧、边侧、云侧等不同资源下都能够适配,并且运行良好,可以进行数据管理和分析,同时在数据流转的过程中支持稳定、高效、低运维成本的数据传输方案

这一类时序数据库不但可以实现千万级数据写入、高压缩比数据存储、集群部署高可用等性能,同时通过独特的时序数据存储文件格式,实现了数据一次处理,即可端边云共用的新形态。

以 IoTDB 为例,它在发送端可将数据持久化为文件格式,利用边缘端的计算能力,将数据进行深度编码压缩。当文件在端侧形成时,即可将其直接传输到接收端,而无需将原始数据传输。而在接收端,可将收到的文件直接加载至系统中,无需将数据解码和重新写入。

同时,通过“端-边-云”数据模式的自动识别,IoTDB 实现了低流量数据同步方案。因此可使底层数据文件格式贯穿端侧、边侧、云侧,支持可插拔的文件级同步,充分利用边缘计算能力,缓解云侧计算压力,有效节省网络流量、云端计算资源与运维成本

(2)时序数据库端边云场景应用方向

随着工业 4.0 和数字化时代的到来,结合国家工业升级转型战略的实施,新一代的时序数据库产品开始深入的帮助工业企业实现深度数字化转型。

目前,以 IoTDB 为代表的该类时序数据库广泛应用于能源电力、石油化工、钢铁冶炼、航空航天、轨道交通、智能工厂、车联网等国民经济核心产业,支持千万级设备写入、每日过亿条新增数据、TB 级历史数据存储需求,并实现如电力行业中“电厂侧-省域侧-中心侧”、制造行业中“传感器侧-厂站侧-基地侧-集团侧”的“端-边-云”数据同步,构建单平台全生命周期与跨平台端边云协同的时序数据解决方案。

IoTDB 详细介绍参见:

时序数据库IoTDB:功能详解与行业应用

9e84640ffd47fa0500164d969cc85281.gif

4e587cb9d9a6799766715cb725b02cc2.jpeg

2caeba083c618f919f41757503a9790e.jpeg

2419f477c705df7104b965cead906886.png

384b1d28ee34e97092451128700106fd.gif

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

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

相关文章

AI电影创作,AI影视创作全套完整课程

课程下载:https://download.csdn.net/download/m0_66047725/89064240 更多资源下载:关注我。 课程内容: 【试听课】AI发展的现状及对影视行业未来的影响.mp4 0【AI影视创作】流程与基本逻辑_1.mp4 1【AI基础课程】ChatGPT 注册安装流程.…

LinkedList部分底层源码分析

JDK版本为1.8.0_271&#xff0c;以插入和删除元素为例&#xff0c;LinkedList部分源码如下&#xff1a; //属性&#xff0c;底层结构为双向链表 transient Node<E> first; //记录第一个结点的位置 transient Node<E> last; //记录最后一个结点的尾元素 transient …

半透明进口特氟龙材质镊子可耐受强酸强碱腐蚀PFA镊子

PFA镊子用于夹取小型片状、薄状、块状样品&#xff0c;广泛应用在半导体、新材料、新能源、原子能、石油化工、无线电、电力机械等行业。 具有耐高低温性&#xff08;可使用温度-200℃&#xff5e;&#xff0b;260℃&#xff09;、耐腐蚀、表面不粘性等特点&#xff0c;用于苛…

python--字符串对象和

1、找出10000以内能被5或6整除&#xff0c;但不能被两者同时整除的数&#xff08;函数&#xff09; def Divisible_by_5_6(x:int)->list:arr[]for i in range(1,x1):if (i % 5 0 or i % 6 0 ):if i % 5 0 and i % 6 0:continue #利用continue跳过能被5和6整除的数else:a…

跟bug较劲的第n天,undefined === undefined

前情提要 场景复现 看到这张图片&#xff0c;有的同学也许不知道这个冷知识&#xff0c;分享一下&#xff0c;是因为我在开发过程中踩到的坑&#xff0c;花了三小时排查出问题的原因在这&#xff0c;你们说值不值。。。 我分享下我是怎么碰到的这个问题&#xff0c;下面看代码…

服务器安装完SqlServer远程电脑连接不了

1、将服务器的TCP/IP启用 2、重新启动服务 cmd输入services.msc

【数据结构与算法篇】双链表实现

【数据结构与算法篇】双链表实现&#xff08;近300行实现代码&#xff09; &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;数据结构与算法&#x1f345; &#x1f33c;文章目录&#x1f33c; 1. List.h 头文件的声明 2. List.c 源文…

Python通过socket搭建一个web服务器

目录 01、源码 02、运行结果 03、小结 Socket是一种计算机网络通信的一种机制&#xff0c;它允许不同计算机或进程之间通过网络进行数据传输和通信。Socket可以被看作是不同计算机之间的数据传输通道&#xff0c;通过这个通道&#xff0c;计算机之间可以进行双向的数据传输。…

在线药房数据惨遭Ransomhub窃取,亚信安全发布《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件119起&#xff0c;与上周相比勒索事件有所增长。 本周Blacksuit是影响最严重的勒索家族&#xff0c;Ransomhub和Blackbasta恶意家族紧随其后&#xff0c;从整体上看Lockbit3.0依旧是影响最严重的勒索家族&#xff0c;需要注意防范。…

二百三十二、Kettle——修改MySQL中历史数据为当前系统日期并增量同步到ClickHouse中

一、目的 由于一些雷达死了但是又需要有数据进行展示&#xff0c;于是就把这些雷达的历史数据&#xff0c;修改日期为当前日期后&#xff0c;增量同步到ClickHouse中&#xff0c; 二、难点 1、获取当前日期&#xff0c;并且修改历史数据的create_time字段的日期部分 2、如果…

C语言之九九乘法表||素数||最小公倍数

一、九九乘法表 &#xff08;1&#xff09;思路 1、九九乘法表中存在三个变量&#xff0c;以 x1 ; x2 ; y 为例&#xff08;这里也可以使用两个变量&#xff0c;用x1和x2来表示y&#xff0c;方法一样&#xff09; 2、想好了变量之后&#xff0c;我们要想怎样将他实现呢&#x…

Excel/WPS超级处理器,提取汉字/字母/数字

在职场工作中&#xff0c;经常会遇到单元格中有汉字&#xff0c;数字&#xff0c;字母三者的自由组合&#xff0c;但往往只需要其中的一者&#xff0c;如何快速提取呢&#xff0c;超级处理器&#xff0c;提供了4个功能可选。 超级处理器下载与安装 1&#xff09;分离字符 将…

前端用 HTML5 + CSS3 + JavaScript,后端连接什么数据库更简单?

当前端使用 HTML5、CSS3 和 JavaScript 进行开发时&#xff0c;后端连接何种数据库是一个非常重要的问题&#xff0c;因为数据库的选择直接影响着后端代码的编写、数据存储与查询的效率以及系统的可维护性。 1. 关系型数据库&#xff08;SQL 数据库&#xff09;&#xff1a; …

水经微图IOS版5.2.0发布

随时随地&#xff0c;微图一下&#xff01; 水经微图&#xff08;简称“微图”&#xff09;IOS新版已上线。 在该版本中主要新增图层树节点排序功能、常规&#xff08;矩形、圆、椭圆、扇形&#xff09;绘制功能、地形夸张等主要功能。 当前版本 当前版本号为&#xff1a;5…

分类算法——sklearn转换器和估计器(一)

转换器&#xff08;特征工程的父类&#xff09; 实例化&#xff08;实例化的是一个转换器类&#xff08;Transformer&#xff09;&#xff09;调用fit_transform&#xff08;对于文档建立分类词频矩阵&#xff0c;不能同时调用&#xff09; 把特征工程的接口称之为转换器&…

mac配置Jmeter环境

mac配置Jmeter环境 一、安装jmeter二、Jmeter目录结构三、汉化Jmeter四、jmeter安装第三方插件 一、安装jmeter 第一步先自行配置好电脑的jdk环境 1、官网下载jar包 https://jmeter.apache.org/download_jmeter.cgi 2、解压到软件安装目录 3、启动Jmeter 启动方式1️⃣&#x…

OpenHarmony开发——CMake方式组织编译的库移植

概述 本文为OpenHarmony开发者提供一些组织编译形式比较常见&#xff08;CMakeLists、Makefile&#xff09;的三方库的移植指南&#xff0c;该指南当前仅适用于Hi3516DV300和Hi3518EV300两个平台&#xff0c;文中着重介绍各编译组织方式下工具链的设置方法以及如何将该库的编译…

Eclipse新建类的时候如何自动添加注释

Eclipse新建类的时候如何自动添加注释 主要有两种方法&#xff1a;①创建类文件时自动添加注释&#xff1b;②文件注释 方法一&#xff1a;类注释 windows -> preferencesJava -> Code Style -> Code TemplatesCode -> new Java filesedit 填入下面的数据 ${fi…

简析OpenHarmony软总线能力

分布式软总线是 OpenHarmony 的重要能力&#xff0c;设计目标是实现多设备间的通信方式。分布式软总线是分布式硬件和分布式软总线的重要基础&#xff0c;分布式软总线提供一种不区分链路的设备间发现、组网和传输的能力&#xff1a; 发现&#xff1a;应用 WiFi&#xff0c;蓝…

QA测试开发工程师面试题满分问答11: web前端页面视频组件无法播放如何定位bug

当 web 前端页面的视频组件无法播放时&#xff0c;可以从以下维度进行分析和定位可能的 bug&#xff0c;分析维度包括但不限于&#xff1a;前端功能点、缓存、异常、后端功能点、资源占用、并发、网络等&#xff1a; 前端功能点&#xff1a; HTML5 视频支持&#xff1a;检查视频…