Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

干货分享6个月前更新 Youzhizhan
1,365 0


本文介绍了一种新的时间序列数据管理系统Apache IoTDB,其开放式架构专门用于支持物联网应用的实时查询和大数据分析。该系统包括一种新的时间序列文件格式TsFile,它使用列式存储来存储时间和值,以避免空值并实现有效的压缩。

随着工业4.0时代数字化和自动化的引入,生产环境变得更加efficient.At 同时,智能设备带来的海量数据的潜在价值引起了人们的关注。 如何高效地存储智能设备产生的数据,如何更好地分析海量数据成为一个难题。传统的数据库模型和存储方法似乎无法适应这样的needs.As 因此,有一个时间序列数据库,旨在有效地存储和查询数据,以帮助更好地探索数据的潜在价值。

面对这种情况,清华大学在2015年启动了IoTDB的开发。2020年9月23日,Apache IoTDB作为Apache的顶级项目毕业。 它是目前我国唯一由高校发起的Apache基金会顶层项目,也是Apache下物联网数据管理领域唯一的开源项目Foundation.In 2021年10月,Apache IoTDB核心团队创立天谋科技,持续运营IoTDB,助力行业用户。解决”存储、检查和使用”数据的问题。

关于Apache IoTDB开发的核心技术,几位与会者共同发表了一篇综述论文,详细而完整地阐述了IoTDB的设计。文章从一家需要管理数万台挖掘机的工业公司开始,描述了需求:”数据首先打包到设备中,然后通过5G移动发送到服务器network.In 服务器,将数据写入时序数据库进行OLTP查询。最后,数据科学家可以将数据库中的数据加载到大数据平台中,进行复杂的分析和预测,即OLAP任务。”

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

  • 论文地址:https://dl.acm.org/doi/abs/10.1145/3589775
  • 项目地址:https://github.com/apache/iotdb

本文重点介绍了以下几个部分:

1. 数据模型的设计:时间序列在逻辑级别组织并以物理模式存储的方式;

2. TsFile文件格式:自行开发的柱状存储文件格式,同时满足写入、查询等的效率。;

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

4. 分布式解决方案。

接下来,我们将对这些关键部分做更详细的解读。

详细解释

1. 数据模型设计

(1)如下图所示,树形结构用于满足极高强度的写操作,可以有效处理物联网场景中常见的延迟数据到达问题。

在树中,每个叶子节点对应一个传感器,每个传感器都有其对应的家庭设备。 如图中底部两层所示,向上是相同的。

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

(2)逻辑结构如前所述。 现在我们来看物理结构的实现,它主要由时间序列和级数族两部分组成。下图显示了每个时间序列由两个属性time和value组成。 时间序列通过从根节点到叶节点的完整路径进行定位。上图显示了序列簇的概念。 一个序列集群可能包含多个设备,它们的数据将一起存储在TsFile(稍后将解释的文件结构)中。

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

2. TsFile文件格式的设计

TsFile是Apache IoTDB自行开发的一种列式存储文件格式。结构如下图:

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

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

  • 节省空间,尽可能压缩数据
  • 减少文件数量
  • 将一起查询的时间序列的物理接近度
  • 减少磁盘碎片
  • 高效访问

给出的主要解决方案:

  • 列式存储:消除空值并节省磁盘空间;数据访问局部性
  • 时间序列编码:利用物联网场景时间序列的独特特性
  • 频域编码:时间序列的频域分析广泛应用于信号处理
  • 具体结构分析:页(Web page)是基本存储单元,chunk包含多个页,一个chunk中的页属于同一时间序列,大小可变;Chunk组包含多个chunk,一个组中的多个chunk属于同一时间段内写文件末尾记录信息进行数据访问。

3.IoTDB引擎

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

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

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

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

对于正常tsfiles中的大多数,当时间范围没有重叠时,建议延迟数据分离;对于数据无序的大多数情况,不建议延迟数据分离。

另一个重要组件是查询引擎,它负责将SQL查询转换为可以在database.At 同时,为了适应工业物联网场景,Apache IoTDB设计了丰富的时间序列数据查询。

4. 分布式解决方案

Tsfiles可以在HDFS中分发,并由Spark.In 此外,它还为更好的数据分发和查询处理提供了本机解决方案,主要用于分区复制,NB-Raft复制和动态读取一致性。

比较结果

本文分别提供了TsFile和IoTDB与工业上广泛使用的最先进的文件格式和时间序列数据库的比较结果,并展示了Apache IoTDB在许多方面的优势,如下图所示。:

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

以上两个图表明,TsFile在写吞吐量、读时间开销和同步性能方面优于目前广泛使用的方案。这主要是由于TsFile的物联网感知结构设计,避免了存储DeviceID等冗余信息。之所以在磁盘使用上没有明显的优势,是因为构建了更精细的索引,占用了更多的空间,但是这样的牺牲可以带来查询时间的非凡提升,我们可以看到读

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

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

Apache IoTDB:一种更适合工业物联网场景的新型数据库。 存储、检查和使用不再是问题。

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

摘要

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

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

[ad]
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...