facebookincubator/nimble

New and extensible file format for storage of large columnar datasets.

What it solves

Nimble 是一种列式文件格式,旨在取代 Apache Parquet 和 ORC 等现有格式,特别针对大型数据集。它解决了当前格式在处理“宽”表(即包含数千列的表格)时的低效问题,这类表格在机器学习训练表和特征工程工作负载中非常常见。

How it works

Nimble 将流式编码与文件的物理布局解耦,允许进行可扩展且递归(级联)的编码。它利用 Flatbuffers 进行高效的元数据访问,并采用块编码而非流式编码,以确保在读取和解码时具有可预测的内存使用。该系统设计上对 SIMD 和 GPU 友好,以利用高度并行的硬件。

Who it’s for

它适用于处理海量数据集的开发人员和数据工程师,特别是在机器学习训练和特征工程中,宽表结构非常普遍的领域。

Highlights

  • Optimized for Wide Tables: 高效支持数千到数万列。
  • Extensible Encoding: 允许用户添加新编码或递归地应用它们。
  • Hardware Acceleration: 使用 SIMD 和 GPU 友好型编码,旨在利用高并行性。
  • Efficient Metadata: 使用 Flatbuffers 以减少访问大型元数据部分的开销。
  • Unified Implementation: 作为单一库提供,以防止在不同环境中的碎片化。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目