news 2026/9/20 23:52:33

TDengine 边云协同数据同步实战:边缘推送/云端拉取 × 数据订阅/数据查询 四种方案的选择与配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TDengine 边云协同数据同步实战:边缘推送/云端拉取 × 数据订阅/数据查询 四种方案的选择与配置指南

TDengine 边云协同数据同步实战:边缘推送/云端拉取 × 数据订阅/数据查询 四种方案的选择与配置指南

【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址: https://gitcode.com/taosdata/tdengine

TDengine 提供从边缘节点到云端节点的自动化数据同步能力,支持"边缘推送、云端拉取"两种数据流向,每种流向又都可以通过"数据订阅"或"数据查询"两条技术路线实现。本文以 TDengine 的边云协同(Edge–Cloud Synchronization)为主题,完整介绍四种同步方案的适用场景、基于 taosExplorer 的零代码配置步骤与基于 taosx 命令行的推拉实现,并结合仓库源码与组件文档解析 DSN 格式、订阅选项等底层细节,帮助你为实际生产环境选择并落地正确的同步架构。

为什么需要边云协同

在工业互联网场景中,边缘设备只用于处理局部数据,决策者无法仅凭边缘设备采集的信息形成对整个系统的全局认知。因此,边缘设备需要把数据上报给云计算平台(公有云或私有云),在云端完成数据的汇聚与信息融合,从而获得全局洞察。这种边云协同架构已成为支撑工业互联网发展的重要支柱。

具体到 TDengine 的应用场景:

  • 边缘侧:主要对生产线上的某几项数据(例如某个车间的实时生产数据)进行监控和告警,对实时性要求较高,但数据量不一定大——一个生产车间的监测点数量通常从几千到几万个不等。
  • 中心侧:计算资源充足,有能力把边缘侧数据汇聚起来进行分析计算。
  • 数据库层面的要求:数据必须能够逐级上报,并且支持有选择地上报。在整体数据量非常大的场景下,必须有选择地同步——例如边缘侧每秒采集一次的原始记录,上报到中心侧时降采样为每分钟一次,既大幅减少数据量,又保留用于长期分析与预测的关键信息。

在传统工业数据采集流程中,数据从工业逻辑控制器(PLC)采集后进入 Historian 工业实时库,再支撑业务应用;这类系统多采用主备架构、不易水平扩展、严重依赖 Windows 生态,相对封闭。TDengine 的边云协同方案用统一的数据模型和实时订阅能力取代了这类传统链路。

TDengine 边云协同解决方案

TDengine 企业版提供完整的边云协同能力,关键特性包括:

  • 高效数据同步:支持高吞吐的数据同步,保证数据在边缘侧和云端之间快速、稳定地传输。
  • 多数据源对接:兼容 AVEVA PI System、OPC-UA、OPC-DA、MQTT 等多种外部数据源,实现广泛接入与整合(见 零代码数据接入)。
  • 灵活配置同步规则:提供可配置的同步规则,按实际需求自定义数据同步的策略和方式。
  • 断线续传与重新订阅:确保网络不稳定或中断时数据同步的连续性和完整性。
  • 历史数据迁移:支持历史数据迁移,便于升级或更换系统时无缝迁移。

其中,数据订阅功能为订阅方提供了极大的灵活性:可以订阅一个数据库、一张超级表,甚至是一个带筛选条件的查询语句,从而实现选择性的数据同步,将真正关心的数据(包括离线数据和乱序数据)从一个集群同步到另一个集群。

注:边云协同的数据同步组件 taosX 是 TDengine 企业版的核心组件(详见 taosX 参考文档),使用前需要安装 TDengine 企业版软件包。

如何选择同步方式

TDengine 支持边缘节点主动向云端推送数据,也支持云端从边缘节点拉取数据;两种方向均可使用数据订阅或数据查询。启用边云同步前,应根据环境特征确定合适的组合:

