随着步入工业4.0时代,数字化和自动化的引入,生产环境变得更加高效。同时,人们开始关注智能设备带来的海量数据的潜在价值,但如何高效地存储智能设备产生的数据,以及如何更好地对海量数据进行分析成为了一个难题。传统的数据库模型和存储方式已经无法满足这些需求。因此,时序数据库应运而生,旨在实现高效的数据存储和查询,帮助更好地挖掘数据的潜在价值
面对这样的状况,清华大学于 2015 年启动了 IoTDB 的研制。2020 年 9 月 23 日 Apache IoTDB 毕业成为 Apache 顶级项目 (Top-Level Project),是目前唯一由我国高校发起的 Apache 基金会顶级项目,也是 Apache 基金会旗下唯一物联网数据管理领域开源项目。2021 年 10 月,Apache IoTDB 核心团队创立了天谋科技,继续运营 IoTDB,帮助工业用户解决数据 “存、查、用” 难题。
关于 Apache IoTDB 研发的核心技术,几位参与者合作发表了一篇综述论文,详细而完整地阐述了 IoTDB 的设计。文章以一个需要管理上万台挖掘机的工业公司为例,描述了需求:“数据首先被打包到设备中,然后通过 5G 移动网络发送到服务器。在服务器中,数据被写入时间序列数据库,用于 OLTP 查询。最后,数据科学家可以将数据从数据库加载到大数据平台,用于复杂的分析和预测,即 OLAP 任务。”
- 论文地址:https://dl.acm.org/doi/abs/10.1145/3589775
- 项目地址:https://github.com/apache/iotdb
论文的重点包括以下几个部分:
1. 数据模型的设计:时间序列在逻辑层次上的组织方式和在物理模式中的存储;
2. TsFile 文件格式:自研的列式存储文件格式,同时满足写入、查询等的高效性;
3. IoTDB 引擎:主要包括存储引擎、查询引擎等;
分布式解决方案是指将一个任务或问题分解成多个子任务,并将这些子任务分配给多个计算机或节点进行处理的方法。这种解决方案可以提高系统的可靠性、可扩展性和性能。通过将任务分布到多个计算机上,可以减轻单个计算机的负载,提高系统的并发处理能力。同时,分布式解决方案还可以通过冗余备份和故障转移来增强系统的容错性,即使某个节点发生故障,系统仍然可以继续运行。在当今的大数据和云计算环境中,分布式解决方案已经成为一种常见的架构模式,被广泛应用于各种领域,如分布式数据库、分布式存储系统和分布式计算平台等
对于接下来的内容,我们将会对这几个重点部分进行更加详细的解读
详细解读
需要进行数据模型设计
如下图所示,我们采用了树的结构来满足高强度的写入操作,并且能够有效处理物联网场景中常见的延迟数据到达问题
在树结构中,每个叶子节点都代表一个传感器,每个传感器都有对应的设备归属。就像图中最底下的两层所示,向上的层级同样适用
(2)在前文中已经阐述了逻辑结构,现在我们将来看物理结构的实现,主要包括时间序列(Time series)和序列簇(Series family)两部分。下图展示了每个时间序列由时间和值两个属性组成,通过根节点到叶子节点的完整路径来定位时间序列。上图展示了序列簇的概念,一个序列簇中可能包含多个设备,它们的数据将一起存储在TsFile(一种文件结构,在后文中会进行解释)中
需要重新写的内容是:2. TsFile 文件格式的设计
TsFile是Apache IoTDB自研的列式存储文件格式。其结构如下图所示:
在设计TsFile时,研究团队主要关注解决的问题是:
- 节省空间,尽可能压缩数据
- 减少文件数量
- 会一起查询的时间序列在物理位置上的接近
- 减少磁盘碎片
- 高效访问
主要提供的解决方案是:
- 列式存储:消除了空值,节省了磁盘占用;数据访问局部性
- 时间序列编码:利用物联网场景时间序列的独特特征
- 频域编码:信号处理中广泛进行时间序列的频域分析
- 具体的结构解析:页面( Page )是基本存储单位,Chunk 中包含多个 Page,一个 chunk 中的 page 属于同一个时间序列,大小可变;Chunk Group 包含多个 Chunk,一个组中的多个 chunk 属于同一段时间内写入的一个或多个系列的设备,将他们放在连续的磁盘空间,是因为他们经常会被一起查询;Block 是在内存中的,写入的块组先在内存中进行缓冲,当内存达到阈值时,将所有块组刷新到 TsFile 中;索引(FileIndex)于文件末尾记录信息,用于数据访问。
需要被重写的内容是:3. IoTDB 引擎
在这个部分,研究者们主要关注了物联网场景下的延迟到达、高效查询处理和类似 SQL 查询的设计。IoTDB 引擎的结构如下图所示:
在图中,我们可以看到存储引擎部分主要用于处理TsFile的写入、读取和管理。在这个部分中,采用了自动延迟分离技术(如下图所示)
在大多数情况下,当TsFile中的时间范围没有重叠时,建议使用延迟数据分离。然而,对于大多数数据是无序的情况,不建议使用延迟数据分离
重写后的内容:另一个重要的组成部分是查询引擎,它负责将 SQL 查询转化为可以在数据库中执行的操作符。同时,为了适应工业物联网场景,Apache IoTDB 还设计了丰富的时间序列数据查询功能
需要重新写的内容是:4. 分散式的解決方案
TsFile可以在HDFS上进行分布,并由Spark进行操作。此外,它还提供了原生的解决方案,用于更好地处理数据分布和查询处理,包括分区复制、NB-Raft复制和动态读一致性
对比结果
在论文中,我们对TsFile和IoTDB进行了比较,这两者是工业界广泛使用的最先进的文件格式和时序数据库。通过下图展示,我们展示了Apache IoTDB在多个方面的优势
以上两张图展示了TsFile在写入吞吐量、读取时间成本和同步性能方面的优势,这主要归因于TsFile的物联网感知结构设计,避免了存储冗余信息如deviceId。尽管TsFile的磁盘占用没有明显优势,但这是因为构建了更精细的索引,导致占用更多空间。然而,这种牺牲可以带来非凡的查询时间改善,如我们可以看到读取时间成本的明显优势
在上述图表中可以清楚地看到,IoTDB在几乎所有测试中都展现出更出色的性能,包括更高的写入吞吐量和更低的写入延迟
在上述实验中,我们观察到当查询数据规模较大时,IoTDB展现出更好的性能。特别是在大规模数据聚合方面,IoTDB的优势尤为明显
总结
这篇论文介绍了一种名为Apache IoTDB的新型时序数据管理系统,该系统采用开放式架构,专门设计用于支持物联网应用的实时查询和大数据分析。该系统包括一种新的时序文件格式,名为TsFile,它采用列存储的方式来存储时间和值,以避免空值并实现有效的压缩。在TsFile的基础上,IoTDB引擎采用类似LSM树的策略来处理高强度的写入,并且能够处理物联网场景中常见的延迟数据到达问题。丰富的可扩展查询功能以及在TsFile中预计算的统计信息,使得IoTDB能够高效地处理OLTP和OLAP任务
IoTDB已经成为能够更好应对工业物联网场景的新型数据库,这是基于上述技术的结果
以上是Apache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库的详细内容。更多信息请关注PHP中文网其他相关文章!

