TDengine 数据订阅数据源
本文讲述如何使用 taosExplorer 订阅另一个集群的数据到本集群。
准备工作
在源集群创建订阅所需的 Topic,可以订阅整个库、超级表 或子表。本示例中我们演示订阅一个名为 test 的数据库。
第一步:进入“数据订阅”页面
打开源集群的 taosExplorer 界面,点击左侧“数据订阅”菜单,然后点击“添加新主题”。

第二步:添加新主题
输入主题名称,选择要订阅的数据库。

对于 数据库 或 超级表 类型,如果需要同步表的增/删/改操作,则需要开启 同步 Meta 选项用于数据库/超级表的迁移,否则此主题只会进行数据同步。
关于主题的创建,详情请参考 主题语法。
第三步:复制主题的 DSN
点击“创建”按钮,回到主题列表复制主题的 DSN 备用。

创建订阅任务
第一步:进入“新增数据源”页面
- 点击左侧“数据写入”菜单
- 点击“新增数据源”

第二步:输入数据源信息
- 输入任务名称
- 选择任务类型“TDengine 数据订阅”
- 选择目标数据库
- 粘贴准备步骤复制的 DSN 到 Topic DSN 一栏。例如:tmq+ws://root:taosdata@localhost:6041/topic
- 完成以上步骤点击“连通性检查”按钮,测试与源端的连通性

第三步:填写订阅设置并提交任务
- 选择订阅初始位置。可配置从最早数据(earliest)或最晚(latest)数据开始订阅,默认为 earliest
- 设置超时时间。支持单位 ms(毫秒),s(秒),m(分钟),h(小时),d(天),M(月),y(年)
- 设置订阅组 ID。订阅组 ID 是用于标识一个订阅组的任意字符串,最大长度为 192。同一个订阅组内的订阅者共享消费进度。不指定情况下将使用随机生成的 group ID。
- 设置客户端 ID。客户端 ID 是一个用于标识客户端的任意字符串,最大长度为 192。
- 同步已落盘数据。如启用,可以同步已经落盘到 TSDB 时序数据存储文件中(即不在 WAL 中)的数据。如关闭,则只同步尚未落盘(即保存在 WAL 中)的数据。
- 同步删表操作。如启用则会同步删表操作到目标数据库。
- 同步删数据操作。如启用则会同步删数据操作到目标数据库。
- 压缩。启用 WebSocket 压缩支持,以降低网络带宽占用。
- 点击“提交”按钮,提交任务

转换参数
TDengine 数据订阅 支持在任务创建或编辑页面展开 转换参数。转换规则会在数据写入目标库前调整表结构中的表名、超级表名和标签;可为一个任务添加多条转换规则。

| 转换规则 | 作用 | 配置说明 |
|---|---|---|
| 按 CSV 映射重命名超级表 | 将指定源超级表映射为目标超级表名,并同步更新子表的 USING 超级表引用。 | 上传 CSV 映射文件,或填写映射文件路径。 |
| 按 CSV 映射重命名表 | 根据映射文件改写目标表名;子表的名称及其关联的超级表引用会同步更新。 | 上传 CSV 映射文件,或填写映射文件路径。 |
| 添加表名前缀 | 为目标表名添加固定前缀。 | 例如输入 v1_,将 meters 改为 v1_meters。 |
| 添加表名后缀 | 为目标表名添加固定后缀。 | 例如输入 _backup,将 meters 改为 meters_backup。 |
| 按正则重命名表 | 使用正则表达式匹配并替换目标表名。 | 输入格式为 <正则表达式>::<替换文本>,例如 ^old(?<name>.*)$::new_$name。 |
| 自定义规则 | 配置下拉列表未提供的有效 taosX -T 转换动作。 | 例如 add-tag:location=beijing 会添加名为 location、值为 beijing 的标签。 |
CSV 映射文件每行包含一对源名称和目标名称,格式为 source_name,target_name,不包含表头。上传映射 CSV 后,taosExplorer 会自动填入带 @ 前缀的文件引用。
监控任务运行情况
提交任务后,回到数据源页面可以查看任务状态。任务先会被加入执行队列,稍后就开始运行。

点击“查看”按钮,可以监控任务的动态统计信息。

也可以点击左侧折叠按钮,展开任务的活动信息。如果任务运行异常,此处可以看到详细的说明。

高级用法
- FROM DSN 支持多个 Topic,多个 Topic 的名字用逗号分割。例如:
tmq+ws://root:taosdata@localhost:6041/topic1,topic2,topic3 - 在 FROM DSN 中,也可以用数据库名称、超级表名称或子表名称代替 Topic 名称。例如:
tmq+ws://root:taosdata@localhost:6041/db1,db2,db3,此时不必要提前创建 Topic,taosX 将自动识别到使用的是数据库名称,并自动在源集群创建订阅数据库的 Topic。 - FROM DSN 支持 group.id 参数,以显式指定订阅用的 group ID。不指定情况下将使用随机生成的 group ID。