环境特征推荐方案
边缘节点较少,且云端可以直接访问边缘节点云端拉取(Cloud Pull)
边缘节点较多,或不允许从外部访问边缘节点边缘推送(Edge Push)
要求近实时同步数据订阅(Subscription)
要求定期或按需同步数据查询(Querying)

由此得到四种组合:边缘推送 + 数据订阅边缘推送 + 数据查询云端拉取 + 数据订阅云端拉取 + 数据查询。下文逐一给出操作步骤。

方案一:边缘推送 + 数据订阅

该方案通过边缘节点 taosExplorer 的"数据复制"功能,把指定数据库实时推送到云端,全程零代码、无需在边缘节点开放入站端口,适合边缘节点数量多的场景。

操作步骤如下:

  1. 在云端节点创建用于接收边缘数据的数据库。
  2. 在浏览器中打开边缘节点的 taosExplorer。
  3. 在左侧主菜单中选择管理(Management)。
  4. 打开数据复制(Data Replication)标签页,点击新增数据复制(Add New Replication)。
  5. 选择要同步到云端的数据库。
  6. 目标 DSN(Target DSN)字段中输入云端节点的 DSN。
  7. 点击确认(Confirm)。

完成配置后,边缘节点会把指定数据库的数据推送到指定云端节点。可以重复该流程以同步更多数据库,或将数据同步到多个云端节点。

目标 DSN 使用标准 DSN 格式,典型写法形如taos+ws://root:taosdata@<cloud-ip>:6041/<cloud-db>,其中+ws表示通过 REST/WebSocket 方式访问(详见后文 DSN 格式详解)。

方案二:边缘推送 + 数据查询

该方案在边缘节点上以命令行方式运行 taosx,把数据从边缘节点查询后写入云端,适合定期或按需同步、且需要在边缘侧脚本化执行的场景。

操作步骤:

  1. 在云端节点创建用于接收边缘数据的数据库。
  2. 在边缘节点打开终端。
  3. 执行以下命令,将数据推送到云端:
taosx run -f 'taos://<edge-user>:<edge-password>@<edge-ip>:<edge-port>/<edge-db>' -t 'taos://<cloud-user>:<cloud-password>@<cloud-ip>:<cloud-port>/<cloud-db>' -v

其中-f指定数据源(Source DSN),-t指定写入目标(Sink DSN),-v开启 info 级别日志(-vv对应 debug,-vvv对应 trace)。

例如,以下命令使用默认用户名和密码,把192.0.2.1:6030上边缘节点的sync_test数据库同步到198.51.100.1:6030上云端节点的edge_data数据库:

taosx run -f 'taos://root:taosdata@192.0.2.1:6030/sync_test' -t 'taos://root:taosdata@198.51.100.1:6030/edge_data' -v

更多 taosx 数据迁移用法(历史数据、实时数据、指定表与时间范围等)见 taosx 参考文档中的"Migrating Data from Older Versions"一节。

延伸:用 taosx 细化同步范围

在边缘推送 + 数据查询方案中,可以通过 Source DSN 的参数精细控制同步对象:

# 仅同步指定超级表 taosx run \ -f 'taos://root:taosdata@localhost:6030/db1?stables=meters' \ -t 'taos:///db2' -v # 仅同步指定子表或普通表(支持 {stable}.{table} 与直接表名) taosx run \ -f 'taos://root:taosdata@localhost:6030/db1?tables=meters.d0,d1,table1' \ -t 'taos:///db2' -v # 同步指定时间范围(RFC3339 时间格式,注意时区) taosx run -f 'taos:///db1?start=2022-10-10T00:00:00Z' -t 'taos:///db2' -v # 实时模式:同步最近 5 分钟数据并持续同步新数据(interval=1s 为轮询间隔,excursion=500ms 允许的乱序延迟) taosx run \ -f 'taos:///db1?mode=realtime&restro=5m&interval=1s&excursion=500ms' \ -t 'taos:///db2' -v # 历史数据 + 实时数据 taosx run -f 'taos:///db1?mode=all' -t 'taos:///db2' -v

