facebookincubator/nimble

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

解决的问题

Nimble 解决了 Apache Parquet 和 ORC 等现有列式格式在处理极宽数据集时的局限性。它是专门为涉及数千列的工作负载(如特征工程和机器学习训练表)而设计的。

工作原理

Nimble 采用解耦设计,将流编码与物理布局分离,从而实现可扩展和递归(级联)编码。它利用 Flatbuffers 进行高效的元数据访问,并采用块编码以确保解码期间可预测的内存使用。该格式针对 SIMD 和 GPU 进行了优化,以利用高度并行的硬件。

适用对象

适用于处理大规模宽数据集,并需要高性能、可扩展的存储格式用于特征工程和模型训练的数据工程师和机器学习从业者。

亮点

  • 针对具有数千列的表格进行了优化
  • 支持可扩展和级联编码
  • 使用 Flatbuffers 进行高效的元数据管理
  • 专为 SIMD 和 GPU 并行处理而设计
  • 提供统一的库以防止实现碎片化