Apache IoTDB清华大学主导的Apache孵化项目

软件 作者:夏滢 2024-10-08 08:00:07

IoTDB 是清华大学主导的 Apache 孵化项目,是一款聚焦工业物联网、高性能轻量级的时序数据管理系统,提供数据采集、存储、分析的功能。IoTDB 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。

IoTDB 具备低存储成本、高速数据写入(百万数据点秒级写入)、快速查询(TB级数据毫秒级查询)、功能完备(数据的增删改查、丰富的聚合函数、相似性匹配)、查询分析一体化(一份数据,满足实时查询与分析挖掘)、简单易用(采用标准的 JDBC 接口、类 SQL 查询语言)等特点。

基准测试表明IoTDB读写性能均优于现有的时序数据库InfluxDB、OpenTSDB、Cassandra以及GE的工业大数据平台Predix。根据中国软件评测中心和中国人民大学的性能对标测试,IoTDB的各项性能指标均明显优于当今国际最优的时序数据库系统。

产品功能

查询引擎

IoTDB 内置查询引擎负责所有用户命令的解析、生成计划、交给对应的执行器、返回结果集。IoTDB 通过查询引擎提供了 JDBC 访问 API,简单易用。

元数据管理

IoTDB 的元数据模型采用树状结构组织,一个实例包含多个 Storage Group (类似于 Namespace、Database 的概念),一个 Storage Group 里包含多个 Device ,每个 Device 包含多个 Measurement , Measurement 对应的时间序列数据最终存储在 TsFile Chunk 里。另外,为了方便数据过期,每个 Stroage Group 的数据会以时间范围的形式切分存储,默认以周为单位,使用不同的目录存储。

存储引擎

IoTDB 存储引擎基于 LSM Tree 结构设计,写入的数据先记录 WAL,再写到内存 memtable,在后台逐步刷到磁盘 TsFile;磁盘上的 TsFile 通过一定的规则进行 Compaction,保证查询效率。

同步工具

IoTDB 支持在边缘侧、云端部署,通常在边缘侧采集的数据有同步到远端进一步分析处理的需求;IoTDB 提供了同步工具,支持将端/设备上的 TsFile 数据往云端同步。

连接器

IoTDB 支持与现有的大数据处理系统,包括 Hive、Spark 等无缝连通,IoTDB 提供了 hive-tsfile 、 spark-tsfile 、 spark-iotdb 等连接器,让 Hive、Spark 能直接访问 tsfile 格式的数据,以及访问 IoTDB 的数据。

产品优势

  1. 针对物联网模型做了定制化,提供 JDBC 访问方式,支持边云一体化部署。

  2. 存储使用 Hadoop File system,并提供多种 connector,与现有大数据生态无缝打通。

  3. 开放的 TsFile 存储格式,设备模型简单易理解。

IoTDB 架构图

IoTDB 于 2017 年 1 月正式在 Github 上开放 IoTDB 底层文件存储格式 TsFile。2017年至2018年,IoTDB保持持续开发,先后发布0.3,0.4,0.5,0.6,0.7等五个版本。

目前,IoTDB已完成与开源大数据生态(Hadoop、Spark)的集成,实现了相关的编程SDK(JDBC形式)、导入导出工具、可视化工具、命令行交互工具、数据回传工具等多项 IoTDB 辅助工具,大幅度提升了IoTDB的适应力。截止目前,IoTDB核心模块有效代码达7万余行,通过DSL语言生成代码6万余行。IoTDB代码提交更新次数超过1300次,用户反馈、建议与回复200余次。

应用场景

云数据管理

在高速网络(车联网等)的场景中,安装有传感器的汽车可以以一定频率收集自身的监视信息(行驶状态等)。 通常,这些汽车设备的硬件配置有限,并且难以进行复杂的应用。 轻量级的IoTDB(IoTDB客户端)应运而生。 借助JDBC API(或MQTT),它可以使用窄带IoT或4G/5G发送数据,从而将设备和云连接在一起。

高端设备

在高端制造业中,有很多设备配备有传感器来收集工作状态数据,例如气象站,风力涡轮机是常见的高端设备。这些设备如果支持Java或Go(正在开发中),则可以运行TsFile在本地存储数据。通过这种方式,TsFile可以提供具有高吞吐、高压缩率和毫秒级查询延迟的数据管理功能。结合TsFile-Sync工具,可以将TsFiles同步到数据中心。

本地控制器

在工厂现场,LAN网络下有数十台设备。 IoTDB可以安装在工厂的本地控制器服务器上,以从这些设备接收数据。 安装有IoTDB的本地服务器(普通PC或工作站)可以使用类SQL存储和查询数据。 此外,使用TsFile-Sync工具,可以将本地控制器上的TsFile文件传输到云上安装有IoTDB实例的数据中心。

发展历程

  • 2018年,IoTDB进入了开源孵化期。同年11月,IoTDB 成为Apache旗下孵化器项目,先后吸引了来自德国、美国、澳大利亚等国际同行关注。

  • 2019年IoTDB 实现快速成长。项目相继获得优秀大数据产品、中国优秀开源项目一等奖,并在中国工业互联网峰会作为重要成果作主题发布。

  • 2020年IoTDB 成功毕业。Apache IoTDB 升为全球顶级项目,这标志着 IoTDB 建成了全球认可的国际开源社区,并成为我国高校在Apache 社区主导的唯一孵化成功的项目。

  • 2021年IoTDB入选十三五成果。Apache IoTDB参加国家“十三五”科技创新成就展。

相关资料

IoTDB官方网站:http://iotdb.apache.org/zh/
IoTDB开源地址:https://github.com/apache/iotdb

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接