上述示例均来自 taosx 参考文档。

方案三:云端拉取 + 数据订阅

该方案在云端 taosExplorer 中创建"TDengine 数据订阅"任务,由云端主动订阅边缘节点的数据库,适合边缘节点数量少、云端可以直连边缘节点的近实时同步场景。

操作步骤:

  1. 在浏览器中打开边缘节点的 taosExplorer。
  2. 在左侧主菜单中选择主题(Topics)。
  3. 在列表中找到要同步到云端的数据库,在获取 DSN(Get DSN)列点击复制(Copy),保存该 DSN 备用。
  4. 打开云端节点的 taosExplorer。
  5. 在左侧主菜单中选择数据写入(Data In)。
  6. 打开数据写入任务(Data In Task)标签页,点击新增数据源(Add Source)。
  7. 输入任务名称。
  8. 类型(Type)下拉列表中选择TDengine 数据订阅(TDengine Data Subscription)。
  9. 目标(Target)下拉列表中选择接收边缘数据的数据库;如果没有合适的数据库,点击创建数据库(Create Database)。
  10. 连接配置(Connection Configuration)中,把之前复制的 DSN 粘贴到Topic DSN字段。
  11. 点击检查连通性(Check Connection),确认云端可以访问边缘节点。
  12. 订阅选项(Subscribe Options)的Client ID字段中输入唯一标识,并按需配置其他选项(可保留默认值)。
  13. 点击提交(Submit)。

任务提交后,云端会订阅边缘节点的指定数据库,并把数据写入云端目标数据库。可以重复该流程,从更多边缘数据库或节点同步数据。

延伸:订阅任务的配置细节

结合 TDengine 数据订阅数据源文档,订阅任务的关键选项含义如下:

  • 订阅起始位置:可选择从最早(earliest)或最新(latest)数据开始订阅,默认从最早开始。
  • 超时时间:支持ms(毫秒)、s(秒)、m(分钟)、h(小时)、d(天)、M(月)、y(年)等单位。
  • 订阅组 ID(group.id):任意字符串,用于标识订阅组,最大长度 192;不指定时使用随机生成的组 ID。
  • Client ID:任意字符串,用于标识客户端,最大长度 192。
  • 同步已落盘数据:启用后可以同步已写入 TSDB 时间序列数据存储文件的数据(即不在 WAL 中的数据);禁用则只同步尚未落盘(保存在 WAL 中)的数据。
  • 同步表删除操作/同步数据删除操作:启用后会把对应的删除操作同步到目标数据库。
  • 压缩:启用 WebSocket 压缩以降低网络带宽占用。

从 DSN 角度,Topic DSN 还支持以下高级用法:

  • 多 Topic:多个 Topic 名称用逗号分隔,例如tmq+ws://root:taosdata@localhost:6041/topic1,topic2,topic3
  • 直接用库名/超级表名/子表名代替 Topic 名:例如tmq+ws://root:taosdata@localhost:6041/db1,db2,db3,此时无需提前创建 Topic,taosX 会自动识别并在源集群创建订阅 Topic。
  • 显式指定 group.id:在 FROM DSN 中通过group.id参数显式指定订阅组 ID。

方案四:云端拉取 + 数据查询

该方案在云端 taosExplorer 中创建"TDengine 查询"任务,由云端通过查询方式拉取边缘节点数据库的数据,适合定期或按需同步的场景。

操作步骤:

  1. 打开云端节点的 taosExplorer。
  2. 在左侧主菜单中选择数据写入(Data In)。
  3. 打开数据写入任务(Data In Task)标签页,点击新增数据源(Add Source)。
  4. 输入任务名称。
  5. 类型(Type)下拉列表中选择TDengine 查询(TDengine Query)。
  6. 目标(Target)下拉列表中选择接收边缘数据的数据库;如果没有合适的数据库,点击创建数据库(Create Database)。
  7. 连接配置(Connection Configuration)中填写:
    • 协议(Protocol):选择WS
    • 主机(Host):边缘节点 taosAdapter 实例的 IP 地址或主机名。
    • 端口(Port):边缘节点 taosAdapter 实例的端口号。
    • 数据库(Database):边缘节点上要同步的数据库。
  8. 认证(Authentication)中填写:
    • 用户名(Username):边缘节点上有权访问目标数据库的用户名。
    • 密码(Password):该用户在边缘节点的密码。
  9. 点击检查连通性(Check Connection),确认云端可以访问边缘节点。
  10. 按需配置其他选项(可保留默认值),点击提交(Submit)。

任务提交后,云端会查询边缘节点的指定数据库,并把数据写入云端目标数据库。可以重复该流程以从更多边缘数据库或节点同步数据。

延伸:查询任务的工作方式

结合 TDengine 查询数据源文档,taosX 通过查询源集群并把结果写入目标数据库来完成迁移:它以"子表在某时间段内的数据"为基本查询单元,分批把待迁移数据写入目标数据库。查询任务支持三种迁移模式:

  1. history(历史)模式:迁移指定时间范围内的数据;未指定时间范围时迁移截至任务创建时的全部数据,任务完成后停止。
  2. realtime(实时)模式:从任务创建时刻开始持续同步新数据,任务持续运行直到手动停止。
  3. both(两者)模式:先按 history 模式执行,再转入 realtime 模式。

每种模式下都可以指定是否迁移表结构:选择always会在迁移数据前把表结构同步到目标数据库(子表数量多时耗时较长);如果确认目标数据库已有与源库相同的表结构,建议选择none以节省时间。任务运行期间会把进度信息保存到磁盘,因此暂停后重启或异常自动恢复时,不会从头开始。

DSN 格式详解

两种边缘推送 + 数据查询/订阅方案都依赖 DSN 描述数据源。taosx 的 DSN 采用 URL 风格格式(见 taosx 参考文档):

<driver>[+<protocol>]://[[<username>:<password>@]<host>:<port>][/<object>][?<p1>=<v1>[&<p2>=<v2>]]

各部分含义如下:

部分说明
driver数据源驱动,如taos(查询接口取数)、tmq(数据订阅取数)、localpiopcmqttkafkainfluxdbcsvparquet
+protocol协议修饰符,如+ws(taos/tmq 驱动经 REST/WebSocket 取数;不加+ws则使用原生连接,此时 taosx 需安装在服务器上)、+ua/+da(opc 驱动的 OPC-UA/OPC-DA)
username:password数据源的用户名和密码
host:port数据源地址与端口
object具体数据对象:TDengine 的数据库、超级表、表,本地备份文件路径,或其他数据源服务器中的数据库
paramsDSN 查询参数(?之后以&分隔)

示例:tmq+ws://root:taosdata@localhost:6030/db1?timeout=never表示通过 WebSocket 订阅本地 6030 端口上db1数据库的 Topic。

由此可以理解前文四种方案中 DSN 的语义:

  • 边缘推送 + 数据订阅:云端目标 DSN 使用taostaos+ws驱动,表示云端作为写入目标。
  • 边缘推送 + 数据查询:-f指向边缘节点(源),-t指向云端节点(目标),均使用taos驱动。
  • 云端拉取 + 数据订阅:Topic DSN 使用tmq+ws驱动,表示从边缘节点通过数据订阅取数。
  • 云端拉取 + 数据查询:通过 WS 协议连接边缘节点 taosAdapter,由查询任务驱动。

另外,在不同版本之间使用原生连接迁移时,需要在 DSN 中指定libraryPath,例如taos:///db1?libraryPath=./libtaos.so

边云协同架构实例与优势

