facebookincubator/nimble

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

解決する課題

Nimbleは、極端に幅の広いデータセットを扱う際の、Apache ParquetやORCといった既存のカラムナ形式の制限を解決します。特長量エンジニアリングや機械学習のトレーニングテーブルなど、数千ものカラムを含むワークロード向けに特別に設計されています。

仕組み

Nimbleは、ストリームエンコーディングと物理レイアウトを分離したデカップル設計を採用しており、拡張可能で再帰的(カスケード)なエンコーディングを可能にします。効率的なメタデータアクセスのためにFlatbuffersを利用し、デコード中の予測可能なメモリ使用量を確保するためにブロックエンコーディングを採用しています。また、高度な並列ハードウェアを活用できるよう、SIMDおよびGPUフレンドリーに構築されています。

対象者

大規模で幅の広いデータセットを扱い、特長量エンジニアリングやモデルトレーニングのために、高性能で拡張可能なストレージ形式を必要とするデータエンジニアおよび機械学習の実務者を対象としています。

ハイライト

  • 数千のカラムを持つテーブルに最適化
  • 拡張可能でカスケード的なエンコーディングをサポート
  • 効率的なメタデータ管理にFlatbuffersを使用
  • SIMDおよびGPUの並列処理向けに設計
  • 実装の断片化を防ぐための統一されたライブラリを提供