ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TDengine 3.4.0.9 发布说明深度解析:虚拟表备份、订阅令牌、权限修复与 40 项改进全景

TDengine 3.4.0.9 发布说明深度解析:虚拟表备份、订阅令牌、权限修复与 40 项改进全景 TDengine 3.4.0.9 发布说明深度解析虚拟表备份、订阅令牌、权限修复与 40 项改进全景【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine发布版本3.4.0.9 发布日期2026-03-02本文以 TDengine 官方 3.4.0.9 Release Notesdocs/en/17-release-history/03-notes/3.4.0.9.md为骨架结合仓库源码逐项展开。3.4.0.9 是 3.4.x 系列的一次重要的稳定性与功能补强版本共包含 2 项新功能、7 项增强和 40 项修复覆盖 taosAdapter 订阅令牌、taosdump 虚拟表导入导出、Explorer 大规模 UI 增强、流计算stream乱序与触发逻辑、权限privilege体系、虚拟表查询性能等核心模块。读完本文你将能理解该版本的每一个变更点及其对应的源码依据掌握虚拟表备份--contentext-meta与 taosAdapter 订阅令牌的配置方式了解权限、流计算、日志与配置参数等关键修复的底层原理并据此评估升级路径与回归测试重点。一、版本概览一次以“稳定性和正确性”为主的补强3.4.0.9 发布于 2026-03-02其变更清单呈现三个明显特征功能增量克制仅 2 项新功能taosAdapter 订阅令牌、taosdump 虚拟表导入导出聚焦于工具链与接入层而非核心存储引擎的架构改动表明该版本定位为 3.4.x 主线的稳定化迭代。增强围绕运维体验7 项增强中有 5 项Explorer UI、日志文件数、supportVnodes上限、CREATE XNODE TASK报错信息、表名模板表达式属于可观测性与易用性范畴。修复覆盖纵深40 项修复横跨权限体系4 项、流计算4 项、Explorer/taosX 工具链10 项、连接协议native 连接端口占用、数据类型decimal stmt 查询崩溃、tinyint(1)/boolean与安全fast-xml-parser CVE-2026-25896等。对于在生产环境运行 3.4.0.x 的用户本版本尤其值得关注权限相关的 4 项修复直接影响安全模型的有效性流计算的 4 项修复关系到计算结果的正确性与触发及时性而日志文件数调整、supportVnodes上限调整则影响部署配置的默认行为。二、新功能详解2.1 taosAdapter 订阅令牌Token支持Release Notes 原文feat: taosAdapter add token support for subscriptiontaosAdapter 是 TDengine 的 RESTful/WebSocket 接入网关。在 3.4.0.9 之前通过 WebSocket 协议发起数据订阅tmq时taosAdapter 的鉴权走的是传统的用户/密码认证本次新增对**令牌token**的支持使订阅链路可以像 taosdump 云备份、其他云接入场景一样使用独立令牌完成鉴权避免在客户端侧暴露明文口令。从仓库证据看令牌接入在该版本工具链中是统一的既有机制例如 taosdump 参数解析 中-X, --dsnDSN支持https://host?tokenTOKEN形式并支持TDENGINE_CLOUD_DSN环境变量。3.4.0.9 将同样的令牌鉴权语义扩展到了 taosAdapter 的订阅场景使基于 tmq 的订阅消费者可以复用云侧或企业侧的令牌体系。使用前提与建议该功能适用于通过 taosAdapterWebSocket 端口默认 6041发起订阅的客户端令牌的签发与吊销由服务端统一管理客户端不再直接持有用户名/密码降低了口令泄露面升级后建议在测试环境先用一个订阅消费者验证令牌鉴权链路再切换生产流量。2.2 taosdump 支持虚拟表导入/导出Release Notes 原文feat: taosdump support import/export virtual tables虚拟表Virtual Table是 TDengine 3.4.x 引入的逻辑表能力——它不直接存储数据而是按定义从一张或多张物理表/既有虚拟表读取列数据、按时间戳对齐后按需生成结果集详见 虚拟表文档。在 3.4.0.9 之前taosdump 只能备份物理表结构与数据虚拟表这类“扩展元数据ext-meta”无法随备份迁移导致跨集群迁移时虚拟表结构丢失。本次新增将虚拟表纳入备份/恢复范围。从 taosdump 参数帮助 的源码可以看到内容分层模型的落地-M, --contentCONTENT What to backup/restore: basic - super/child/normal tables meta and time-series data(default) ext-meta - streams/virtual tables/topics meta all - basic ext-meta对应的类型定义位于 bckTypes.hBCK_CONTENT_BASIC 0x1物理表 数据、BCK_CONTENT_EXTMETA 0x2虚拟表 流 主题、BCK_CONTENT_ALL 0x3两者合并。备份进度也为此新增了独立的阶段标识PROGRESS_PHASE_EXTMETA 3bckProgress.h说明虚拟表/流/主题的备份发生在物理数据备份之后。实操要点备份虚拟表及其依赖结构使用taosdump -M all或-M ext-meta仅导扩展元数据恢复时需要注意顺序问题源码注释明确指出恢复 ext-meta 时目标数据库必须已存在因为跨库的流/虚拟表需要在被依赖的库就绪后才能恢复restoreMeta.h虚拟表本身不存数据因此备份只涉及结构SHOW CREATE TABLE元数据backupData.c中也会跳过虚拟超级表的数据备份skip data backup for virtual STBbackupData.c备份/恢复虚拟超级表时其SHOW CREATE TABLE输出可能内嵌\n换行符backupMeta.c 已针对该场景做了处理升级后无需额外转义。三、增强项详解3.1 Explorer 大规模 UI 增强Release Notes 原文enh: massive ui enhancement for explorerExplorer 是 TDengine 的图形化管理界面Web 控制台。本版本的 UI 增强是“massive大规模”级别的与其配套的修复项第 20、23、25、28、31、32 项等共同构成了 Explorer 从交互体验到后端 API 的全面打磨修复 tmq 连接检查无响应fix 20修复切换 tag 分享主题时的告警语法错误fix 23支持 Grid 自动伸缩fix 25Grid auto scalable in Explorer修复备份任务创建、批量操作 API、build task 更新 SQL 等一批后端接口问题fix 28、31、32。这些改动整体说明 3.4.0.9 将 Explorer 的稳定性提到了与核心服务同等重要的位置对于以 Web 控制台为主要运维入口的用户升级后 UI 操作链路的故障率会有明显下降。3.2 优化超级表子表订阅场景下的标签修改对写入的影响Release Notes 原文enh: optimize the impact of frequent child table tag modifications on data writing when child tables of super table have subscriptions当超级表STable的子表上建有订阅如基于子表的 tmq 订阅或流计算触发表时频繁修改子表标签会与写入路径产生耦合拖慢写入。本次增强优化了这一交互从源码结构看订阅与触发表相关逻辑集中在 source/libs/new-stream 目录包括streamTriggerMerger.c、streamTriggerTask.c、streamRunner.c等标签变更触发的元数据广播与数据写入之间不再互相阻塞。对于高频改标签 高频写入叠加订阅的 IIoT 场景此项优化可直接降低写入 P99 延迟。3.3 表名模板支持表达式Release Notes 原文enh: table name template support expressiontaosBenchmark以及部分写入工具支持通过表名模板批量生成子表。此前模板仅支持固定占位符3.4.0.9 起模板内可嵌入表达式使得批量建表时的命名可以携带计算逻辑例如基于时间、序号或标签值派生的名称进一步减少手工维护模板的成本。使用建议升级后可在 taosBenchmark 的 case JSON 中将原来的纯占位符模板替换为表达式形式表达式语法与结果需在测试环境先行验证确认生成的子表命名符合预期后再用于压测。3.4 提升含 tbname 列的虚拟表查询性能Release Notes 原文enh: improve performance of virtual table queries with the tbname column虚拟表查询在投影中包含tbname子表名列时此前需要在扫描阶段额外解析元数据性能存在优化空间。3.4.0.9 优化了该路径。从执行器源码看虚拟表扫描由virtualtablescanoperator.c负责source/libs/executor/src/virtualtablescanoperator.c本次改动直接作用于该算子的列解析与行构造逻辑减少了tbname投影带来的额外开销。对含大量虚拟子表、且查询经常带tbname分组的聚合场景收益明显。3.5 日志文件数缩减为 3 个Release Notes 原文enh: reduce log files to 3tdengine 服务端taosd的日志滚动机制将保留的日志文件数由原来的多个缩减为 3 个。从 tglobal.c 的日志初始化入口taosCreateLog(const char *logname, int32_t logFileNum, ...)可见日志文件数是启动时显式传入的参数。缩减后收益磁盘占用更可控日志目录默认/var/log/taos不会无限制膨胀影响历史日志保留窗口变短排障时若需要回溯更长时间应提前将日志接入外部采集如 syslog、taoskeeper 监控或日志轮转脚本或自行调大日志文件数配置。3.6 配置参数 supportVnodes 最大值由 4096 调整为 1024Release Notes 原文enh: adjust the maximum value of configuration parameter supportVnodes from 4096 to 1024supportVnodes用于声明单个 dnode 支持的最大 vnode 数量。3.4.0.9 将其合法取值范围上限从 4096 收敛为 1024。这一改动在源码配置表中已经落地——tglobal.c 中的注册语句为TAOS_CHECK_RETURN(cfgAddInt32(pCfg, supportVnodes, tsNumOfSupportVnodes, 0, 1024, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER, CFG_CATEGORY_LOCAL, CFG_PRIV_SYSTEM));其中0, 1024即最小值 0、最大值 1024且该参数是服务端CFG_SCOPE_SERVER本地配置、支持企业版动态调整CFG_DYN_ENT_SERVER。该值在 dnode 上报状态、vgroup 分配mndDnode.c、mndVgroup.c中用于容量规划与 vnode 均衡。升级注意事项若现有配置文件中supportVnodes的值超过 1024如 2048、4096升级后启动校验将失败或回落必须先将该参数调整为 ≤1024 再升级对绝大多数物理机/云主机单节点 1024 个 vnode 已远高于实际承载量此调整是合理的资源约束收敛一般无需关注该参数属服务端本地配置各节点独立生效集群内需保持一致以避免容量认知偏差。3.7 CREATE XNODE TASK 报错信息细化Release Notes 原文enh: CREATE XNODE TASK error message refinementxnode 是 TDengine 分布式任务如 taosX 数据接入任务的执行载体。此前CREATE XNODE TASK在权限不足、状态异常或参数错误时给出的错误信息过于笼统排障成本高。3.4.0.9 对相关报错信息做了分类细化。配套修复项还包括“创建 xnode 时出现意外错误日志”fix 18、“xnoded 角色时间检查错误导致异常退出”fix 34、“xnode 任务卡在 created 状态”fix 24共同提升了 xnode 任务的创建成功率与可诊断性。四、关键修复项分类详解40 项4.1 权限体系fix 2、3、4、5、6、9、10、15、16本版本对权限体系做了集中修补直接关系安全模型的有效性建议优先阅读GRANT ALL 对指定流不生效fix 2向特定 stream 授予ALL权限后实际不生效。从 mndStream.c 的权限校验逻辑如PRIV_CM_SHOW、PRIV_CM_STOP、PRIV_CM_START、PRIV_CM_DROP、PRIV_CM_RECALC针对PRIV_OBJ_STREAM的检查可以推断此前ALL在对象级权限展开时未覆盖 stream 对象类型的全部操作码本版本补齐了映射。START/STOP STREAM 授权后不生效fix 3单独授予流的启停权限后校验路径未正确命中对应源码中PRIV_CM_START/PRIV_CM_STOPPRIV_OBJ_STREAM的组合检查已修复。有 DROP STREAM 权限却无法删除流fix 4删除操作未正确匹配对象级 DROP 权限PRIV_CM_DROPPRIV_OBJ_STREAM导致权限判定失败已修复。无权限查询视图导致 taosd 崩溃fix 5查询无权限的视图时触发空指针/未定义路径属于安全边界上的健壮性问题升级后不再崩溃而是返回明确的权限错误。ALTER VIEW 权限授权后不生效fix 6视图的 ALTER 权限校验路径与执行路径不一致已对齐源码中视图权限校验见 parAuthenticator.c 的checkViewAuth。auditor 无法查看完整用户信息fix 7审计角色auditor查看用户列表时信息被截断已修复。DROP ROLE ... IF EXISTS 失败fix 9使用IF EXISTS语法删除不存在的角色时未按语义返回成功已修复角色删除权限校验见 parAuthenticator.c。权限缺失时报错信息不清晰fix 10统一了缺少权限时的错误提示文案便于快速定位是无权限还是对象不存在。普通用户建普通表后无显式授权缺写权限fix 15普通用户创建普通表后本应自动获得对该表的写权限但 3.4.0.9 之前实际校验失败导致“自己建的表自己不能写”。本次修复了建表后的隐式授权逻辑属于数据写入链路上的重要正确性修复。新增加密函数名改关键字后数据写入串内容fix 16新增加密函数被命名为关键字后写入时关键字被当作实际内容误写库中已通过调整命名/转义规则解决。升级建议若线上存在基于 stream/视图/角色授权或普通用户自助建表的场景建议升级后编写覆盖授权→执行→回收全链路的冒烟用例重点验证 fix 2/3/4/6/15 对应的操作。4.2 流计算fix 8、12、13、35、37、38流计算是本版本修复密度最高的模块之一6 项修复覆盖正确性与触发机制varchar 复合主键表的流读取崩溃fix 8当触发表/源表使用 varchar 类型的复合主键如timestamp varchar组合主键见 超级表文档 中COMPOSITE KEY语法时流读取其时间戳字段触发崩溃已修复。流子查询中 JOIN 对时间占位符误报缺主键fix 12流子查询结果第一列为_twstart等时间占位符且包含 JOIN 时引擎误报“缺少时间戳主键”已修复。流子查询含 interval 窗口时结果时间戳错置fix 13interval 开窗后结果集的时间戳列被错误设置影响窗口聚合结果的时间对齐已修复。带主键触发表乱序数据的 merge 逻辑错误fix 35流处理乱序数据时触发表带主键场景下 merge 逻辑处理错误可能导致数据错位或丢失已修复——该逻辑位于 streamTriggerMerger.c。sliding interval 时扫描间隔误判fix 37滑动触发场景中sliding interval时扫描间隔判定错误会导致窗口计算遗漏已修复。max_delay 触发重置等待时间导致长时间不触发fix 38触发阶段若积压大量待算请求max_delay触发会不断重置等待计时导致计算迟迟不被触发。这是典型的“触发饥饿”问题本次修复后max_delay语义恢复正确相关调度逻辑见 streamTriggerTask.c。升级建议使用流计算且配置了sliding interval、max_delay、复合主键或 JOIN 子查询的用户应重点回归以上场景尤其建议构造乱序数据测试 fix 35 的 merge 正确性。4.3 连接与客户端协议fix 11、36、40macOS 上 native 连接 taos_query 端口占用持续增长fix 11在 macOS 上反复调用 native 连接的taos_query方法时端口fd持续泄漏增长属于客户端资源释放问题本次已修复。stmt 查询 decimal 类型客户端崩溃fix 36使用 stmt参数化/绑定接口查询decimal类型数据时客户端崩溃涉及 decimal 数据在绑定结果集时的内存布局处理decimal 类型实现见 source/libs/decimal已修复。非法用户登录导致 adapter 内存增长fix 40非法用户反复尝试登录时taosAdapter 侧内存持续增长资源未释放已修复降低了暴力破解尝试对内存的冲击。4.4 虚拟表相关fix 39与数据写入fix 21、27taosX 兼容 3.4.x information_schema 查询结果变化fix 39taosX 对information_schema的查询结果解析与 3.4.x 的系统表结构变更不同步已做兼容适配。str len 计算错误导致非法 raw data len 的 create 子句报错fix 21字符串长度计算错误会引发建表语句create clause报“非法原始数据长度”已修复底层长度计算。STMT 写入时自动建表请求未释放导致内存泄漏fix 27STMT 数据写入过程中产生的自动建表请求对象未释放形成内存泄漏已修复——该场景常见于 schemaless/自动建表写入路径。4.5 Explorer / taosX 工具链fix 14、17、19、20、22-26、28-34审计建库操作在未设置数据加密密钥时无返回fix 14audit database creation在未配置加密密钥时挂起无响应已修复。timetruncate 偶发无结果fix 17timetruncate函数偶尔返回空结果属边界条件处理缺陷已修复。taosX 解析器长度扩至 48kfix 19expand parser length to 48k in taosX提升了超长 SQL/表达式的解析上限。Explorer tmq 连接检查无响应fix 20见 3.1 节。通过 agent 创建任务失败fix 22create task via agent error修复 agent 通道创建任务的失败问题。Explorer 切换 tag 共享主题告警语法错误fix 23见 3.1 节。xnode 任务卡在 created 状态fix 24任务状态机在 created 阶段推进失败已修复。Explorer Grid 自动伸缩fix 25见 3.1 节。mysql tinyint(1)/boolean 读取fix 26数据接入 mysql 时对tinyint(1)/boolean类型的读取处理修正。Explorer 备份任务创建错误fix 28、任务 API 创建成功后数据为空fix 30、批量操作 API 错误fix 31、build task 更新 SQL 错误fix 32一批 Explorer 后端接口问题集中修复。opcplc 特殊 point id 导致数据点列表错误fix 29OPC PLC 数据源中特殊 point id 导致的数据点列表解析错误已修复。fast-xml-parser CVE-2026-25896fix 33taosX 依赖的fast-xml-parser存在 CVE-2026-25896 安全漏洞本版本升级依赖完成修复。安全建议涉及 XML 解析的接入场景应尽快升级。xnoded 角色时间检查错误导致异常退出fix 34见 3.7 节。五、升级路径与回归测试建议结合以上变更点给出可落地的升级与验证清单升级前检查确认所有节点配置文件中supportVnodes均 ≤ 1024否则先行调整梳理并记录当前日志保留策略日志文件数已缩减为 3。权限回归构造覆盖以下操作的测试脚本——对 stream 授予ALL/START/STOP/DROP权限后执行对应操作DROP ROLE IF EXISTS普通用户建表后自写无权限查询视图应返回权限错误而非崩溃auditor 查看用户完整信息。流计算回归重点验证sliding interval、max_delay触发及时性、varchar 复合主键源表、含 JOIN 与_twstart占位符的子查询、带主键触发表的乱序数据 merge。虚拟表备份回归使用taosdump -M all备份包含虚拟表/流/主题的库在目标集群先恢复 basic 再恢复 ext-meta验证虚拟表结构与跨库依赖完整还原。连接与内存回归macOS 端长时间循环调用 nativetaos_query观察端口占用STMT 自动建表写入后观察内存是否平稳非法登录重试后观察 adapter 内存曲线。安全项确认 taosX 依赖已随版本升级脱离 fast-xml-parser CVE-2026-25896 影响范围。六、小结TDengine 3.4.0.9 是一份典型的“稳定化 工具链补强”版本功能面上订阅令牌与虚拟表备份补全了接入与迁移能力增强面上虚拟表tbname查询性能、日志文件数、supportVnodes上限与 Explorer 体验得到系统性改进修复面上权限体系、流计算正确性、连接资源释放与一批工具链接口问题被集中收敛。对于从 3.4.0.x 升级的用户本文第五节的回归清单可直接作为验收依据。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表