TDengine taosX 与 Explorer — 数据集成与可视化管理

分类 :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 个。高负载建议拆分多实例。

参考

系统构架篇

数据模型

存储引擎

查询引擎

数据写入

数据订阅

预聚合

索引

SQL 语句

客户端与连接器

运维

安全

生态

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

相关推荐
Leon-Ning Liu1 小时前
Oracle 26ai新特性:Lock-Free Reservations(无锁预留)
数据库·oracle
xiaopai9451 小时前
WPS能否替代工程项目管理系统
大数据·数据库·项目管理系统·建米软件
北京晶数信息科技1 小时前
成品油交易即开票原创一体化解决方案汇报(二)
大数据·人工智能·物联网·产品经理·需求分析
数据库小学妹1 小时前
空间数据库查询慢怎么排查?索引失效、表膨胀、SQL优化实战(附排查命令)
数据库·性能优化·信创·故障排查·索引调优·空间数据库
Cloud云卷云舒2 小时前
从墨天轮排名中,分析近期增速快、中长期具备高潜力国产数据库
数据库·haishandb·工业云
lsylalalala2 小时前
mysql-索引1
数据库·mysql
叶 落2 小时前
Ubuntu24 安装 PostgreSQL
数据库·postgresql·安装教程
HAYDENR2 小时前
依赖数据迁移工具做增量同步有哪些易错点?调整数据迁移工具策略怎么保证断点续传可靠?
java·大数据·数据库
邀星月为媒2 小时前
高阶加餐 08|Prompt 故障定位与可观测性:模型突然变差时,别再靠“重新写一遍 Prompt”解决
服务器·数据库·prompt