时序数据管理引擎-Apache IoTDB
IoTDB (Internet of Things Database) 是一个时序数据的数据管理系统,可以为用户提供数据收集、存储和分析等特定的服务。由于其轻量级的结构、高性能和可用的特性,以及与Hadoop和Spark生态的无缝集成,满足了工业IoTDB领域中海量数据存储、高吞吐量数据写入和复杂数据分析的需求。采用Java开发并在ApacheV2.0协议下授权。_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _ \
| | .--.|_/ | | \_| | | `. \ | |_) |
| | / .'`\ \ | | | | | | | __'.
_| |_| \__. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version x.x.x
其源于清华大学,为全球最大开源基金会 Apache Top-Level 项目,是目前唯一由我国高校发起的 Apache 基金会 Top-Level 项目,也是 Apache 基金会旗下第一个物联网数据管理领域开源项目。Apache IoTDB 采用端边云协同的轻量化结构,支持一体化的物联网时序数据收集、存储、管理与分析,具有多协议兼容、高压缩比、高通量读写、工业级稳定、简便运维等特点。同时也是 Apache 基金会唯一的时序数据库顶级项目,从 0 到 1 自主研发,底层数据文件到分布式架构均不依赖第三方系统。允许企业修改、使用项目代码用于商业化应用,开源协议稳定,无需担心变更。
功能与特点
灵活的部署策略,为用户提供了一个在云平台或终端设备上的一键安装工具,以及一个连接云平台和终端上的数据的数据同步工具。
硬件成本低,可以达到很高的磁盘存储压缩比。
高效的目录结构,支持智能网络设备对复杂时间序列数据结构的高效组织,同类设备对时间序列数据的组织,海量复杂时间序列数据目录的模糊搜索策略。
高吞吐量读写,支持数以百万计的低功耗设备的强连接数据访问、高速数据读写,适用于上述智能网络设备和混合设备。
丰富的查询语义,支持跨设备和测量的时间序列数据的时间对齐、时间序列字段的计算(频域转换)和时间维度的丰富聚合函数支持。
学习成本非常低,支持类似sql的语言、JDBC标准API和易于使用的导入/导出工具。
与先进的开放源码生态系统的无缝集成,支持分析生态系统,如Hadoop、Spark和可视化工具(如Grafana)。

时序数据标准文件格式
底层时序数据文件格式 TsFile 为 Apache Top-Level 项目,相比通用文件格式,写入/查询吞吐、压缩比可提升 3-15 倍,显著降低存储成本,并实现在线、离线数据高效流转。

双时序模型
树、表双模型支持,同时适配工业监控场景与设备管理场景,架构灵活性与分析效率双保障,方便用户根据自身需求选择更合适的模型。

千万级数据写入
采用列式写入模式,实现高频数据毫秒级接入,并首创乱序分离存储引擎,实现乱序数据无感写入,轻松应对海量数据高并发写入需求。

毫秒级查询响应
通过高效的索引机制和查询优化,大幅提升数据查询效率,并支持降采样查询、时序分段查询、数据补齐与修复等操作,内置超 70 种 UDF 函数帮助分析。

与同类产品的比较

最新版本:1.1
v1.1.0 现已发布,新功能与改进如下:
支持按设备对齐按时间排序
支持显示查询命令
支持 kill 查询命令
在 SHOW REGIONS 中支持新的命令格式
支持区域迁移
支持显示特定数据库的区域
添加 SQL show variables,可以显示当前集群变量
聚合查询支持 GROUP BY VARIATION
支持 SELECT INTO 中的数据类型转换
支持 DIFF 作为 IoTDB 中的内置标量函数
执行 show regions 时显示 Region 创建时间
实现 COUNT_IF 内置聚合函数
聚合查询支持 GROUP BY CONDITION
在 datanode-engine.properties 中启用修改 dn_rpc_port 和 dn_rpc_address
支持 docker 部署
在显示区域中将 SeriesSlotId 重命名为 SeriesSlotNum
改进 NodeStatus 定义
升级了 GetSlots SQL
为 WHERE & HAVING 子句添加输出类型检查,拒绝 WHERE & HAVING 子句中存在返回类型不是 boolean 的表达式
修复了 IoTConsensus 中旧快照未被删除的问题
向 RegionGroup 添加状态 “Discouraged”
在查询队列满时等待查询资源,而不是直接抛出异常
将 STARTUP_RETRY_INTERVAL_IN_MS 从 30 秒更改为 3 秒
更多 Bug Fixed 可在更新公告中查看。
项目主页:https://github.com/apache/iotdb