尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

TDengine RSMA — 时间维度的滚动预聚合

发布时间:2026/9/17 19:38:53

资讯中心
01
ARTICLE

TDengine RSMA — 时间维度的滚动预聚合

TDengine RSMA — 时间维度的滚动预聚合
分类8.预聚合 |篇章01 RSMA适用版本TDengine v3.xv3.3.x / v3.4.x | 最后更新2026-07-06RSMARollup SMA滚动小型聚合让 TDengine 自动维护多层时间粒度的预聚合数据。原始秒级数据存几天 → 分钟级聚合存几个月 → 小时级聚合存几年存储成本降数量级长时间范围查询毫秒返回。核心概念速查表概念说明RSMARollup SMA滚动预聚合Rollup Level聚合层级如原始/1m/1hRetention各层级的保留时长Funcs预聚合的聚合函数Auto Rollup自动按时间滚动详细解析1. RSMA 的设计动机时序数据的痛点 ① 原始数据量巨大 1000 设备 × 每秒 1 次 × 1 年 315 亿行 → 存储成本高 ② 长时间范围查询慢 一年的趋势图要扫描 315 亿行 → 数分钟小时 ③ 大多数查询不需要原始精度 季度报表用日数据 年报表用月数据 原始秒数据浪费 RSMA 的解 原始秒数据 → 自动滚动 → 分钟聚合 → 小时聚合 各层级独立保留期 查询时自动选择最合适的层级2. RSMA 数据库配置-- 创建带 RSMA 的数据库CREATEDATABASErsma_dbPRECISIONmsKEEP365d DURATION10d MAXROWS4096-- RSMA 关键参数 --RETENTIONS1d:30d,1m:60d,1h:1y;含义-1d:30d → 原始数据保留30天-1m:60d → 分钟聚合保留60天-1h:1y → 小时聚合保留1年 RETENTIONS 格式层级粒度:保留期, ...-层级粒度1s,1m,1h,1d 等-保留期单位 d/w/n/y 最多3层 原始第一层第二层3. RSMA 超级表-- 创建支持 RSMA 的超级表CREATESTABLE meters(tsTIMESTAMP,currentFLOAT,voltageINT,phaseFLOAT)TAGS(locationVARCHAR(32),groupidINT)ROLLUP(AVG);-- 指定预聚合函数-- 多个聚合函数CREATESTABLE meters_full(tsTIMESTAMP,currentFLOAT,voltageINT)TAGS(locationVARCHAR(32))ROLLUP(AVG,MAX,MIN,SUM,FIRST,LAST);ROLLUP 支持的函数-AVG,SUM,MAX,MIN,FIRST,LAST,COUNT-适合分布性聚合满足结合律4. RSMA 数据流数据流转过程 写入: T0 (原始秒级数据) ↓ 原始数据存储 ↓ 自动滚动 (每分钟) ↓ 计算 AVG/MAX/MIN 等 ↓ 分钟聚合存储 ↓ 自动滚动 (每小时) ↓ 小时聚合存储 保留期管理 - 原始数据超过 30 天 → 自动删除 - 分钟聚合超过 60 天 → 自动删除 - 小时聚合超过 1 年 → 自动删除 存储节省示例 原始数据 1TB 分钟聚合 ~17GB (60倍压缩) 小时聚合 ~280MB (3600倍压缩)5. RSMA 查询查询自动选择层级 -- 查询最近 1 小时命中原始 SELECT _wstart, AVG(current) FROM meters WHERE ts now-1h INTERVAL(1m); → 使用原始数据 -- 查询最近 30 天命中分钟聚合 SELECT _wstart, AVG(current) FROM meters WHERE ts now-30d INTERVAL(1h); → 自动使用分钟聚合层 -- 查询最近 1 年命中小时聚合 SELECT _wstart, AVG(current) FROM meters WHERE ts now-1y INTERVAL(1d); → 自动使用小时聚合层 引擎的选择逻辑 ① 查询时间范围 ② 聚合粒度 (INTERVAL) ③ 所需函数必须在 ROLLUP 列表中 ④ 选择满足所有条件的最高层级6. RSMA 与流计算的区别特性RSMA流计算触发数据库内置显式创建配置DDL建库/表时CREATE STREAM查询透明自动选层查询不同表灵活性低固定函数高适用通用聚合复杂业务逻辑维护系统自动用户管理7. RSMA 与传统数据归档对比传统方式 1. 手写 ETL 脚本 2. 定时任务调度 3. 中间数据库管理 4. 查询时手动选择源表 问题 - 维护复杂 - 时间窗口边界处理麻烦 - 重复代码 RSMA 优势 - 数据库内置 - 零维护 - 查询透明 - 时间精度精准8. RSMA 限制与注意限制 ① 必须建库时配置 RETENTIONS不可后改 ② 必须建表时指定 ROLLUP ③ 最多 3 层原始 2 层聚合 ④ 仅支持分布性聚合函数 ⑤ Tag 不参与聚合 注意事项 - 滚动计算消耗 CPU - 占用磁盘但远少于原始 - 一旦数据到达保留上限 → 不可恢复 不适合 RSMA 的场景 - 需要任意精度的历史数据 - 复杂聚合PERCENTILE 等 - 业务变更频繁需重算代码示例完整 RSMA 配置-- 1. 创建数据库CREATEDATABASEpower_dbPRECISIONmsKEEP1825-- 5 年DURATION30d RETENTIONS1s:7d,1m:30d,1h:5y;USEpower_db;-- 2. 创建超级表CREATESTABLE meters(tsTIMESTAMP,currentFLOAT,voltageINT,phaseFLOAT)TAGS(locationVARCHAR(32),groupidINT)ROLLUP(AVG,MAX,MIN);-- 3. 写入数据INSERTINTOd001USINGmeters TAGS(Beijing,1)VALUES(NOW,25.3,220,0.5);-- 自动后台滚动聚合-- 4. 查询SELECT_wstart,AVG(current)FROMmetersWHEREtsnow-1yINTERVAL(1d);-- 自动使用小时聚合层检查 RSMA 状态-- 查看数据库 RSMA 配置SELECTname,precision,retentions,keepFROMinformation_schema.ins_databasesWHEREnamepower_db;-- 查看超级表 ROLLUP 设置SELECT*FROMinformation_schema.ins_stablesWHEREstable_namemeters;性能考量RSMA 存储节省层级数据量比例适用查询原始1s100% 1 天范围分钟1m~1.7%1 天~1 月小时1h~0.03%1 月~1 年查询性能提升查询范围不用 RSMA用 RSMA1 小时100ms100ms1 天1 秒1 秒1 月30 秒1 秒1 年6 分钟5 秒写入开销RSMA 滚动计算异步进行对写入吞吐影响 10%。FAQQ1: 建库后能修改 RSMA 配置吗不可以。必须建库时确定。如需调整新建库迁移数据。Q2: ROLLUP 函数可以增加吗不可以。建表后固定。如需增加新函数需重建表。Q3: 查询某些条件不命中 RSMA 怎么办引擎自动降级到原始层。WHERE 含数据列过滤通常会降级聚合层无单行数据。Q4: RSMA 数据可见吗不直接可见。用户查询超级表引擎自动选择层级对用户透明。Q5: RSMA 和 TSMA 区别RSMA固定层级时间维度自动滚动TSMA按 INDEX 配置更灵活支持任意聚合表达式参考系统构架篇01-《TDengine 整体架构全景》02-《集群拓扑深度解析》03-《MNode 内部机制深度解析》04-《RPC 通信层深度解析》05-《VNode 生命周期》06-《RAFT 共识协议》07-《端到端的消息流》数据模型01-《数据库创建与参数详解》02-《超级表/子表/普通表》03-《支持数据类型深度解析》04-《TDengine Tag 设计哲学与 Schema 变更机制》05-《TDengine 虚拟表实现原理》存储引擎01-《TDengine 存储引擎概览》02-《TDengine MemTable 深度解析》03-《TDengine WAL 预写日志机制》04-《TDengine 数据文件格式》05-《TDengine Commit 与 Flush 机制 》06-《TDengine Compaction 合并策略 》07-《TDengine 数据保留与 TTL》08-《TDengine 压缩编码机制》09-《TDengine Cache 与 Last 查询加速》10-《TDengine 逻辑计划生成》查询引擎01-《TDengine 查询引擎概览》02-《TDengine SQL 解析与词法分析》03-《TDengine 语义分析与 AST 重写》04-《TDengine 逻辑计划生成》05-《TDengine 物理计划生成》06-《TDengine 扫描算子》07-《TDengine 聚合算子》08-《TDengine 聚合算子》09-《TDengine 连接算子》10-《TDengine 排序、填充与投影》11-《TDengine 分布式查询执行》12-《TDengine EXPLAIN 与查询优化》数据写入01-《TDengine SQL INSERT》02-《TDengine 无模式写入》03-《TDengine STMT 写入》04-《TDengine 写入内部流程》05-《TDengine 数据更新删除》数据订阅01-《TDengine 数据订阅》02-《TDengine 订阅 vs Kafka》03-《TDengine TMQ 消费流程》04-《TDengine 内部机制》05-《TDengine 内部机制》关于 TDengineTDengine 专为物联网IoT平台、工业大数据平台设计。其中TDengine TSDB 是一款高性能、分布式的时序数据库Time Series Database同时它还带有内建的缓存、流式计算、数据订阅等系统功能TDengine IDMP 是一款AI原生工业数据管理平台它通过树状层次结构建立数据目录对数据进行标准化、情景化并通过 AI 提供实时分析、可视化、事件管理与报警等功能。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。