facebookincubator/nimble
New and extensible file format for storage of large columnar datasets.
해결하는 문제
Nimble은 극도로 넓은 데이터 세트를 처리할 때 Apache Parquet 및 ORC와 같은 기존 컬럼형 형식의 한계를 해결합니다. 피처 엔지니어링 및 머신러닝 학습 테이블과 같이 수천 개의 컬럼이 포함된 워크로드에 맞게 특별히 설계되었습니다.
작동 원리
Nimble은 스트림 인코딩을 물리적 레이아웃에서 분리하는 디커플링 설계를 사용하여 확장 가능하고 재귀적(cascading)인 인코딩을 가능하게 합니다. 효율적인 메타데이터 액세스를 위해 Flatbuffers를 사용하며, 디코딩 중 예측 가능한 메모리 사용량을 보장하기 위해 블록 인코딩을 채택합니다. 이 형식은 고도의 병렬 하드웨어를 활용할 수 있도록 SIMD 및 GPU 친화적으로 구축되었습니다.
대상
대규모의 넓은 데이터 세트를 다루며 피처 엔지니어링 및 모델 학습을 위해 고성능의 확장 가능한 스토리지 형식이 필요한 데이터 엔지니어 및 머신러닝 전문가를 대상으로 합니다.
주요 특징
- 수천 개의 컬럼을 가진 테이블에 최적화됨
- 확장 가능하고 계층적인 인코딩 지원
- 효율적인 메타데이터 관리를 위해 Flatbuffers 사용
- SIMD 및 GPU 병렬 처리를 위해 설계됨
- 구현 파편화를 방지하기 위한 통합 라이브러리 제공