
TDengine 3.3.8.0 版本全解析RSMA 下采样存储、流式计算重构与函数体系扩展【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineTDengine 3.3.8.0 于 2025-09-30 正式发布是本项目迈向企业级海量时序数据治理的重要版本。本指南面向 DBA、平台架构师与使用流式计算/降采样/数据接入的开发者系统梳理本版本 26 项新特性、23 项增强与 47 项问题修复并深入结合仓库中的 SQL 语法文档与源码实现如 RSMA 语法文档、流处理语法文档 与 scalar 函数实现帮助读者快速掌握新能力并评估升级影响。版本概览发布日期2025-09-30发布形态3.3.x 系列里程碑版本核心方向包括引入 Rollup SMARSMA分层降采样存储显著降低历史数据磁盘占用并加速冷数据查询基于重构后的流计算引擎重新实现 TSMA流计算性能全面提升补齐 TDgpt 分析算法PROPHET、Pearson 相关系数、数据插值扩充 SQL 函数体系条件判断类、统计类、集合匹配类、日期类函数支持 TLS 证书认证与加密传输强化数据安全能力流计算触发、通知、虚拟表联动等机制大幅增强。下文按 Features / Enhancements / Fixes 三大部分展开并针对重点特性给出 SQL 语法与源码级佐证。一、核心新特性Features详解1. Rollup SMARSMA企业级降采样存储本版本引入了RSMARollup SMASmall Materialized Aggregation即以时间窗口对用户数据降采样并落盘存储使原始数据短期保留、降采样数据长期保留成为可能。其完整语法、限制与运维命令详见 RSMA 文档在仓库中的实现位于 sma 目录包括smaRollup.crollup 调度与子表创建、smaEnv.cSMA 环境/请求处理、smaCommit.c结果提交等模块。基本逻辑自动触发当数据从低存储层级迁移到高存储层级时自动执行降采样由数据库的KEEP选项keep0/keep1/keep2控制多层级存储详见 多级存储规划。手动触发用于更新/删除后需要重算降采样结果或数据已迁移至目标层级但尚未降采样的场景。不改变查询语义RSMA 对用户透明查询仍返回一致结果。使用注意降采样完成后对应原始数据文件会被删除且降采样数据与原始数据的时间范围不重叠。层级 1/2/3 的数据均支持更新与删除但更新/删除不会自动触发重算因此 2/3 层级发生乱序写入时已聚合窗口可能包含多行手动重算对AVG/FIRST/LAST可能不精确而MIN/MAX/SUM不受影响。RSMA 依赖 S3 迁移首次 S3 迁移前必须先完成 RSMA 计算。创建 RSMACREATE RSMA [IF NOT EXISTS] rsma_name ON [dbname.]table_name FUNCTION([func_name(col_name)[, ...]]) INTERVAL(interval1[, interval2]);名称规则与表名一致最大长度193。只能建在超级表上超级表含BLOB/MEDIUMBLOB列时暂不支持。支持函数MIN、MAX、SUM、AVG、FIRST、LAST每个函数仅接受一个非主键普通列不能是 tag。FUNCTION可省略或为空未显式指定函数的列默认LAST复合主键列仅支持FIRST/LAST未指定时同样默认LAST。INTERVAL至少 1 个、至多 2 个值取值范围[0, DURATION]按数据库精度换算且至少一个非0interval1 0表示第 2 层不降采样interval2 0表示第 3 层不降采样。时间单位必须显式指定支持a毫秒、b纳秒、u微秒、s秒、m分钟、h小时、d天不支持w/n/y。两个 interval 均为正时要求interval1 interval2且interval2为interval1的整数倍且都不能超过数据库DURATIONDURATION必须能被每个正 interval 整除以降低跨文件边界计算带来的复杂度、资源消耗与碎片。使interval2为interval1的整数倍可保证MIN/MAX/SUM/FIRST/LAST相对原始数据的正确性AVG仍可能存在误差。修改 / 删除 / 查看ALTER RSMA [IF EXISTS] [db_name.]rsma_name FUNCTION ([func_name(col_name)[, ...]]); DROP RSMA [IF EXISTS] [db_name.]rsma_name; SHOW CREATE RSMA [db_name.]rsma_name; SHOW [db_name.]RSMAS; SELECT * FROM information_schema.ins_rsmas [WHERE db_name {db_name}];ALTER RSMA仅能修改之前未显式指定函数的列主要用于新增列修改前后聚合语义可能变化需先确认业务需求func_list只展示创建时通过FUNCTION显式指定的函数。手动触发降采样计算ROLLUP DATABASE db_name [start_opt] [end_opt] ROLLUP [db_name] VGROUPS IN (vgroup_ids) [start_opt] [end_opt] start_opt :: START WITH timestamp_literal -- e.g. YYYY-MM-DD HH:MM:SS | START WITH unix_timestamp -- e.g. 1672531200 | START WITH TIMESTAMP timestamp_literal end_opt :: END WITH timestamp_literal | END WITH unix_timestamp | END WITH TIMESTAMP timestamp_literal示例支持指定数据库或指定 VGroup 范围均可带起止时间窗口taos ROLLUP DATABASE d0 START WITH 2025-12-30 10:00:00.000 END WITH 2025-12-31 10:00:00.000; result | id | reason | accepted | 53584270 | success | Query OK, 1 row(s) in set (0.009359s) taos ROLLUP d0 VGROUPS IN (2,3) START WITH 2025-12-30 10:00:00.000; result | id | reason | accepted | 1726039381 | success |2. 基于重构流引擎重新实现 TSMA本版本使用重构后的流计算框架重新实现 TSMA实现代码集中在 sma 目录。配合第 40 条增强流计算性能优化TSMA 的构建与增量维护效率均有提升。底层元数据、查询与提交逻辑分别位于 smaEnv.c、smaRollup.c 与 smaCommit.c可通过 SHOW 相关命令 查看维护状态。3. TDgpt 新增 PROPHET 与统计分析算法TDgpt 时序分析组件新增三种能力PROPHET 算法面向趋势/季节性强的时间序列进行预测建模Pearson 相关系数函数用于变量间线性相关性度量插值imputation函数用于缺失数据填补。这些能力位于 tools/tdgpt配套 Python 实现见 taosanalytics可结合 AI 与高级分析章节09-ai-and-advanced-analytics中的使用说明进行调用。4. SQL 函数体系大幅扩充本版本一次性新增三类共十余个函数条件/空值处理函数IF、ISNULL、ISNOTNULL、NVL、COALESCE、NULLIF、IFNULL用于表达式分支与空值兜底。统计与聚合函数std、variance、stddev_samp、var_samp、group_concat。其中标准差的实现专门做了优化以避免潜在数值溢出见 Enhancements 第 20 条。集合匹配函数find_in_set、like_in_set、regexp_in_set用于判断某值是否命中逗号分隔集合、通配模式集合或正则集合。其实现位于 sclfunc.cfindInSetFunction/likeInSetFunction/regexpInSetFunctionfind_in_set按字节精确匹配memcmp等长比较like_in_set支持%/_通配符匹配且对NCHAR类型走宽字符UCS4路径wcsPatternMatchregexp_in_set基于 POSIX 正则regexec实现采用线程级正则编译缓存threadGetRegComp以提升重复匹配性能源码注释也明确指出其实现策略与find_in_set/like_in_set有所差异。日期函数新增date函数可从时间戳中提取日期。5. TLS 证书认证与加密传输支持基于 TLS 证书的认证与加密传输覆盖客户端与服务端双向身份校验满足安全合规场景下的连接要求。相关配置可参考 11-security-guide 目录下的安全配置文档。6. 流计算Stream机制增强本版本对 流处理 做了系统性增强涉及语法细节见 流处理语法文档partition by tag支持字符串操作分组键允许对 tag 应用字符串表达式便于按规范化后的标签值分组。state_window支持对状态列进行运算可在状态窗口内对状态列执行聚合/计算扩展状态窗口表达能力。state_window支持配置起始与结束点配合语法中的TRUE_FOR(start(...)/end(...))、ZEROTH_STATE等参数使用。delete_output_table选项新增流选项配合DELETE_RECALC、FILL_HISTORY、CALC_NOTIFY_ONLY等流选项构成更完整的重算/清理语义。识别虚拟表变化流可感知虚拟表结构变化从而避免因表结构变更导致的错误输出。通知过滤机制NOTIFY(url [, ...]) [ON (event_types)] [WHERE condition] [NOTIFY_OPTIONS(...)]支持按事件类型WINDOW_OPEN/WINDOW_CLOSE/IDLE/RESUME与条件过滤通知。通知语句支持列别名通知内容可引用查询中的列别名便于构造可读的通知载荷。7. 数据文件完整性扫描scan 命令与 BSS 浮点编码scan 命令支持扫描时序数据文件的完整性用于运维巡检与故障排查可作为 12-operations-and-tooling 运维工具链的一部分。BSSByte-Stream-Split编码对浮点数据新增 BSS 编码属于第 8 类数据压缩/编码能力的扩展相关实现与压缩模块共用 tcompression.h 声明的能力体系。8. 连接器与生态组件能力C 连接器性能基准新增 C connector 性能基准测试示例见 examples/c可用于吞吐与延迟对比。Rust WebSocket 连接器新增timezone选项在连接串中显式指定时区避免时区推导歧义。JDBC WebSocket 多端点负载均衡支持配置多个端点并在其间负载均衡提升高可用能力同时减少高并发校验时的查询次数。Explorer 向 taoskeeper 上报指标监控链路更完整可在 taoskeeper 侧统一观测。taosX 支持解析 Kafka 中key形式的值数据接入 Kafka 源时可直接解析key字段并新增性能报告能力。二、增强项Enhancements解析流计算性能优化配合 TSMA 重构整体提升流计算吞吐与延迟。Balance Vgroup Leader 命令优化使 VGroup 主节点分布更均匀均衡策略改进。新增show ssmigrate命令可查看共享存储迁移进度便于观测共享存储演进。双副本数据库支持REDISTRIBUTE命令扩展重分布能力至双副本场景。数据查询与元数据查询线程分离降低相互阻塞提升并发查询稳定性。提升按tbname分组的event_window查询效率。taos shell 在 Windows 上支持参数值紧跟名称如-hhost形式。STMT2 支持 decimal 类型绑定/查询 decimal 更完整。taosX 运行 rhai UDT 脚本时明确提示错误。taosX 断连时 agent 默认保持在线提升任务连续性。C WebSocket STMT2 性能提升。Explorer-DataIn 的 influxdb 数据源增加 perf 参数。taosX 启动时优化 db 大小与查询速度。缓存许可证校验结果减少许可证查询次数提升启动与校验效率。新增 taosAdapter 的 CPU 使用率指标。taosgen 支持独立队列写入 TDengine生成压测/模拟数据时可多队列并行写入。Explorer 的 OPCDA 数据源支持contains_bad参数。Adapter 订阅错误处理增强。Explorer 默认数据库参数调整为vgroups4, duration10。标准差计算优化防止潜在数值溢出涉及std、stddev_samp等函数。UDT 场景下即使所有值为空也显示字段名。Explorer 支持带副本数创建数据库。Adapter 记录 SQL CSV 时增加 appName 与 srcPort 字段审计可追溯性更强。三、关键修复Fixes分类解读本版本共修复 47 项问题按领域归纳如下流计算与订阅修复流处理中表名/Tag 计算的越界错误修复数据订阅无法获取流生成的普通表创建事件修复ignore_disorder开启时 watermark 判断错误修复FILL_HISTORY下首窗口计算错误、手动重算逻辑错误、乱序或删除数据下的错误计算结果修复consumer.recv_timeout导致 tmq2local 文件不完整。查询与函数修复超级虚拟表上调用 forecast 失败修复 Windows 上 RAND 函数同 seed 返回值不一致修复leastsquares输出跨编译器不一致修复cols函数获取多时间戳时结果错误修复大量并发 last 查询导致 taosd 崩溃修复以 tbname 作为预过滤条件的虚拟表触发崩溃修复 VARCHAR 类型复合主键下提交线程挂起查询导致的崩溃。连接器与客户端修复taos_close后 WebSocket 连接未关闭修复 C 原生日志同名文件问题修复 Rust 连接器consumer.recv_timeout阻塞 runtime、timeoutnever时 poll deadline 超时问题修复 ODBC 在 ms/ns 时间戳下 ADB UPDATE 的精度错误。STMT 与数据类型修复 STMT 查询错误导致的内存泄漏修复绑定空 NCHAR 类型时 STMT2 报错。taosX / Explorer / Adapter修复特殊参数sparse/realtime/stables引发 No valid epSet 错误、influxdb 任务完成后进程不退出、迁移任务并发死锁、Kafka SASL 升级后数据源校验失败修复 Explorer 权限管理、收藏 SQL 大小写、payload schema 变更后预览表残留旧字段、应使用 COMPOSITE KEY 而非 PRIMARY KEY 等 UI/逻辑问题修复 taosAdapter 指标未持续上报、JSON 序列化含意外转义。系统稳定性与配置修复 Windows 上数据目录与日志目录不一致修复ss_keeplocal无法设置为 1440m修复 ss-migration 中 fileset 不存在时崩溃修复并发 last 查询、虚拟表预过滤引发的 taosd 崩溃修复取消 restore 任务无效。这些修复大多可直接回读对应模块源码验证例如 WebSocket 连接生命周期逻辑位于 client/wrapper订阅与通知相关在 libs/transport 与 new-stream 模块中。四、升级与使用建议降采样选型如需热数据全量、冷数据降采样的存储策略可评估 RSMA建表前务必确认超级表不含BLOB/MEDIUMBLOB列并合理设计INTERVAL与数据库DURATION的整除关系详见 RSMA 文档。流计算重算语义涉及FILL_HISTORY、DELETE_RECALC、乱序写入的流任务建议升级后复测首窗口与乱序场景的计算结果本版本已针对多项相关缺陷修复。安全传输需要双向证书认证的部署可基于 TLS 证书认证特性接入 安全指南。新函数使用IF/COALESCE等条件函数、std/group_concat等统计函数、find_in_set/regexp_in_set等集合匹配函数均已可用于查询与流计算表达式regexp_in_set走正则引擎注意正则写法的开销。生态组件taosX、Explorer、taoskeeper、taosAdapter、JDBC/Rust/C WebSocket 连接器均有对应修复与增强升级时建议各组件同步更新以保持行为一致。结语TDengine 3.3.8.0 是 3.3 系列中功能密度极高的一个版本RSMA 打通了分层降采样存储的企业级路径TSMA 随流引擎重构而获得更优的维护性能函数体系与流计算控制力同步增强TLS 与监控链路进一步完善。建议在测试环境先行验证 RSMA 间隔设计、流计算重算语义与连接器升级影响后再向生产环境滚动发布。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考