拓冰建站拓冰建站
首页 / 资讯中心 / 正文

TDengine 3.3.7.0 版本全解析:流计算重构、BLOB 新类型与数据挂载能力落地

数据库时序数据库物联网大数据实时分析云原生【免费下载链接】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 于 2025-07-29 正式发布3.3.7.0版本。本版本是 3.3 系列的一个重要里程碑流计算引擎全新发布、新增 BLOB 二进制数据类型、多级存储支持共享存储、数据订阅接入 MQTT 协议并引入数据挂载MOUNT能力同时覆盖 29 项特性、23 项优化与 47 项修复。本文以官方版本说明为主线结合当前仓库源码与配套文档逐一解读这些能力的用法、原理与落地细节帮助读者评估升级收益并快速上手新特性。一、核心新特性流计算全新发布与计数窗口指定列1.1 流计算引擎重构3.3.7.0 中流计算全新发布是最受关注的变更之一。它意味着流式处理模块在语法、执行与可观测性上经历了系统性重构。从仓库文档看流计算的完整语法体系位于 docs/zh/07-stream-processing/01-syntax.md其触发类型已形成完整矩阵时间窗口触发INTERVAL按固定时间长度划分窗口滑动触发SLIDING指定窗口滑动步长定时触发PERIOD周期触发会话窗口触发SESSION按时间间隔合并连续事件状态窗口触发、事件窗口触发、计数窗口触发。其中状态窗口、事件窗口和计数窗口在搭配超级表使用时必须与PARTITION BY tbname一起使用。这一约束在新版流计算中依然保留说明窗口语义与分区语义的耦合关系是设计上的一贯约定。1.2 计数窗口支持指定触发列版本说明中计数窗口中允许指定列补齐了计数窗口的实用场景。计数窗口触发是指对触发表的写入数据按照计数方式进行窗口划分在窗口启动和或关闭时触发。新版本支持列的触发只有当指定列有数据写入时才触发窗口避免无关字段的写入频繁触发计算。计数窗口的细节约束在 docs/zh/07-stream-processing/01-syntax.md 中有明确说明计数窗口开始时发送起始时间结束时发送起始时间、结束时间与计算结果滑动步长为 1 的计数窗口例如COUNT_WINDOW(1)与COUNT_WINDOW(n, 1)默认处理乱序数据通过重算也可通过STREAM_OPTIONS(IGNORE_DISORDER)显式忽略滑动步长不为 1 的计数窗口一律忽略乱序数据与更新仅滑动步长为 1 的计数窗口支持DELETE_RECALC选项可在触发表数据删除时自动重算计数窗口触发的手动重算必须同时指定开始时间与结束时间且只适用于流进度已完成部分的时间区间见 docs/zh/07-stream-processing/02-instructions.md。因此允许指定列这一特性让计数窗口在 IoT 场景下可以锚定具体测点如某个传感器字段作为触发信号显著降低无效写入带来的计算开销。二、新增 BLOB 数据类型及全链路连接器支持2.1 类型定义与底层实现3.3.7.0 新增BLOBBinary Large Object类型用于存储二进制大对象。从仓库头文件可以看到类型常量的正式定义TSDB_DATA_TYPE_BLOB 18见 include/client/taos.hTSDB_DATA_TYPE_MEDIUMBLOB 19见 include/client/taos.h。同时公共类型工具中已为 BLOB 系列提供判定宏IS_STR_DATA_BLOB(t)覆盖 BLOB 与 MEDIUMBLOB 两类见 include/common/ttypes.h。这说明 BLOB 不是孤立的单类型而是与 MEDIUMBLOB 一起构成了完整的二进制数据家族底层按字符串类数据进行存取与传输。2.2 各连接器同步支持为让 BLOB 能力真正可用本版本实现了全链路打通Go 连接器、Rust 连接器、C WebSocket 连接器支持 BLOB 类型Python WebSocket 连接器、C# 连接器支持 BLOBtaosAdapter支持 BLOB 类型使 REST 等接入路径可读写二进制数据taosX同步链路支持 Varbinary 类型并支持所有数据源以 Decimal 类型写入。各语言连接器参考文档位于 docs/zh/10-developer-guide/08-connectors-reference/如 Java、Go、Python 等。数据类型总览见 docs/zh/05-tdengine-sql/01-datatype.md。2.3 配套修复BLOB 相关能力并非一次到位本版本还修复了若干二进制/高精度数据问题taosXCSV 写入 Decimal 类型导致的 panictaosX同步 Decimal 数据转换为 Double 类型写入错误纳秒精度数据库使用to_char函数结果错误timediff函数的时间精度问题。这些修复共同保证了新类型在写入、同步、计算链路上的正确性。三、存储与数据管理共享存储、数据挂载与 WAL 自动修复3.1 多级存储支持采用共享存储3.3.7.0 允许多级存储的各级挂载点使用共享存储如网络文件系统或分布式文件系统使存储容量规划从本地磁盘扩展到共享存储池。多级存储的核心配置仍集中在每个 vnode 目录下的local.json中主挂载点与次级挂载点的路径配置方式不变只是底层介质可以替换为共享存储。3.2 数据挂载MOUNT只读接入源集群数据数据挂载是企业版自v3.3.7.0起提供的能力官方文档见 docs/zh/05-tdengine-sql/08-cluster-management/03-mount.md。其核心思想是在宿主集群中通过 SQL 将源集群飞行器、车载/边缘设备、同机房或其他数据中心的集群、历史备份数据等的数据目录只读挂载到宿主集群无需数据迁移即可直接查询。创建挂载CREATE MOUNT [IF NOT EXISTS] mountName ON DNODE dnodeId FROM TDenginePath;参数说明mountName挂载名称不能包含下划线_挂载后的数据库名为mountName_dbnamednodeId源集群数据目录所在宿主集群的dnode标识TDenginePath源集群数据目录的绝对路径需用英文单引号或双引号括起。示例在宿主集群dnode1 上将源集群目录/var/lib/taos_1以mount1为名称挂载CREATE MOUNT mount1 ON DNODE 1 FROM /var/lib/taos_1;挂载后即可通过mount1_dbname访问源集群数据库。查看挂载SHOW MOUNTS;示例输出name | dnode | create_time | path | mount1 | 1 | 2025-07-17 18:06:16.298 | /var/lib/taos_1 |字段含义name为挂载名称dnode为宿主集群中执行挂载的节点create_time为挂载创建时间path为源集群数据目录绝对路径。仅拥有系统信息查看权限的用户可以查看。删除挂载DROP MOUNT [IF EXISTS] mountName;删除挂载会清空宿主集群中与该挂载相关的元数据并恢复源集群数据目录的配置信息但不会删除源集群的实际数据文件。使用限制重点同一宿主集群中mountName不能重复也不能与宿主集群已有数据库重名mountName与TDenginePath一一对应目前仅支持在单个dnode上挂载若源集群使用多级存储需手工调整local.json中非主挂载点路径同一源集群同一时刻只能被一个宿主集群挂载宿主集群不能挂载自身数据目录挂载时暂不支持源集群多副本、加密数据库以及源集群无数据库的情况宿主集群对挂载库仅支持时序数据查询不支持写入与元数据更新不支持虚拟表时序数据查询支持元数据查询不支持流式计算、订阅、视图等功能不支持COMPACT/TRIM/REDISTRIBUTE/SPLIT/RESTORE等管理操作仅超级管理员拥有操作权限。典型应用场景设备数据地面分析源集群采集数据无需导出迁移挂载到分析集群后直接查询跨集群数据比对将多个业务集群挂载到统一分析集群对比同源数据历史数据查询将离线历史数据集群挂载到在线业务集群无需回迁即可查询数据备份验证将备份存储集群挂载到验证集群直接校验备份数据完整性。实现上数据挂载通过元数据映射建立访问通道源数据文件不复制到宿主集群仅在宿主集群记录挂载关联信息因此具备快速访问、轻量实现、实时查询与只读安全保障等特征。本版本还修复了多级存储变更单个挂载点后无法启动与多副本数据库的单个挂载点失效后无法恢复两个问题进一步增强了挂载与多级存储的稳定性。3.3 新增 WALForceRepair 参数自动修复 WAL针对 WAL 文件损坏场景3.3.7.0 新增配置项walForceRepair。从源码看该参数为布尔型服务端配置定义于 source/common/src/tglobal.c注册为服务器级配置CFG_SCOPE_SERVER、CFG_CATEGORY_LOCAL、CFG_PRIV_SYSTEM见同文件 tglobal.c。其作用体现在 WAL 元数据修复流程中正常修复仅截断可恢复的尾部文件而当tsWalForceRepair为真时允许对最后一个文件执行更激进的强制修复见 source/libs/wal/src/walMeta.c启动时自动检测并修复 WAL 文件的损坏情况降低因 WAL 异常导致节点无法启动的概率。四、数据订阅与接入MQTT 协议与 taosX 增强4.1 数据订阅支持 MQTT 协议3.3.7.0 让 TDengine 的数据订阅能力新增 MQTT 协议出口客户端可以通过 MQTT 订阅 TDengine 的写入/变更数据。需要特别区分两个概念参见 docs/zh/08-data-ingest-and-delivery/01-no-code-ingestion/07-mqtt.mdtaosX MQTT 接入从外部 MQTT Broker 订阅数据并写入 TDengine数据流入订阅主题的 QoS 可为 0、1、2由 Broker 侧能力决定数据订阅 MQTT客户端连接 TDengine Bnode通过 MQTT 协议消费订阅数据仅支持 QoS 0/1。配套能力包括taosX支持订阅 TDengine 发送给 MQTT、支持 MQTT Sparkplug B、支持按数据库精度生成不重复的时间戳并修复了订阅数据库主题时的内存泄漏删除主题会影响到其他消费者的订阅等问题保证订阅链路在并发场景下的可靠性。4.2 数据接入与同步的其他增强taosX 所有数据源支持 Decimal 类型写入并修复 CSV/Decimal 相关错误taosX 实现更多时间格式过滤、支持 Varbinary 类型、OPC CSV 配置文件添加含模板变量的标签taosX Transform 插件发版本地文件恢复添加watch参数控制是否监听目录taosX 支持 adapter 自签名证书加密提升传输安全性。五、连接器生态重连、Failover、IPv6 与版本匹配检测5.1 WebSocket / libtaosws 增强Rust websocket / libtaosws 连接器支持自动重连libtaosws 支持adapterList配置项进行错误重试可在多个 adapter 之间切换C WebSocket 连接器支持重连和故障节点 Failover并支持双活连接与ws/wss 自动切换Python WebSocket 连接支持自动重连C# 增加多 DotNet 版本测试保证跨运行时一致性修复了libtaosws fetch_rows_a获取多个 Block 结果错误、WebSocket 连接上设置时区与 JVM 默认时区相同时不生效等问题。5.2 IPv6 与网络地址支持Go WebSocket 连接支持 IPv6C# WebSocket 连接支持 IPv6修复了 Windows 下本机带域名的 IPv6 解析错误、taos -h输入 IPv6 地址报错等问题。5.3 版本匹配检测与 C 连接器新增版本匹配检测机制用于在客户端与服务端版本不兼容时提前告警降低因版本漂移引发的协议兼容问题。C 连接器层面修复了 STMT2 对新增列操作时客户端崩溃、fetch_rows_a多 Block 结果错误等问题。六、SQL 与查询能力增强6.1 支持将查询结果写入超级表3.3.7.0 支持将查询结果直接写入超级表简化了 ETL 与数据重排流程配合子表名 Transform 支持表达式计算可在写入时动态生成子表名。6.2 虚拟表相关修复修复虚拟表写入请求未报告错误的问题支持在虚拟表上显示标签修复 BI 模式下虚拟表查询失败的问题。虚拟表相关语法可参考 docs/zh/05-tdengine-sql/02-ddl/04-virtualtable.md。6.3 其他查询修复修复smallint类型在使用in (1)条件过滤时无法返回查询结果修复对double类型字段排序时可能导致程序崩溃修复Nchar类型标签索引未生效修复forecast参数字符串长度超过 512 时报错修复读取内存和 STT 中复合主键数据时可能生成重复 ID 的问题修复执行show db.disk_info可能导致崩溃的问题修复timediff时间精度、纳秒精度数据库to_char结果错误等。七、系统与安全优化新增存储容量、Vnode 数目等授权项使授权粒度更精细支持采用 SM4 算法加密用户密码增强安全存储能力新增 OpenMetrics 采集便于接入 Prometheus 生态进行监控新增 Ontop 知识图谱系统集成扩展了时序数据在知识图谱场景的可用性优化减少 INFO 级别日志输出、支持更多写入性能监控指标降低日志噪声、提升可观测性优化WebSocket Poll 优化提升轮询场景吞吐修复Agent 偶发线程中断在 IPC ACK 构建过程中、sysinfo 0.33.1 导致麒麟 V10 系统 slab 内存持续增长等稳定性问题。八、工具链与生态taosBenchmark、taosdump 与客户端taosBenchmark 重构功能性能增强taosgen支持从 CSV 文件读入子表名、标签值创建子表输出结构化统计数据修复 REST 不支持绑定 vgroup、未设置 check sql 连接数翻倍等问题taosX相关优化与修复如上文所述flink 连接器 sink 增加数据转换异常信息输出便于排查同步失败原因Rust 连接器无模式写入支持获取写入行数Go 连接器压测工具发布STMT2 写入支持设置某些列为固定值、支持重复表名绑定简化批量写入编程修复系统升级时配置参数更新失败、多级存储变更单个挂载点后无法启动、Explorer 6060 端口不再支持 /rest/sql接口收敛等。九、升级建议与总结3.3.7.0 是一个能力面大幅扩展的版本建议按以下路径评估升级新类型规划如业务涉及图片、音视频、序列化对象等二进制数据可规划 BLOB/MEDIUMBLOB 字段并同步升级各语言连接器至支持 BLOB 的版本流计算迁移若存量流任务基于旧版窗口语义需对照 docs/zh/07-stream-processing/01-syntax.md 的触发类型与窗口选项核对语法兼容性尤其注意计数窗口指定列触发与乱序/删除重算语义存储架构调整需要跨集群查询历史数据时可评估数据挂载MOUNT能力注意其只读、单 dnode、不支持流计算/订阅等限制多级存储上共享存储时需确认挂载点路径与local.json配置可靠性配置可开启walForceRepair让启动过程自动检测并修复损坏的 WAL 文件连接器升级WebSocket 链路建议升级以获取自动重连、Failover 与 IPv6 支持并配合版本匹配检测尽早暴露版本不兼容问题。整体而言3.3.7.0 以流计算重构 BLOB 二进制类型 数据挂载 MQTT 订阅四件大事为主线配合连接器生态的自动重连、Failover、IPv6 与版本匹配能力以及 47 项问题修复为生产环境的稳定性、可观测性与数据流动性提供了更完整的基础。相关 SQL 语法与数据类型细节可继续查阅 docs/zh/05-tdengine-sql/、docs/zh/06-data-subscription/、docs/zh/07-stream-processing/ 与 docs/zh/08-data-ingest-and-delivery/ 等目录下的配套文档。赞分享数据库时序数据库物联网大数据实时分析云原生【免费下载链接】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 3.3.7.0 版本特性全解析流计算重构、BLOB 类型与数据接入生态升级TDengine 3.3.7.0 版本特性全解析流计算重构、BLOB 类型与数据接入生态升级 本文基于 3.3.7.0 版本说明 https://link.g数据库时序数据库大数据物联网云原生TDengine 3.3.7.0 版本全解析BLOB 数据类型、共享存储、MQTT 订阅与连接器生态全面升级TDengine 3.3.7.0 版本全解析BLOB 数据类型、共享存储、MQTT 订阅与连接器生态全面升级 TDengine 3.3.7.0 于 2025数据库时序数据库大数据物联网云原生TDengine 3.3.6.0 版本说明详解Decimal 类型、虚拟表与流计算能力全面升级TDengine 3.3.6.0 版本说明详解Decimal 类型、虚拟表与流计算能力全面升级 TDengine 3.3.6.0 于 2025 03 25 发数据库时序数据库大数据物联网云原生上一篇brpc代码质量提升持续改进代码质量的方法下一篇5分钟搞定磁盘IO监控Telegraf实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门