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: 環境による断片化を防ぐため、単一のライブラリとして提供されます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト