分享自:

F3:面向未来的开源数据文件格式

期刊:proc. acm manag. dataDOI:10.1145/3749163

这篇文档属于类型a,即报告了一项原创性研究。以下是针对该研究的学术报告:


F3:面向未来的开源数据文件格式——学术研究报告

一、作者与发表信息

本研究由来自清华大学(中国)的Xinyu Zeng、Ruijun Meng、Huanchen Zhang(通讯作者),卡内基梅隆大学(美国)的Martin Prammer、Jignesh M. Patel、Andrew Pavlo,以及Posit PBC(美国)的Wes McKinney合作完成。论文标题为《F3: The Open-Source Data File Format for the Future》,发表于ACM Proceedings on Management of Data (SIGMOD) 2025年9月刊,文章编号245,共27页,DOI: 10.11453749163

二、学术背景

科学领域:本研究属于数据管理系统与存储格式领域,聚焦于列式存储(columnar storage)文件格式的设计与优化。

研究动机:当前主流的列式存储格式(如Parquet、ORC)诞生于2010年代初,其设计基于过时的硬件假设(如存储与网络性能远低于当前水平)和负载模式(如窄表为主)。随着数据湖(data lake)、机器学习(ML)等应用兴起,现代需求包括宽表(wide tables)、高维向量、随机访问等,现有格式存在扩展性不足(难以支持新编码方法)和互操作性差(不同版本库兼容性问题)两大核心缺陷。

研究目标:提出下一代开源文件格式F3(Future-Proof File Format),以互操作性(interoperability)、扩展性(extensibility)、效率(efficiency)为核心设计原则,通过创新的文件布局和WebAssembly(Wasm)嵌入式解码器,解决现有格式的局限性。

三、研究流程与方法

  1. 问题分析与需求定义

    • 研究对象:300个真实Parquet文件(来自公共对象存储)的元数据分析,揭示仅少数文件使用Parquet V2特性,主因是生态系统碎片化。
    • 实验方法:对比Parquet、ORC、Nimble等格式在压缩率、解码速度、随机访问等指标的性能瓶颈。
  2. F3格式设计

    • 文件布局创新
      • 解耦I/O单元(IOUnit)与逻辑行组(row group):IOUnit固定为8MB(适配云存储),支持按列独立刷新,避免内存溢出(OOM)。
      • 灵活字典作用域(dictionary scope):字典可局部(local)、全局(shared)或禁用(nodict),通过采样策略(如1%数据)动态选择最优作用域,压缩率提升10%(相比固定作用域)。
      • 分层编码单元(EncUnit):最小解码单元,支持级联编码(cascading encoding)和向量化解码(vectorized decoding)。
    • 元数据优化
      • 使用FlatBuffer实现零拷贝反序列化(zero-copy deserialization),投影(projection)时跳过无关列元数据,解析速度比Parquet快10倍(万列宽表场景)。
  3. Wasm嵌入式解码器

    • 设计:每个F3文件内嵌Wasm二进制解码器(<1MB),通过通用API(如init()decode())实现插件化扩展。
    • 实现
      • 安全沙箱:Wasm隔离内存空间,防止恶意代码。
      • 零拷贝输出:通过BufferView机制将解码数据直接映射为Arrow格式,避免内存复制。
      • 实例池化:复用Wasm实例,减少运行时开销(编译时间<50ms)。
  4. 性能评估

    • 数据集:ClickBench、TPC-H LineItem、Public BI等8类负载(涵盖OLAP、ML、日志等)。
    • 对比指标:压缩率(CR)、读取吞吐量、随机访问延迟、元数据解析时间。
    • 实验配置:NVMe SSD服务器,清除OS缓存后重复5次测试。

四、主要结果

  1. 效率表现

    • 压缩率:F3与Parquet相当(部分数据集差5%),但优于ORC;Nimble压缩率更高但解码速度慢30%。
    • 读取吞吐量:F3比Parquet快1.2–1.5倍(得益于向量化解码),Wasm解码器仅引入10–30%性能损失。
    • 随机访问:延迟为Parquet的1/10(因解耦IOUnit),仅次于Lance(无级联编码)。
  2. 扩展性与互操作性

    • 自定义编码:用户可通过Wasm添加新编码(如LECO时间序列编码),文件体积减少50%且无需升级库。
    • 跨版本兼容:旧版F3库可通过内嵌Wasm读取新版文件,解决Parquet的“最低特性集”问题。
  3. 元数据优化

    • 万列宽表投影10列时,F3元数据解析仅需10ms(Parquet为100ms)。

五、结论与价值

科学价值
- 提出首个通过Wasm实现自描述文件(self-describing file)的列式格式,为未来编码方法演进提供标准化路径。
- 重新定义文件布局设计范式(如IOUnit解耦、字典作用域动态化),推动存储格式与硬件/负载的解耦。

应用价值
- 云计算与ML:适配S3高延迟存储,支持宽表、向量嵌入等ML负载。
- 开源生态:降低格式碎片化风险,避免重复开发(如Nimble、Lance等垂直场景格式)。

六、研究亮点

  1. Wasm嵌入式解码:首次将Wasm用于文件格式的跨平台兼容,平衡性能与安全性。
  2. 布局灵活性:IOUnit与字典作用域的动态调整,突破传统行组设计的刚性限制。
  3. 全流程优化:从元数据(FlatBuffer)到数据解码(Arrow零拷贝)的全链路高效设计。

七、其他价值

  • 开源实践:代码已公开于GitHub,接受社区贡献。
  • 行业影响:获Google DAPA研究资助,可能成为下一代数据湖标准格式的候选方案。

(注:报告字数约1800字,符合要求)

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com