分类 :14.生态 | 篇章:02 taosX 与 Explorer

taosX 是 TDengine 企业版的数据集成工具,支持从 Kafka、MQTT、InfluxDB 等数据源订阅、转换、写入 TDengine。Explorer 是配套的 Web 管理界面。本文讲解架构、使用、典型场景。
速查表
| 工具 | 作用 |
|---|---|
| taosX | 数据集成管道 |
| Explorer | Web 管理 UI |
| Connector | 数据源连接器 |
| Pipeline | 数据管道 |
| Plugin | 自定义解析插件(Rust) |
详细解析
1. taosX 概览
taosX 定位:
数据源 → taosX → TDengine
支持的数据源:
- Kafka
- MQTT
- InfluxDB(含 1.x 和 2.x)
- OpenTSDB
- TDengine(跨集群同步)
- CSV 文件
- PostgreSQL / MySQL(订阅 CDC)
- 各类工业协议(OPC UA, Modbus 等)
功能:
- 数据订阅 / 抽取
- 数据转换(字段映射、过滤)
- 数据写入(高性能批量)
- 增量同步
- 故障恢复(断点续传)
- 监控与告警
2. Explorer 概览
Web 管理界面:
① 数据库管理:
- 建库 / 建表
- 查询编辑器
- 数据浏览
② 用户与权限:
- 用户管理 UI
- 权限配置
③ 数据集成(taosX):
- 连接器配置
- Pipeline 管理
- 实时监控
④ 流计算 / 订阅:
- Stream / Topic 可视化
- 消费者状态
⑤ 监控:
- 集群拓扑
- 性能指标
- 告警
访问:
http://host:6060
默认用户 root / taosdata
3. 部署 taosX 与 Explorer
bash
# 企业版安装包含 taosX 和 Explorer
# 启动
systemctl start taosx
systemctl start taos-explorer
# 端口
# taosX: 6041 (API)
# Explorer: 6060 (Web)
# Docker
docker run -d --name explorer \
-p 6060:6060 \
-e TAOS_ADAPTER_URL=http://adapter:6041 \
-e TAOSX_URL=http://taosx:6041 \
tdengine/taos-explorer:latest
4. 创建 Kafka → TDengine 管道
通过 Explorer UI 配置:
① 添加 Kafka 连接器
- bootstrap.servers: kafka:9092
- group.id: tdx_consumer
- topics: sensor_data
② 配置数据格式
- JSON / CSV / Avro / Protobuf
- 字段映射
- 时间戳字段
③ 配置 TDengine 目标
- 数据库 / 超级表
- Tag 字段
- 列字段
- 自动建表
④ 配置转换规则(可选)
- 字段重命名
- 类型转换
- 过滤条件
⑤ 启动管道
或通过 REST API:
POST /api/v1/pipelines
{
"name": "kafka_to_td",
"source": {
"type": "kafka",
"config": {
"bootstrap.servers": "kafka:9092",
"topics": ["sensor_data"]
}
},
"parser": {
"format": "json",
"ts_field": "timestamp"
},
"writer": {
"database": "iot",
"stable": "sensors",
"tags": ["device_id", "location"],
"columns": ["value", "status"]
}
}
5. MQTT → TDengine
典型 IoT 场景:
MQTT Broker (mqtt://broker:1883)
│
├── topic: factory/+/sensor/+
│
▼
taosX MQTT Connector
│
├── JSON 解析
├── Tag 映射 (device_id, location)
├── 时间戳处理
│
▼
TDengine (iot.sensors)
配置(Explorer 表单):
连接:
URL: tcp://broker:1883
Username: iot
Password: ***
Topics:
- factory/+/sensor/temperature
- factory/+/sensor/humidity
QoS: 1
解析:
Payload Format: JSON
Sample:
{
"device_id": "d001",
"ts": 1717488000000,
"value": 25.3
}
写入:
Database: iot
Super Table: sensors
Auto Create: ✓
Tags: device_id
Time Field: ts
Value Field: value
6. TDengine 跨集群同步
场景:主备集群数据同步
生产集群(北京)
│
├── 订阅 TMQ Topic
│
▼
taosX (Replicator)
│
├── 跨网传输
│
▼
备份集群(上海)
配置:
Source: TDengine TMQ
Endpoint: production-bj:6041
Topic: replicator_topic
Group: replicator
Target: TDengine
Endpoint: backup-sh:6041
Database: same_db
用途:
- 异地灾备
- 读写分离
- 历史归档
7. 自定义解析插件
rust
// Rust 实现 taosX 插件
// 详见《TaosX 插件开发》
// 插件实现 trait
use taosx_plugin::*;
pub struct MyParser;
impl Parser for MyParser {
fn parse(&self, msg: &Message) -> Result<Vec<Record>> {
// 自定义解析逻辑
let data = parse_my_protocol(&msg.payload)?;
Ok(vec![Record {
ts: data.timestamp,
tags: vec![("device", data.device_id)],
values: vec![("value", data.value)],
}])
}
}
// 编译为 .so
// 加载到 taosX 注册为 parser
8. 监控与运维
通过 Explorer 监控:
① Pipeline 状态:
- 运行中 / 暂停 / 失败
- 处理速率(行/秒)
- 累计处理量
- 错误统计
② 资源占用:
- CPU / 内存
- 网络 IO
- 连接数
③ 告警:
- Pipeline 失败
- 速率突降
- Lag 过大
API 监控:
GET /api/v1/pipelines
[
{
"name": "kafka_to_td",
"status": "running",
"rows_in": 12345678,
"rows_out": 12345670,
"errors": 8,
"lag_ms": 1200
}
]
代码示例
完整 Kafka → TDengine 部署
yaml
# docker-compose.yml
services:
kafka:
image: confluentinc/cp-kafka
# ...
taosd:
image: tdengine/tdengine-ee:3.x.x
hostname: taosd
volumes:
- td-data:/var/lib/taos
taosx:
image: tdengine/taosx:3.x.x
hostname: taosx
environment:
- TAOS_ADAPTER_URL=http://taosd:6041
depends_on:
- taosd
explorer:
image: tdengine/taos-explorer:latest
ports:
- "6060:6060"
environment:
- TAOSX_URL=http://taosx:6041
- TAOS_ADAPTER_URL=http://taosd:6041
depends_on:
- taosx
通过 API 管理 Pipeline
bash
# 列出所有 pipeline
curl -u root:taosdata http://localhost:6041/api/v1/pipelines
# 创建
curl -X POST http://localhost:6041/api/v1/pipelines \
-u root:taosdata \
-H "Content-Type: application/json" \
-d @pipeline.json
# 暂停
curl -X POST http://localhost:6041/api/v1/pipelines/kafka_to_td/pause
# 恢复
curl -X POST http://localhost:6041/api/v1/pipelines/kafka_to_td/resume
# 删除
curl -X DELETE http://localhost:6041/api/v1/pipelines/kafka_to_td
性能考量
taosX 吞吐能力
| 数据源 | 单实例吞吐 |
|---|---|
| Kafka | 几十万消息/秒 |
| MQTT | 几万消息/秒 |
| InfluxDB | 上百万行/秒 |
| TDengine 跨集群 | 接近源吞吐 |
调优
| 措施 | 效果 |
|---|---|
| 增加 worker | 并发提升 |
| 批量大小 | 吞吐提升 |
| 多实例 | 线性扩展 |
| 优化解析 | CPU 节省 |
FAQ
Q1: taosX 是开源还是企业版?
主要是企业版功能。部分功能(如基础 Kafka 接入)有开源工具替代。
Q2: Explorer 必须用吗?
不必。所有功能都有 CLI/API 替代。Explorer 提供更友好的 UI。
Q3: 自定义协议支持吗?
Rust 插件机制支持任意协议。或在应用层自行转换为 TDengine 支持的格式。
Q4: 跨集群同步会有延迟吗?
通常秒级延迟。视网络带宽和处理速度。监控 lag_ms 指标。
Q5: 一个 taosX 实例支持多少 Pipeline?
视资源。通常 10~50 个。高负载建议拆分多实例。
参考
系统构架篇
- 01-《TDengine 整体架构全景》
- 02-《集群拓扑深度解析》
- 03-《MNode 内部机制深度解析》
- 04-《RPC 通信层深度解析》
- 05-《VNode 生命周期》
- 06-《RAFT 共识协议》
- 07-《端到端的消息流》
数据模型
- 01-《数据库创建与参数详解》
- 02-《超级表/子表/普通表》
- 03-《支持数据类型深度解析》
- 04-《TDengine Tag 设计哲学与 Schema 变更机制》
- 05-《TDengine 虚拟表实现原理》
存储引擎
- 01-《TDengine 存储引擎概览》
- 02-《TDengine MemTable 深度解析》
- 03-《TDengine WAL 预写日志机制》
- 04-《TDengine 数据文件格式》
- 05-《TDengine Commit 与 Flush 机制 》
- 06-《TDengine Compaction 合并策略 》
- 07-《TDengine 数据保留与 TTL》
- 08-《TDengine 压缩编码机制》
- 09-《TDengine Cache 与 Last 查询加速》
- 10-《TDengine 逻辑计划生成》
查询引擎
- 01-《TDengine 查询引擎概览》
- 02-《TDengine SQL 解析与词法分析》
- 03-《TDengine 语义分析与 AST 重写》
- 04-《TDengine 逻辑计划生成》
- 05-《TDengine 物理计划生成》
- 06-《TDengine 扫描算子》
- 07-《TDengine 聚合算子》
- 08-《TDengine 连接算子》
- 09-《TDengine 排序、填充与投影》
- 10-《TDengine 分布式查询执行》
- 11-《TDengine EXPLAIN 与查询优化》
数据写入
- 01-《TDengine SQL INSERT》
- 02-《TDengine 无模式写入》
- 03-《TDengine STMT 写入》
- 04-《TDengine 写入内部流程》
- 05-《TDengine 数据更新删除》
数据订阅
- 01-《TDengine 数据订阅》
- 02-《TDengine 订阅 vs Kafka》
- 03-《TDengine TMQ 消费流程》
- 04-《TDengine 内部机制》
- 05-《TDengine TMQ 最佳实践》
预聚合
索引
SQL 语句
- 01-《TDengine DDL》
- 02-《TDengine DML SELECT》
- 03-《TDengine DML 函数完整参考》
- 04-《TDengine JOIN 完整语法》
- 05-《TDengine 窗口完整语法》
- 06-《TDengine 操作符与表达式》
- 07-《TDengine 系统表》
- 08-《TDengine SQL 与标准 SQL 差异》
客户端与连接器
- 01-《TDengine 的连接方式》
- 02-《TDengine C/C++ 连接器》
- 03-《TDengine java 连接器》
- 04-《TDengine Python 连接器》
- 05-《TDengine Go 与 Rust 连接器》
- 06-《TDengine Node.js 与 C# 连接器》
运维
- 01-《TDengine 部署指南》
- 02-《TDengine 配置详解》
- 03-《TDengine 监控系统》
- 04-《TDengine 备份与恢复》
- 05-《TDengine 版本升级》
- 06-《TDengine 加密使用指南》
安全
生态
关于 TDengine
TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。