下图展示了一个具体的生产车间实例中,如何在 TDengine 企业版中落地边云协同架构:生产车间的设备产生实时数据,存储在部署于边缘侧的 TDengine;分厂级 TDengine 订阅车间 TDengine 的数据(可由数据分析师设置订阅规则,例如降采样、只同步超过阈值的数据);集团侧 TDengine 再订阅各分厂数据,完成集团维度的数据汇聚后,即可进行下一步分析和处理。

该实现思路的优势包括:

  • 零代码:不需要编写一行代码,只在边缘侧和云端做简单配置即可。
  • 自动化程度高:数据跨区同步自动化程度大幅提高,错误率降低。
  • 无需数据缓存:减少批量发送,避免流量高峰阻塞带宽。
  • 规则可配置:通过订阅方式同步数据,简单、灵活、实时性高。
  • 数据模型统一:边云均采用 TDengine,数据模型完全一致,降低数据治理难度。

对制造业企业而言,传统离线数据同步方式往往造成资源浪费和带宽阻塞风险;TDengine 企业版的数据实时同步配合可配置规则,避免了定期传输大数据量带来的这些问题。当所有数据汇聚到一个系统后,还能利用第三方 AI 分析工具进行异常监测、实时告警,并为产能、成本、设备维护等提供更精准的预测,助力传统产业数字化转型。

小结

  • 流向选择:边缘节点多或不允许入站访问时用边缘推送;云端可直连边缘时用云端拉取
  • 技术路线选择:近实时同步用数据订阅(taosExplorer 的"数据复制"/"数据订阅"任务,或tmq驱动 DSN);定期或按需同步用数据查询(taosxrun命令,或 taosExplorer 的"TDengine 查询"任务)。
  • 四种方案全部支持零代码配置,且 taosx 命令行模式提供stablestablesstartmoderestrointervalexcursion等参数,可进一步精细化控制同步范围与行为。

更深入的信息可继续阅读:taosx 参考文档、TDengine 数据订阅数据源、TDengine 查询数据源。

【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址: https://gitcode.com/taosdata/tdengine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 23:50:05

基于MATLAB的指纹识别算法全流程解析与毕设实践

简介&#xff1a;一套面向生物识别与图像处理方向毕业设计的MATLAB指纹特征提取完整方案&#xff0c;覆盖脊线增强、脊线分割、脊线细化、细节点检测与验证等核心环节&#xff0c;重点解决指纹周边伪细节点的去除问题&#xff0c;适合需要快速搭建指纹识别实验框架的高校学生与…

作者头像 李华
网站建设 2026/9/20 23:49:15

AI Agent视频理解实战:用Skill封装多模态流水线

在聊今天这个项目之前&#xff0c;我想先抛一个问题&#xff1a;你的 Agent 现在到底卡在哪&#xff1f;我做了快一年的 Agent 应用&#xff0c;最深的体会是——文本能力早就不是瓶颈了。Claude、GPT 这些模型处理文档、写代码、跑分析&#xff0c;已经能做到让我觉得“这钱花…

作者头像 李华
网站建设 2026/9/20 23:47:50

分形维数Matlab实现:差分盒维数、功率谱法与结构函数法详解

简介&#xff1a;面向图像处理、信号分析与复杂系统研究&#xff0c;这套MATLAB分形维数计算资源包提供了差分盒维数、功率谱和结构函数三种主要算法的代码实现&#xff0c;能够帮助解决非规则几何对象难以量化建模的问题。压缩包内共5个m文件&#xff0c;整体仅3KB&#xff0c…

作者头像 李华
网站建设 2026/9/20 23:46:35

Informer代码逐行解析:数据切片、ProbSparse注意力与生成式解码

简介&#xff1a;针对Informer长序列时间序列预测模型精心整理的逐行注释代码包&#xff0c;面向深度学习研究者、学生与工业界时序建模工程师&#xff0c;适合在理解Transformer类模型、复现实验或做二次改造时使用。代码基于官方Informer2020项目逐模块补充详细中文注释&…

作者头像 李华