Meta开源OpenZL这套格式感知的无损压缩框架,主打在结构化数据上同时提升压缩比与处理速度,并以通用解压缩器(Universal Decoder)执行每个文件内置的还原流程,支持多种结构化数据形态,避免需要为不同格式维护多个二进制文件,其定位为提供一个定制化压缩性能与单一可维护二进制文件的折中方案。

OpenZL开发团队指出,对需要在数据工作管线中长期运维的团队,单一解压缩器的操作一致性与集中化审核,是相对务实的工程考量。

OpenZL的做法是先说清楚数据结构,再用能还原的步骤把规律整理出来,最后才压缩。不同文件可以有不同的压缩流程,但每个文件在压延时,都会把实际要怎么解压缩的流程写进文件里。解压缩器只要读取这段流程并照做就能还原,不需要另外安装或协调其他工具。

官方以Silesia数据集中的sao文件在M1 CPU与clang-17环境测试,OpenZL压缩后大小3,516,649 B,压缩比2.06,压缩速度约340 MB/s,解压速度约1,200 MB/s;同场比较zstd-3为5,531,935 B、压缩比1.31、压缩速度约220 MB/s、解压速度约850 MB/s,xz-9的数字则为4,414,351 B、1.64、3.5 MB/s、45 MB/s。此结果显示在已知结构的数据上,OpenZL可同时拉高压缩比并维持甚至提升速度。

OpenZL提供简单数据定义语言(SDDL)与脱机训练器,用户可先用默认或SDDL描述字段与嵌套结构,也可自行撰写解析器(Parser)。训练器依样本数据在转换与参数中搜索,产生多种速度与压缩比的计划,编码时把计划解析成可执行图并写入每帧(Frame),遇到控制点会依轻量统计自动选分支并记录。解压一律使用同一通用解压器,运维与性能优化集中处理,更新一次即可同时支持新旧数据。

官方针对不同形态数据提供了基准,包括栏式数值数据、Parquet与CSV等。值得注意的是,CSV的解析成本较高,测得压缩速度上限约64 MB/s。另外,要是OpenZL遇到无法理解结构的输入,框架会退回zstd以维持兼容性,显示其优势明确锁定在结构化数据场景。

对云计算存储、分布式处理、机器学习张量、数据库表格等具有明确结构的工作负载,OpenZL框架提供以结构为先的高效压缩与解压方案。OpenZL源码、文件与教学已于GitHub开放,项目目前持续开发,API与格式仍可能调整。