许多从存储、虚拟化和云环境收集大量时间序列数据的企业常遇到问题:在不压垮存储和计算的情况下保留长期洞察(数据)。为解决此问题,时间序列分析平台需高效处理数十亿记录并提供可操作洞察。
- 为何需要数据聚合:平台从多种源收集性能指标,各源生成数据速度不同,数量易达数十亿行。保留策略虽能删除旧数据,但对于趋势分析等任务需保留长期数据,在关系数据库中大规模删除数据对系统资源压力大,且存储高分辨率数据消耗大量存储并拖慢查询性能。为此构建数据聚合层,将旧数据汇总为较大时间桶,保留重要趋势和洞察。
- 什么是数据聚合:聚焦将高频性能数据(如 30 秒指标)转换为更易管理的摘要(如 5 分钟、15 分钟等平均值),可减少数据量同时保留重要趋势和模式,不同指标可根据分析使用不同函数,聚合框架由元数据驱动并集成到数据库,可按需调整聚合规则。
新方法:元数据驱动的聚合框架:
- 多级聚合框架:实现多层时间桶结构,包括原始数据(1 秒至 5 分钟)和聚合级别(5、15、30、60 分钟等),各级别聚合上一级,可延长保留时间并控制存储增长。
- 元数据驱动的编排:用元数据表定义要聚合的源表和列、用户定义的聚合函数及各级别保留期和粒度,可动态调整保留和聚合策略。
- 保留感知的生命周期:聚合前进行删除,将保留视为转换触发器,支持每个子系统的 5 层生命周期,确保删除旧数据时关键洞察仍可用。
- 基于分区的优化:按时间戳区间分区和聚合级别子分区,实现查询和插入时的分区修剪、快速删除分区及粒度级聚合控制,可无缝扩展到数十亿行并简化维护任务。
- 嵌入夜间清除:与系统的夜间清除计划集成,自顶向下处理聚合级别,通过插入式汇总触发,仅在成功聚合后删除分区,无需外部 ETL 工具。
- 动态 SQL 生成:使用元数据和分区过滤器动态生成聚合 SQL,逻辑可根据子系统和分区调整。
- 启用聚合的先决条件:表需迁移到时间序列分区,需设置元数据脚本定义列、函数和级别,设置好后通过夜间清除过程触发聚合。
- 聚合函数示例:如
performance_log
表中不同列使用不同聚合函数(AVG、MAX 等)。 - 聚合级别和保留:不同级别有不同粒度和保留时间,如级别 0 为原始数据 30 秒等,保留 45 天,级别 1 为 5 分钟,保留 90 天等,每级聚合上一级。
- 嵌入清除生命周期:深度集成到平台清除引擎,夜间运行,通过汇总保留长期趋势,无需外部 ETL 工具且有自身审计流程。
- 示例:性能聚合:从
performance_log
表(30 秒收集频率,每日 2800 万行,每年 100 亿行)经聚合后数据量减少 10 倍。 - 竞争比较:与 TimescaleDB、InfluxDB、Timestream、Splunk、Oracle Native 等工具对比,此框架在元数据驱动、多级、保留感知、分区优化方面均表现出色。
- 益处:跨 RDBMS 友好,可扩展到多种数据库;数据量减少达 10 倍;预聚合值提高查询速度;管理更简单。
- 未来计划:可能包括基于 AI 的异常去除分析和端到端自动化设置。
- 结论:传统 RDBMS 难以应对企业级时间序列数据,此引擎内元数据驱动的聚合框架将保留从简单清除转变为智能转换管道,在大规模应用中高效且必要,建议从小开始建模保留生命周期等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。