文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Apache IoTDB:更适合工业物联网场景的新型数据库,存、查、用不再是难题

2024-11-30 09:53

关注

面对这样的状况,清华大学于 2015 年启动了 IoTDB 的研制。2020 年 9 月 23 日 Apache IoTDB 毕业成为 Apache 顶级项目 (Top-Level Project),是目前唯一由我国高校发起的 Apache 基金会顶级项目,也是 Apache 基金会旗下唯一物联网数据管理领域开源项目。2021 年 10 月,Apache IoTDB 核心团队创立了天谋科技,继续运营 IoTDB,帮助工业用户解决数据 “存、查、用” 难题。

对于 Apache IoTDB 研发的核心技术,几位参与者联合发表了一篇综述论文,对于 IoTDB 的设计进行了详细而完整的阐述。文章以一个需要管理上万台挖掘机的工业公司入手,描述了需求 “数据首先被打包到设备中,然后通过 5G 移动网络发送到服务器。在服务器中,数据被写入时间序列数据库,用于 OLTP 查询。最后,数据科学家可以将数据从数据库加载到大数据平台,用于复杂的分析和预测,即 OLAP 任务。”

论文重点讲述了如下几个部分:

1. 数据模型的设计:时间序列在逻辑层次上的组织方式和在物理模式中的存储;

2. TsFile 文件格式:自研的列式存储文件格式,同时满足写入、查询等的高效性;

3. IoTDB 引擎:主要包括存储引擎、查询引擎等;

4. 分布式解决方案。

接下来,对这几个重点部分做出更加详细的解读。

详细解读

1. 数据模型设计

(1)如下图,采用树的结构,满足极高强度的写入操作,并能够有效处理物联网场景中常见的延迟数据到达问题。

在树中,每一个叶子节点对应一个传感器,每个传感器都有其对应的归属设备,正如图中最下面两层所示,向上同理。

(2)前文阐述了逻辑结构,现在我们来看物理结构的实现,主要为时间序列 ( Time series )和序列簇( Series family )两部分组成。下图展现了每个时间序列是由时间和值两个属性组成,时间序列通过根节点到叶子节点的完整路径来定位。上图中则展示了序列簇的概念,一个序列簇中可能包含多个设备,它们的数据将一起存储在 TsFile(一种文件结构,在后文中会讲解)中。

2. TsFile 文件格式的设计

TsFile 是 Apache IoTDB 自研列式存储文件格式。结构如下图:

TsFile 在设计过程中,研究团队主要解决的问题:

主要给出的解决方案:

3.IoTDB 引擎

在这部分,研究者们主要考虑了物联网场景下的延迟到达、高效查询处理、类 SQL 查询的设计。IoTDB 引擎结构如下图:

图中我们可以看到主要是用于处理 TsFile 的写入、读取、和管理的存储引擎部分,在这部分中运用了自动延迟分离技术(如下图):

对于大多数都在正常的 TsFile 中,没有时间范围重叠时,推荐使用延迟数据分离;对于大多数数据是无序的情况,延迟数据分离则不被推荐使用。

另一重要组成是查询引擎,这部分负责将 SQL 查询转换为可在数据库中执行的操作符。同时,为了适应工业物联网场景,Apache IoTDB 设计了对时间序列数据的丰富查询。

4. 分布式的解决方案

TsFile 可以分布在 HDFS 中,并由 Spark 操作。此外还提供了更好的数据分布和查询处理的原生解决方案,主要为分区复制、NB-Raft 复制和 DYNAMIC 读一致性。

对比结果

论文中提供了 TsFile 与 IoTDB 分别与工业中广泛使用的最先进的文件格式和时序数据库的比较结果,展现了 Apache IoTDB 在多个方面的优势,如下图:

以上两张图,展现了 TsFile 在写吞吐量、读取时间成本、同步的性能上,均优于目前广泛使用的方案。这主要是由于 TsFile 的物联网感知结构设计,避免了存储 deviceId 等冗余信息。而磁盘占用之所以没有明显优势,则是因为构建了更加精细的索引,导致占用了更多空间,但是这样的牺牲可以在查询时间上带来非凡的改善,我们可以看到读取时间成本的明显优势。

上图中可以看到 IoTDB 在几乎所有测试中都表现出更好的性能,更高的写吞吐量和更低的写延迟。

在上图的实验中,我们可以看到,当查询数据规模较大时,IoTDB 具有更好的性能,IoTDB 的优势在大规模数据聚合中尤为显著。

总结

该论文介绍了一款新的时序数据管理系统 Apache IoTDB ,其开放式架构专门设计用于支持物联网应用的实时查询和大数据分析。该系统包括一个新的时序文件格式,TsFile ,采用列存储的方式存储时间和值,以避免空值并实现有效的压缩。在 TsFile 的基础上,IoTDB 引擎采用类似 LSM 树的策略来处理极高强度的写入,并处理在物联网场景中非常普遍的延迟数据到达。丰富的可扩展查询,以及在 TsFile 中预计算的统计信息,使 IoTDB 能够在 OLTP 和 OLAP 任务中实现高效处理。

基于上述的这些技术,IoTDB 已经成为能够更好面对工业物联网场景的新型数据库。

来源:机器之心内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