IoTDB

一句换总结什么是IoTDB
IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。

为什么要用IoTDB
常见数据
关系数据
关系数据库Oracle 、 MySQL 、 SQL Server

工业常见
时序数据
时序数据库

这来源于工业时序数据本身存在的特点。
它不仅有传统大数据的特征,如数据量大(海量性)、数据上报频繁(高频性),对实时性、准确性的要求也越来越高。
示例:
电厂:大唐,太极股份
车厂:长安
轨道交通:中车

工业时序数据库的历史发展
1999-RRDtool:最早提出了专门面向时序数据存储、处理的方法。存储空间的手动设定,且存储能力难以扩展。
2010-OpenTSDB:基于分布式存储的时序数据库。部署复杂和维护成本。
2013-InfluxDB:主要面向云端服务监控,单机版开源,难以管理如此大的数据量,且随着存储时长的增加,查询性能会大幅下降。
now-Apache IoTDB

更好的可拓展性
更好的实时性
更好的并发性
IoTDB的起源:T大为三一重工设计

树状结构,接近物联网设备管理层级

列式存储文件格式TsFile

支持三大计算范式:
流式数据到达时计算
查询时计算
离线计算

IoTDB架构:

时序文件、数据库引擎和分析引擎,其中分析引擎是可选的分析组件。

使用IoTDB
环境要求:需具备 JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。

使用方式:
使用cli进行操作
使用应用编程接口

./start-cli.sh -h 127.0.0.1 -p 6667

IoTDB 采用树形结构定义数据模式,根节点默认为 root ,节点之间用“.”分割。

例子中涉及的数据的时间序列在 IoTDB 中会被命名为“root.BHSFC.Q1.W002.WROT_HubTmp”。

IoTDB 的数据概念
时间戳:为一个数据采集的时间点
测点:工业场景中,一个传感器或元件采样一个物理量。
时间序列:测点监测的数据代表时间序列。

元数据管理:
数据库管理
设备模板管理
创建->挂载->激活->解除->卸载->删除
时间序列管理

数据点:
时间戳(Long)和数据组成
注意 1:不允许将一个完整路径(如上例的root.ln.wf01.wt01.status) 设置成 database。
注意 2:一个时间序列其前缀必须属于某个 database。在创建时间序列之前,用户必须设定该序列属于哪个database。只有设置了 database 的时间序列才可以被持久化在磁盘上。
注意 3:被设置为数据库的路径总字符数不能超过64,包括路径开头的root.这5个字符。

一个前缀路径一旦被设定成 database 后就不可以再更改这个 database 的设定。
一个 database 设定后,其对应的前缀路径的祖先层级与孩子及后裔层级也不允许再设置 database(如,root.ln设置 database 后,root 层级与root.ln.wf01不允许被设置为 database)。

聚合函数

空值填充:
前值填充
线性填充
特定值填充

元数据管理
TsFile管理、存储组管理、时间序列管理、元数据模板管理和节点管理。

核心TsFile

列式存储文件格式TsFile

设计要求:
时序模型:专门为物联网设计的数据模型,每个时间序列与特定设备相关联,所有设备通过分层结构相互连接;
高压缩比:为时间序列量身定制的列式存储格式,将数据按设备进行组织,并保证每个序列的数据连续存储,最小化存储空间;
高效写入:数据可以按块写入,能够达到最大吞吐;
高效访问:为时间、设备、物理量构建了相关索引结构,实现快速数据检索。

特性:
可独立使用:可以使用 SDK 直接读写 TsFile,使得一些轻量级的数据读写场景成为可能。
高效存储和压缩:TsFile 采用先进的压缩技术,可最大限度地减少存储需求磁盘空间消耗并提高系统效率,从而减少磁盘空间消耗和优化数据管理。相比通用文件格式,压缩比可提升 20% 以上。
灵活的元数据管理架构:与传统写入方式不同,TsFile 支持灵活的元数据管理,无需预定义元数据即可实现数据写入。这种适应性结合时序数据的动态特性,简化了数据写入和管理过程。结合列式数据写入模式,相比通用文件格式,写入吞吐可提升 2-3 倍。
高查询性能:通过设备、传感器和时间维度索引,TsFile 实现了基于特定时间范围的时序数据快速过滤和查询。相比通用文件格式,查询吞吐可提升 2-10 倍。
协同同步:TsFile 是时序数据库 IoTDB 的底层存储文件格式,可与 IoTDB 形成可插拔的存算分离架构。通过 TsFile,用户可对 IoTDB 中的数据进行便捷的加载与导出。同一个 TsFile 可以在嵌入式设备、边缘服务器和云节点中灵活部署和同步。
开放集成:TsFile 支持与 Spark、Flink 等大数据软件建立无缝生态集成,从而确保跨不同数据处理环境的兼容性和互操作性,实现时序数据跨生态深度分析。

Page:一段连续的时序数据,存储的基本单元,按时间升序排序,时间戳和值各有单独的列进行存储。
Chunk:由同一序列的多个连续的 Page 组成,一个文件同一个序列可以存储多个 Chunk。
ChunkGroup:由一个设备的一至多个 Chunk 组成,多个 Chunk 可共享一列时间存储(多值模型)。
Index:TsFile 末尾的元数据文件包含序列内部时间维度的索引和序列间的索引信息。

java

   
      org.apache.iotdb
      iotdb-thrift-cluster
      ${project.version}
   

参考
https://iotdb.apache.org/zh/UserGuide/latest/QuickStart/QuickStart.html
https://xie.infoq.cn/article/4febb6386943d2c813de42ab2
https://xie.infoq.cn/article/0b7417cdafda1ff44524338ac
https://xie.infoq.cn/article/88ce54d3a3117daced29a443f
https://xie.infoq.cn/article/f2f9eed92234bfe9d4d15b53f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值