高级时间序列压缩器 (ATSC) 代表着在保持分析能力的同时优化存储成本的重大机遇。
译自 Open Source Innovation Comes to Time-Series Data Compression,作者 Carlos Rolo。
时间序列数据收集固有地产生海量存储需求,这可能会压垮组织。从支持预测性维护的物联网系统到天气跟踪系统和个人健身应用程序,这些监控解决方案积累了大量的实时信息——通常每秒收集多个数据点,存储成本呈指数级增长。
虽然传统的 数据压缩在一定程度上缓解了这些存储需求,但业界长期以来一直需要更有效的解决方案。认识到这一挑战,NetApp Instaclustr与堪培拉大学通过OpenSI计划合作开发了高级时间序列压缩器 (ATSC)——一项从根本上重新构想大容量时间序列数据压缩的开源创新。
以下是关于它的使用方法。
当前时间序列压缩领域主要由无损解决方案主导,例如LZ4、DoubleDelta和ZSTD——这些工具旨在以完美的保真度保留数据。ATSC 接受了一个经常被忽视的现实:大多数时间序列数据已经包含一定程度的损耗,无论是由于数据收集中的固有限制、故意欠采样还是例行数据管理流程(如滚动和平均)。
基于此认识,ATSC 实现了一种复杂的 有损压缩方法。它不是存储完整的数据集,而是生成与原始数据模式非常接近的数学函数,只存储这些函数的基本参数。这种方法与粒度可配置性相结合——用户可以精确调整所需的精度级别,根据其特定用例在存储效率和数据保真度之间取得平衡。结果是解压缩后的数据虽然与原始数据不完全相同,但仍保持了实际分析和决策所需的精度。
考虑一个温度监控数据的实际示例。下图比较了传统的无损存储与ATSC的方法,展示了ATSC如何捕捉系统指标典型的基本温度模式和渐变变化。虽然ATSC版本使用的存储空间明显较少,但它保留了进行有意义分析所需的关键特征——峰值、谷值和整体趋势仍然清晰可见且具有分析价值。
无损与ATSC温度数据
ATSC的核心采用一套复杂的数学方法来压缩时间序列数据:快速傅里叶变换 (FFT) 用于周期性模式,常数函数用于稳定读数,Catmull-Rom插值用于平滑过渡,反距离加权插值用于不规则数据点。系统通过对每个数据段的快速统计分析智能地选择最佳方法。每当选择不明确时,ATSC都会对多种方法进行基准测试,然后选择最有效的压缩方法。
ATSC设计中的一个关键创新是其默认的数据分割策略。ATSC不是将整个数据集作为单个单元进行处理,而是将数据分解成可管理的段。这种方法具有多种优势:
- 通过更小的数据块的并行处理提高计算效率。
- 通过适应局部数据特征来更精确地拟合函数。
- 减少压缩和解压缩过程中的内存开销。
- 选择性数据访问,允许用户解压缩特定时间范围而无需处理整个文件。
这种架构始终取得显著成果,压缩后的数据与原始值的偏差通常小于1%。对于需要更高精度的应用程序,ATSC 提供可配置的精度阈值以匹配特定用例的要求。
无损与ATSC多项式拟合与ATSC快速傅里叶变换拟合
ATSC实现了压缩比,从根本上改变了时间序列数据存储的经济性。在严格的测试中,压缩比范围从46:1到880:1不等,通常分析价值的损失可以忽略不计。从另一个角度来看:与行业标准解决方案相比,ATSC的压缩效率大约是LZ4的10倍,是Prometheus的30倍。
拟合度更好的紫色函数使用的数据存储空间是拟合度较差的红色函数的两倍。
这些性能指标直接转化为运营优势:以前需要TB级存储空间的数据现在可以用GB级存储空间维护,同时保留分析所需保真度。这种压缩效率使得保留更长的历史数据集和实现更高频率的数据收集成为可能——这些选项在传统的压缩方法中之前是成本过高的。
ATSC独特的压缩能力使其在可以平衡存储效率和精确数据再现的场景中特别有价值。以下是ATSC提供卓越价值的三个关键应用:
长期数据存档
对于管理历史指标的组织来说,ATSC改变了数据保留的经济性。在将时间序列数据迁移到长期存储时,ATSC的压缩使组织能够维护全面的历史记录,同时大幅降低存储成本。对于大多数分析目的而言,最小的信息丢失可以忽略不计,这使其成为存档要求的理想解决方案。
高频数据采集
ATSC解决了常见的监控难题:采样频率和存储成本之间的权衡。由于存储限制而以前仅限于30秒采样间隔的组织现在可以大幅提高其采样率,同时实际上降低存储需求。这使得更精确的事件检测和系统监控成为可能,而无需传统的存储负担。
运营指标和可视化
对于系统监控应用程序(跟踪CPU使用率、内存利用率和类似指标),ATSC的方法特别有效。这些指标通常显示ATSC的数学函数可以有效建模的逐渐变化和模式。当将此类数据可视化以供人工分析时,精度上的细微差异是难以察觉的,而存储节省却很大。
ATSC压缩方法的灵活性允许组织针对每个特定用例优化其数据存储策略,在精度和效率之间找到理想的平衡点。
原始数据(黄色)与压缩88倍的ATSC数据(绿色)。
ATSC作为开源项目在GitHub上可用,组织可以随时评估和实施。该项目正在积极扩展其生态系统,正在开发与包括ClickHouse和Apache Cassandra在内流行数据库的新集成。这些集成将简化ATSC的采用,使其强大的压缩能力更容易被更广泛的应用程序所使用。
对于管理大规模时间序列数据的组织而言,ATSC代表着优化存储成本同时保持分析能力的重大机遇。其开源特性确保了透明性并允许社区贡献,而其可配置的压缩设置则可以精确控制存储效率和数据保真度之间的平衡。
随着数据量呈指数级增长,ATSC提供了一种务实、具有前瞻性的时间序列数据压缩方法,它符合技术要求和业务目标。