目录
产品简介
iotdb 是清华大学主导的 apache 孵化项目,是一款聚焦工业物联网、高性能轻量级的时序数据管理系统,提供数据采集、存储、分析的功能。iotdb 提供端云一体化的m6米乐安卓版下载的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 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 的数据。
产品优势
- 针对物联网模型做了定制化,提供 jdbc 访问方式,支持边云一体化部署。
- 存储使用 hadoop file system,并提供多种 connector,与现有大数据生态无缝打通。
- 开放的 tsfile 存储格式,设备模型简单易理解。
iotdb 架构图
:::
主要特点
-
高吞吐量读写
apache iotdb中可以支持数百万个低功耗和智能联网设备的高速写访问。 它还提供数据快速读取访问以查询。
-
高效的目录结构
apache iotdb可以对拥有复杂组织关系的物联网设备进行树形结构管理,并使用通配符对这些元数据进行模糊匹配。
-
丰富的查询语义
apache iotdb可以支持跨设备和传感器的时间对齐查询,在时间维度上的聚合(降采样)等。
-
硬件成本低
apache iotdb可以实现磁盘存储的高压缩率。
-
灵活的部署
apache iotdb可以为用户提供云上的一键式安装、终端访问工具以及边-云之间的协同(数据同步工具)。
-
与开源生态系统的紧密集成
apache iotdb支持许多大数据软件生态系统,例如hadoop、spark、flink和grafana(可视化工具)。
发展历程
iotdb 是清华自研时间序列数据库,2014年项目启动,2018年11月18号 iotdb 正式进入 apache 孵化器,成为中国高校首个进入 apache 孵化器的项目。
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