大型语言模型(LLMS)的流行激增,工具称呼功能极大地扩展了其功能,而不是简单的文本生成。 现在,LLM可以处理复杂的自动化任务,例如Dynamic UI创建和自主a

视频游戏可以缓解焦虑,建立焦点或支持多动症的孩子吗? 随着医疗保健在全球范围内挑战,尤其是在青年中的挑战,创新者正在转向一种不太可能的工具:视频游戏。现在是世界上最大的娱乐印度河之一

“历史表明,尽管技术进步推动了经济增长,但它并不能自行确保公平的收入分配或促进包容性人类发展,”乌托德秘书长Rebeca Grynspan在序言中写道。

易于使用,使用生成的AI作为您的谈判导师和陪练伙伴。 让我们来谈谈。 对创新AI突破的这种分析是我正在进行的《福布斯》列的最新覆盖范围的一部分,包括识别和解释

在温哥华举行的TED2025会议昨天在4月11日举行了第36版。它有来自60多个国家 /地区的80个发言人,包括Sam Altman,Eric Schmidt和Palmer Luckey。泰德(Ted)的主题“人类重新构想”是量身定制的

约瑟夫·斯蒂格利茨(Joseph Stiglitz)是2001年著名的经济学家,是诺贝尔经济奖的获得者。斯蒂格利茨认为,AI可能会使现有的不平等和合并权力恶化,并在几个主导公司的手中加剧,最终破坏了经济的经济。

图数据库:通过关系彻底改变数据管理 随着数据的扩展及其特征在各个字段中的发展,图形数据库正在作为管理互连数据的变革解决方案的出现。与传统不同

大型语言模型(LLM)路由:通过智能任务分配优化性能 LLM的快速发展的景观呈现出各种各样的模型,每个模型都具有独特的优势和劣势。 有些在创意内容gen上表现出色


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

禅工作室 13.0.1
功能强大的PHP集成开发环境