IoTDB 简介
IoTDB 是一款低成本、高可用的国产全自研工业时序数据库,采用端边云协同的轻量化结构,支持一体化的物联网时序数据收集、存储、管理与分析,具有多协议兼容、高压缩比、高通量读写、工业级稳定、简便运维等特点。
IoTDB 架构以自主研发的时序数据专用文件存储格式 TsFile 为基础,支撑三大核心组件:面向端侧具备嵌入式数据存储能力的 IoT Node、高性能时序数据管理引擎 Data Node,以及具备机器学习训练推理能力的 AI Node。
TDengine 简介
TDengine 是一款时序数据库,为物联网、工业互联网等场景优化设计,能将物联网设备产生的时序数据进行汇聚、存储、分析和分发。
综合对比
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:图形化操作,一站实现时序数据可视化管理
集群监控工具:帮助监控集群健康状态,并进行集群调优和运维
一键式集群管理工具:支持集群部署、启停、更新、扩容等功能,实现复杂集群一键式指令下发
TDengine 功能
1. 写入数据
完全兼容 SQL,允许用户使用标准的 SQL 语法进行数据写入
支持无模式写入
2. 查询数据
提供标准 SQL 查询语法
针对时序数据特点新增语法和功能,如降采样、插值、时间加权平均等
支持用户自定义函数(UDF)
3. 流式计算
提供实时处理写入数据流的能力
支持连续查询
支持事件驱动的流式计算
4. 数据订阅
可以通过 SQL 控制订阅的数据内容,
使用和 Kafka 相同的 API 来订阅一张表、一组表、全部列或部分列、整个数据库的数据
5. 集群功能
通过增加节点线性提升系统处理能力,实现水平扩展
通过多副本技术提供高可用性
6. 集成工具
能够和 Grafana、Google Data Studio、Power BI、Tableau 以及国产 BI 工具集成,并提供图形化管理页面
提供交互式命令行程序
7. 语言连接器
提供多种语言的连接器,包括 C/C++、Java、Go、Python、C# 等。
提供 RESTful 接口
IoTDB 数据建模概念
数据模型(sql_dialect):IoTDB 支持两种时序数据模型(SQL语法),管理的对象均为设备和测点树:以层级路径的方式管理数据,一条路径对应一个设备的一个测点表;以关系表的方式管理数据,一张表对应一类设备。
元数据(Schema):元数据是数据库的数据模型信息,即树形结构或表结构。包括测点的名称、数据类型等定义。
设备(Device):对应一个实际场景中的物理设备,通常包含多个测点。
测点(Timeseries):又名:物理量、时间序列、时间线、点位、信号量、指标、测量值等。测点是多个数据点按时间戳递增排列形成的一个时间序列。通常一个测点代表一个采集点位,能够定期采集所在环境的物理量。
编码(Encoding):编码是一种压缩技术,将数据以二进制的形式进行表示,可以提高存储效率。
压缩(Compression):IoTDB 在数据编码后,使用压缩技术进一步压缩二进制数据,提升存储效率。
TDengine 数据建模概念
采集量:通过各种传感器、设备或其他类型的采集点所获取的物理量
标签:附着在传感器、设备或其他类型采集点上的静态属性,这些属性不会随时间发生变化
数据采集点:在一定的预设时间周期内或受到特定事件触发时,负责采集物理量的硬件或软件设备
表:TDengine 采取了“一个数据采集点一张表”的设计策略,即要求为每个数据采集点单独建立一张表
超级表:能将某一特定类型的数据采集点聚集在一起,形成一张逻辑上的统一表
子表:数据采集点在逻辑上的一种抽象表示,它是隶属于某张超级表的具体表
虚拟表:一种不存储实际数据而可以用于分析计算的表,数据来源为其它真实存储数据的子表、普通表,通过将各个原始表的不同列的数据按照时间戳排序、对齐、合并的方式来生成虚拟表
库:用于管理一组表的集合
时间戳:每一条上报的时序数据自带的时间戳
IoTDB 数据模型
IoTDB 提供了两种数据建模方式——树模型和表模型,其特点分别如下:
树模型:以测点为对象进行管理,每个测点对应一条时间序列,测点名按
.
分割可形成一个树形目录结构,与物理世界一一对应,对测点的读写操作简单直观。表模型:推荐为每类设备创建一张表,同类设备的物理量采集都具备一定共性(如都采集温度和湿度物理量),数据分析灵活丰富。
两种模型有各自的适用场景,以下表格从适用场景、典型操作等多个维度对树模型和表模型进行了对比。用户可以根据具体的使用需求,选择适合的模型,从而实现数据的高效存储和管理。
注意:
同一个集群实例中可以存在两种模型空间,不同模型的语法、数据库命名方式不同,默认不互相可见。
在通过客户端工具 Cli 或 SDK 建立数据库连接时,需要通过 sql_dialect 参数指定使用的模型语法(默认使用树语法进行操作)。
TDengine 数据模型
在工业物联网领域,结构化数据采集是常态。为了降低用户的使用门槛,TDengine 沿用传统关系型数据库模型进行数据管理。同时,考虑到时序数据的独特属性,TDengine 采用 “一个数据采集点一张表” 的设计方案,即每个数据采集点都对应一张独立的数据表。
这一设计虽能对单个数据采集点实现高效管理,但随着设备数量的爆发式增长,表数量也呈指数级上升,给表的维护管理和跨表聚合操作带来困难。为解决该问题,TDengine 引入超级表概念。超级表结构包含至少一个时间戳列、多个采集量列以及标签列,其中,普通表代表具体数据采集点,超级表则作为具有相同属性的数据采集点集合,有效简化了表管理和聚合查询流程。
然而,实际应用场景更为复杂,一台设备往往搭载多种传感器,且各传感器数据采集频率差异显著,难以用单张表完整描述设备数据。若需整合多传感器数据进行分析,只能依赖多级关联查询,不仅影响使用便捷性,还会降低系统性能。针对这一问题,TDengine 推出虚拟表机制,涵盖虚拟超级表、虚拟子表和虚拟普通表类型。虚拟表仅支持查询操作,无法写入或删除数据,但其在查询功能上与真实表保持一致。
IoTDB 应用场景
能源电力:管理电力生产、传输、存储和消费过程中的海量时序数据,实现电力系统实时监控、精准预测和智能调度,有效提升能源利用效率,降低运营成本。
航空航天:管理飞机、火箭、卫星等设备在设计、制造、试飞、运行等全流程中产生的海量时序数据,实现对飞行任务中关键系统的精准监测与分析。
钢铁冶炼:对冶炼设备和生产线进行实时数据管理,实现对核心生产环节的智能监测、精准控制与高效管理,提升产能、优化产品质量、降低能耗。
石油石化:管理供油气管道、储配站、调控中心等设备数据,实现数据稳定实时展示与系统监控报警,为公共安全保障及石油管网数智化升级贡献力量。
交通运输:管理列车、地铁、船舶、汽车等设备的运行、状态、位置信息等数据,为铁路、船舶等构建起稳定可靠的智能交通系统管理基础。
智慧工厂:满足大规模设备接入需求,支持设备状态监测、故障诊断、预测性维护等核心业务应用,提升生产、运营效率。
TDengine 应用场景
智慧城市:存储和管理城市交通、照明、环境监测(PM2.5、PM10)、给排水、燃气监测等数据
智慧工厂:存储生产设备的工业传感器数据(如电流、电压、设备状态)
智慧水务:在水环境治理系统中存储液位、电流、硫化氢、雨量等数据
地震监测与预警:存储地震波形数据,实现实时波形展示
能源电力:管理风机/电表等上报的能源数据,实现了设备监测与预测
车联网:处理车辆电池、自动驾驶传感器数据,方便分析与维护