ApacheIoTDB 0.13 版本核心特性与工业应用
复杂工业场景
物联网时序数据概述
时序数据是设备物理量的数字化记录,涵盖时间、物理量(如航速、载荷)等,在工业场景中表现为设备运行状态和工况的实时记录。
采集、存储、查询的复杂性
- 采集复杂性:数据模式多样(宽表、长表、稀疏表),设备测点独立采集,时间不齐,频率不一,超高频采样。
- 存储复杂性:数据乱序到达,需支持乱序写入、更新修复,存在大量取值异常和缺失数据。
- 查询复杂性:需支持时间范围过滤、值过滤、时间维度聚合、降采样、时频变换、序列分割等高级分析。
技术选型探讨
数据模型选型
- 关系模型:单表列数和行数限制,丢失业务语义。
- 标签模型:适合描述装备层级关系,但灵活性不足。
- 树形结构:适合描述装备组成和层级关系,保留业务语义,灵活性强。
文件格式选型
- CSV/ORC/Parquet:流行但存在冗余存储、查询效率低等问题。
建模方式对比
- 多个设备一个文件:文件数可控,但设备名和测点名重复。
- 一个设备一个文件:查询速度快,但文件数随设备数增加而增加。
- 一个序列一个文件:查询速度快,无冗余存储,但文件数随序列数增加而增加。
技术细节
- 维度技术:采用树形结构,支持设备、物理量、时间、值的存储。
- 时序模型:支持对齐和非对齐序列写入,允许乱序写入、覆盖、删除。
- 存储模型:采用列式存储、编码、压缩技术,优化写入和查询性能。
- 文件结构:采用TsFile格式,支持高效存储和查询。
- 存储引擎:采用tLSM引擎,支持乱序空间和顺序空间合并。
ApacheIoTDB v0.13 新特性
产品架构
- IoTDB-Server:时序文件数据库引擎。
- 数据库管理引擎:支持元数据管理、分布式等功能。
- 连接器:支持Flink、Spark、Hive等大数据系统。
- 分析引擎:支持异常检测、机器学习、数据分析等。
- 可视化平台:支持Grafana、IoTDB-CLI等工具。
八大优势
- 轻量化部署。
- 生态丰富。
- 物联网专属模型。
- 数据处理丰富。
- 高效存储引擎。
- 低延迟查询。
- 开放的系统架构。
- 高压缩比。
生态集成
覆盖采集、处理、分析、应用全生命周期,与PLC4X、Pulsar、Flink、Spark、Grafana、Zeppelin等系统无缝集成。
性能对比
- 写入性能:支持每秒千万点吞吐,写入延迟低。
- 查询性能:支持快速数据过滤、高效聚合查询、降采样查询等。
应用案例
气象应用
- 存储全国10万个国家级地面实况观测站数据。
- 提升数百倍性能,支持更长时间的实况数据存储与访问。
- 解决数据乱序问题。
轨道交通应用
- 存储车辆监控数据,实现故障分析统计和趋势化分析。
- 由500ms采样升级为200ms采样。
- 每台IoTDB实例实现日增4140亿数据点管理,节省92%硬件成本。
- 提高检修效率,节省检修成本。
电力应用
- 构建新能源时序数据应用系统,服务60余家发电企业/电厂。
- 每家电厂的日数据量达到17亿以上,存储量级达3万亿。
- 减少95%运维成本。
数字工厂(端边云协同)
- 收纳n90个设备、27万测点。
- 提升写入和查询性能。
IoTDB发版历史
- 0.12.0版本:支持复杂工业采集场景、C++编程、设备模板、数据分析能力。
- 0.13.0版本:支持多元/对齐序列与设备模板,更快的顺乱序数据分离与合并,触发器+查询分析,更多功能(SELECT ... INTO ...、Add metric framework、Support group by multi level、Support REST API、New Grafana plugin)。
融入开源社区
- 提供QQ交流群、微信群、邮件列表、JIRA、官方网站、微信公众号等社区资源。