一、TDengine TSDB 简介
TDengine TSDB 是一款高性能、集群开源、云原生的时序数据库(TSDB),专为物联网 IoT、工业互联网、电力行业、IT 运维等时序数据场景深度优化,具备优秀的弹性伸缩能力。
内置缓存、流式计算、数据订阅等能力,可大幅简化系统架构设计,降低研发与运维成本。能够高效汇聚、存储、分析、分发设备采集器每日 TB~PB 级海量时序数据,支持业务实时监测、异常预警与实时业务洞察。
官方文档:https://docs.taosdata.com/
二、TDengine 产品版本分类
TDengine 整体分为三大产品线:
-
TDengine TSDB-OSS 开源版
开源免费、高性能云原生时序数据库,内置缓存、流计算、数据订阅,轻量化易部署,适合学习、个人项目、中小型业务使用。
-
TDengine TSDB-Enterprise 企业版
支持私有化部署,可部署在边缘机房、本地内网、公有云 / 私有云,拥有开源版不具备的高级企业特性,适合政企生产级落地。
-
TDengine Cloud 云服务版
全托管物联网与工业大数据云平台,无需自建运维,开箱即用,适合中小规模业务快速上线。
三、各版本功能对比
| 功能分类 | 功能项 | 社区版 | 企业版 | Cloud 版 |
|---|---|---|---|---|
| 数据库操作和管理 | 数据写入 | ✅ | ✅ | ✅ |
| 数据查询 | ✅ | ✅ | ✅ | |
| 分布式集群 | ✅ | ✅ | ✅ | |
| 命令行、导入导出、基础工具 | ✅ | ✅ | ✅ | |
| 三副本存储 | ✅ | ✅ | ✅ | |
| 两副本存储 | ❌ | ✅ | ✅ | |
| 分级存储 | ❌ | ✅ | ✅ | |
| 数据重组 | ❌ | ✅ | ✅ | |
| 视图功能 | ❌ | ✅ | ✅ | |
| 共享存储 | ❌ | ✅ | ❌ | |
| 附加功能 | 数据缓存 | ✅ | ✅ | ✅ |
| 数据订阅 | ✅ | ✅ | ✅ | |
| 流计算 | ✅ | ✅ | ✅ | |
| 数据可视化 | ✅ | ✅ | ✅ | |
| 多语言连接器 | ✅ | ✅ | ✅ | |
| Web 管理工具 | ✅ | ✅ | ✅ | |
| 数据备份与恢复 | ❌ | ✅ | ✅ | |
| 数据复制 | ❌ | ✅ | ✅ | |
| 数据库双活 | ❌ | ✅ | ❌ | |
| VPC 对等连接 | ❌ | ❌ | ✅ | |
| 国产化适配 | ❌ | ✅ | ❌ | |
| IDMP | ❌ | ✅ | ❌ | |
| TDgpt | ✅ | ✅ | ✅ | |
| 数据接入 | Kafka/MQTT/OPC 等工业协议 | ❌ | ✅ | ✅ |
| 主流关系库 InfluxDB/MySQL/Oracle 等接入 | ❌ | ✅ | ✅ | |
| Flink/Spark 接入 | ✅ | ✅ | ✅ | |
| 数据库安全能力 | 权限控制、数据加密、行为审计、IP 白名单 | ❌ | ✅ | ✅ |
| 服务与支持 | 专业技术服务 | ❌ | ✅ | ✅ |
| 数据迁移服务 | ❌ | ✅ | ❌ | |
| 全托管服务 | ❌ | ❌ | ✅ |
四、TDengine TSDB-OSS Docker 安装部署
1. 拉取镜像
bash
docker pull tdengine/tsdb:3.4.0.0
2. 启动容器
bash
docker run -d \
-p 6030:6030 \
-p 6041:6041 \
-p 6043:6043 \
-p 6044-6049:6044-6049 \
-p 6044-6045:6044-6045/udp \
-p 6060:6060 \
tdengine/tsdb:3.4.0.0
3. 可视化管理工具 taosExplorer
TDengine 自带 Web 可视化管理平台,无需额外部署。
- 访问地址:
http://localhost:6060 - 默认账号:
root - 默认密码:
taosdata
登录后可直观管理数据库、超级表、子表,支持在线执行 SQL 查询、查看时序数据。
4. Windows 客户端安装与命令行连接
客户端下载地址:
常用命令行参数
-h:服务端 IP,默认127.0.0.1-P:端口号,默认6030-u:用户名,默认root-p:密码,特殊字符需转义,默认taosdata
连接示例
bash
taos -h 192.168.80.233 -P 6030 -u root -p
五、TDengine 核心数据模型
1. 采集量(变量)
设备传感器采集的动态物理指标,如电流、电压、温度、压力、GPS 等;数据随时间持续增长,支持整型、浮点、布尔、字符串等类型。
2. 标签(静态属性)
设备固定不变的静态属性,如设备型号、安装位置、分组编号等;标签数据不随时间增长,支持后期修改、新增、删除。
3. 数据采集点
独立的采集终端 / 传感器节点,同一采集点同一时刻产生一条时序数据,共用时间戳;复杂设备可包含多个独立采集点,采集周期互不干扰。
4. 普通表
TDengine 兼容关系型表模型,遵循第一列为时间戳 Timestamp 规范,采用列式存储、时间戳自动索引;设计理念为一个采集点一张表。
5. 超级表(STable)
抽象统一模板,将结构相同、标签不同的多个设备表归为一类;统一管理表结构、批量聚合查询,解决设备量大表过多难以维护的问题。
6. 子表
以超级表为模板创建的具体设备表,绑定专属标签属性;
- 一张超级表可包含多张子表
- 超级表改结构,所有子表自动生效
- 超级表仅做模板,不存储实际数据
- 子表名仅支持字母、数字、下划线,不能以数字开头
六、SQL 实操示例
1. 创建数据库
sql
CREATE DATABASE power PRECISION 'ms' KEEP 3650 DURATION 10 BUFFER 16;
use power;
2. 创建超级表
sql
CREATE STABLE meters (
ts timestamp,
current float,
voltage int,
phase float
) TAGS (
location varchar(64),
group_id int
);
3. 手动创建子表
sql
CREATE TABLE d1001
USING meters (
location,
group_id
) TAGS (
"California.SanFrancisco",
2
);
4. 自动建表并写入数据
无需提前建子表,写入时自动创建:
sql
INSERT INTO d1002
USING meters
TAGS (
"California.SanFrancisco",
2
) VALUES (
NOW,
10.2,
219,
0.32
);
5. 创建普通表
sql
CREATE TABLE d1003(
ts timestamp,
current float,
voltage int,
phase float,
location varchar(64),
group_id int
);
普通表与子表区别
- 标签扩展性:子表支持动态标签维护,普通表无标签概念;
- 表归属:子表归属超级表,普通表独立存在;
- 相互转换:普通表与子表创建后无法互相转换。
七、SpringBoot 项目 JDBC 连接配置
1. 原生 TCP 连接(端口 6030)
yaml
spring:
datasource:
driver-class-name: com.taosdata.jdbc.TSDBDriver
url: jdbc:TAOS://127.0.0.1:6030/taos?timezone=Asia/Beijing&charset=utf-8
username: root
password: taosdata
2. RESTful 连接(端口 6041,兼容跨网络)
yaml
spring:
datasource:
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://127.0.0.1:6041/taos?timezone=Asia/Beijing&charset=utf-8
username: root
password: taosdata