IoTDB 简介
IoTDB 是一款低成本、高可用的国产全自研工业时序数据库,采用端边云协同的轻量化结构,支持一体化的物联网时序数据收集、存储、管理与分析,具有多协议兼容、高压缩比、高通量读写、工业级稳定、简便运维等特点。
IoTDB 架构以自主研发的时序数据专用文件存储格式 TsFile 为基础,支撑三大核心组件:面向端侧具备嵌入式数据存储能力的 IoT Node、高性能时序数据管理引擎 Data Node,以及具备机器学习训练推理能力的 AI Node。
TimescaleDB 简介
TimescaleDB 是一款由 Timescale 公司(于 2025 年 6 月 17 日更名为“TigerData”)开发的开源时序数据库。该数据库基于 PostgreSQL 扩展,通过额外的 SQL 函数和表结构,专门为大规模时序数据提供了存储优化、性能提升及分析功能支持。
综合对比
IoTDB 功能
1. 双数据模型
树模型-离散点位管理:层级化方式管理测点,实现亿级时间序列管理规模,支持序列级时间序列权限控制
结构化表模型-统一设备管理:支持标准 SQL 语法,原生支持无模式写入,实现动态静态数据统一管理
双模型转换:允许通过简单 SQL 语句在原始数据树上创建虚拟表视图,实现树模型与表模型的自然映射
2. 部署模式
多种部署模式:支持单机模式、双活模式、集群模式部署,保障多场景高扩展、高可用
端边云协同:实现设备端侧-厂站边侧-集团云侧协同传输,实现数据互联互通
高效的数据迁入、迁出能力:无需解压和二次处理,接收端 CPU 消耗节省 95%,网络带宽节省 90%
3. 时序数据写入与存储
自研 TsFile 时序数据标准文件格式:相比通用文件格式,压缩比提升 20% 以上,达到 10X 无损压缩比、100X 有损压缩比、
高吞吐写入:TsFile 支持列式数据写入,达到毫秒级高频数据接入,支持千万/秒写入速度
乱序数据处理:首创乱序分离存储引擎,乱序数据处理效率达 4 倍以上
模态融合:支持非结构化对象/文件管理,可自定义存储、解析文件
4. 时序数据查询与分析
丰富查询功能:满足时序数据特性查询需求,支持降采样时序对齐、时序分段查询、数据补齐与修复等功能
高级分析能力:支持标量函数(UDSF)、聚合函数(UDAF)、表值函数(UDTF),实现趋势查询、窗口函数、嵌套查询
联邦查询:无缝接入外部数据源业务数据,实现跨系统、多模态数据分析
5. AI 训推一体化
AI Node 节点:支持即插即用的一体化时序数据机器学习模型训练推理,支撑工业智能分析应用
自研时序大模型 Timer:支持任意长度输入,产生多种概率预测结果,在国际时序预测榜单取得领先预测效果和推理效率
自动完成业务分析:结合 IoTDB MCP Server 功能,基于自然语言交互,实现智能关联分析
6. 软硬件生态系统
全生命周期生态集成:支持 MQTT、OPC UA 等工业协议,与 KafKa、Spark、Flink 等大数据系统深度集成,支持 Grafana、DataEase 等可视化工具,支持 Kubernetes 部署
硬件生态扩展:联合集成边缘智能硬件板、系统控制器、智能一体机,工业智能化能力具象化为可部署的实体解决方案
兼容国产化生态:兼容国产 CPU、国产服务器操作系统
7. 易用性工具
可视化控制台 Workbench:图形化操作,一站实现时序数据可视化管理
集群监控工具:帮助监控集群健康状态,并进行集群调优和运维
一键式集群管理工具:支持集群部署、启停、更新、扩容等功能,实现复杂集群一键式指令下发
TimescaleDB 功能
1. 时序存储管理
超表(Hypertable):自动按时间维度分区,支持跨维度分区(如设备 ID+时间)
混合行列式存储引擎(Hypercore):行式存储用于存储最新数据,列式存储用于提高分析性能
分布式架构:如果主实例不可用,将自动故障转移到高可用性 (HA) 副本
2. 时序数据写入
写入数据:可以使用 INSERT、UPDATE 和 DELETE 语句在常规表和超表中添加和修改数据
3. 持续聚合引擎
增量刷新机制:基于 Postgres 物化视图的持续聚合,仅计算变更数据而非全量更新
近实时聚合:支持低延迟的聚合数据查询,降低资源消耗
4. 高性能时序处理
时段函数(Time Bucket):提供灵活的时间粒度聚合
超函数(Hyperfunction):旨在高效处理、聚合和分析海量数据,同时保持高性能
5. 全生命周期数据管理
分层存储策略(Tiered Storage):高性能存储层存储最新且最常查询的数据,对象存储层存储很少访问且性能要求较低的数据
数据保留策略(Data Retention):自动清理过期数据,支持与持续聚合联动实现数据降采样
生态支持:支持写入、查询、流处理、可视化、系统管理等维度软件生态集成
6. 无缝兼容性
完整 SQL 支持:100% 兼容 PostgreSQL 生态,支持所有 PG 工具链
IoTDB 数据建模概念
数据模型(sql_dialect):IoTDB 支持两种时序数据模型(SQL语法),管理的对象均为设备和测点树:以层级路径的方式管理数据,一条路径对应一个设备的一个测点表;以关系表的方式管理数据,一张表对应一类设备。
元数据(Schema):元数据是数据库的数据模型信息,即树形结构或表结构。包括测点的名称、数据类型等定义。
设备(Device):对应一个实际场景中的物理设备,通常包含多个测点。
测点(Timeseries):又名:物理量、时间序列、时间线、点位、信号量、指标、测量值等。测点是多个数据点按时间戳递增排列形成的一个时间序列。通常一个测点代表一个采集点位,能够定期采集所在环境的物理量。
编码(Encoding):编码是一种压缩技术,将数据以二进制的形式进行表示,可以提高存储效率。
压缩(Compression):IoTDB 在数据编码后,使用压缩技术进一步压缩二进制数据,提升存储效率。
TimescaleDB 数据建模及部分功能概念
超表(Hypertable):基于普通的 PostgreSQL 表创建,可以使用标准 SQL 语法对超表进行插入和查询等操作,并在普通表的基础上超表添加了自动分区、压缩和连续聚合的功能,以更高效地存储和查询时间序列数据。
块(Chunk):Hypertable 按照时间范围分割成的多个连续的数据块,以存储时序数据。
时段(Time Buckets):实现实时分析的核心功能,可以将 Hypertable 中的数据按时间粒度聚合为不同的时段单元。
IoTDB 数据模型
IoTDB 提供了两种数据建模方式——树模型和表模型,其特点分别如下:
树模型:以测点为对象进行管理,每个测点对应一条时间序列,测点名按
.
分割可形成一个树形目录结构,与物理世界一一对应,对测点的读写操作简单直观。表模型:推荐为每类设备创建一张表,同类设备的物理量采集都具备一定共性(如都采集温度和湿度物理量),数据分析灵活丰富。
两种模型有各自的适用场景,以下表格从适用场景、典型操作等多个维度对树模型和表模型进行了对比。用户可以根据具体的使用需求,选择适合的模型,从而实现数据的高效存储和管理。
注意:
同一个集群实例中可以存在两种模型空间,不同模型的语法、数据库命名方式不同,默认不互相可见。
在通过客户端工具 Cli 或 SDK 建立数据库连接时,需要通过 sql_dialect 参数指定使用的模型语法(默认使用树语法进行操作)。
TimescaleDB 数据模型
TimescaleDB 的底层数据结构为 Hypertable(超表),是一种逻辑上的时间分区表。每个 Hypertable 可以自动将数据按时间分割成多个块(Chunk),以实现对时序数据的高效管理。
时间分区方面,每个 Hypertable 块都会被分配一个时间范围,并且仅包含该范围内的数据。当运行查询时,TimescaleDB 会识别正确的块并对其运行查询,而无需遍历整个表。默认情况下,每个 Hypertable 块会保存 7 天的数据,用户可以根据自己的需求进行更改。
空间分区方面,TimescaleDB 支持在创建超表时(即表为空时),在非时间列(如位置或设备 UUID)上添加分区维度,并指定分区数量,以适配特定条件查询。随着数据增长,用户也可以调整分区数量以提升查询性能。
IoTDB 应用场景
能源电力:管理电力生产、传输、存储和消费过程中的海量时序数据,实现电力系统实时监控、精准预测和智能调度,有效提升能源利用效率,降低运营成本。
航空航天:管理飞机、火箭、卫星等设备在设计、制造、试飞、运行等全流程中产生的海量时序数据,实现对飞行任务中关键系统的精准监测与分析。
钢铁冶炼:对冶炼设备和生产线进行实时数据管理,实现对核心生产环节的智能监测、精准控制与高效管理,提升产能、优化产品质量、降低能耗。
石油石化:管理供油气管道、储配站、调控中心等设备数据,实现数据稳定实时展示与系统监控报警,为公共安全保障及石油管网数智化升级贡献力量。
交通运输:管理列车、地铁、船舶、汽车等设备的运行、状态、位置信息等数据,为铁路、船舶等构建起稳定可靠的智能交通系统管理基础。
智慧工厂:满足大规模设备接入需求,支持设备状态监测、故障诊断、预测性维护等核心业务应用,提升生产、运营效率。
TimescaleDB 应用场景
能源消耗分析:利用能源消耗数据制定数据驱动型决策。
交通与地理空间数据分析:通过地理空间交通数据优化收益。
比特币区块链分析:基于比特币区块链开展自主研究,挖掘交易、区块、费用与收益之间的关联。
金融交易数据解析:绘制关注股票的交易高低点走势图。
物联网传感器数据分析:生成模拟物联网传感器数据集并执行基础查询。