미래를 위한 오픈소스 데이터 파일 포맷 F3

1 month ago 13

  • F3는 차세대 오픈소스 열 기반 데이터 파일 포맷으로 설계됨
  • 기존 Parquet와 ORC 포맷은 최근 하드웨어와 워크로드 변화에 충분히 대응하지 못함
  • F3는 상호운용성, 확장성, 효율성을 핵심 원칙으로 삼으며, 자체 설명 파일 구조와 WebAssembly(Wasm) 기반 디코더를 파일 내 포함함
  • Wasm 디코더 내장 방식으로 플랫폼 독립적 파일 읽기가 가능하고, 새로운 인코딩 방식도 손쉽게 추가 가능함
  • 실험을 통해 F3가 최신 포맷과 유사한 저장 효율성과 Wasm 기반 디코딩 이점을 입증함

소개

열 기반 저장 포맷은 현대 데이터 분석 시스템의 토대임. Parquet, ORC와 같은 오픈소스 포맷 덕분에 다양한 데이터 웨어하우스 및 데이터 레이크 간 데이터 공유가 용이해짐. 하지만 기존 포맷들은 10여년 전의 하드웨어/워크로드 환경을 바탕으로 설계된 한계가 있으며, 업데이트도 전체 배포 시스템에 고르게 적용되지 않아 상호운용성 문제와 제한된 확장성을 보임.

F3 프로젝트 개요

목적 및 설계 원칙

  • F3는 차세대 오픈소스 데이터 파일 포맷으로, 기존 포맷의 한계를 극복하고 미래 변화에 민첩하게 대응할 수 있는 구조를 지향함
  • 핵심 설계 원칙: 상호운용성 보장, 확장성 용이성, 저장 및 접근 효율성
  • 데이터 설명 메타데이터, 다양한 인코딩 방식의 유연한 적용, 범용 API 구조를 제공함

Wasm 기반 디코더 내장

  • 각 F3 파일에는 데이터 및 메타데이터, 그리고 해당 데이터를 해독할 WebAssembly(Wasm) 바이너리가 내장됨
  • Wasm 내장 방식으로 플랫폼 독립적 파싱이 가능하며, 네이티브 디코더가 없는 상황에서도 동일 호환성 확보
  • 디코더를 플러그인 형태로 간편하게 추가/업그레이드 가능

기존 열 기반 파일 포맷 문제점

  • Parquet, ORC 등은 쓰기/읽기 성능, 데이터 압축, 인코딩 등에 최적화되어 있지만, 현대적 워크로드(예: 수천 컬럼의 폭넓은 테이블, 대용량 벡터, 다양한 임의 접근/업데이트 요구)에 효율적이지 못함
  • 새로운 인코딩 방식 및 부가 기능(압축/필터 등)의 적용이 라이브러리/버전 단위로 분산되어 있어 일관성 확보가 어려움
  • 다수의 언어와 엔진에서 포맷 구현체 분산, 사양 진화에 따른 호환성 유지 한계 발생

F3의 구조적 혁신

고유한 파일 레이아웃

  • F3는 Parquet, ORC의 PAX 레이아웃을 기반으로 하면서도, 메타데이터 분리, IOUnit/EncUnit 다층 구조를 도입해 불필요한 직렬화/역직렬화 비용 최소화
  • 메타데이터는 FlatBuffer를 이용한 컬럼별/범위별 접근이 가능해, 필요한 컬럼만 선택적으로 메타데이터 로딩 및 파싱 가능

IO 단위 분리

  • 논리적 Row Group과 물리적 I/O 단위(IOUnit) 를 분리해, 다양한 저장매체(특히 클라우드 오브젝트 스토리지)의 특성에 맞춘 미세 조정 가능
  • 각 IOUnit은 자체 내용의 Encoding Unit(EncUnit) 여러 개로 구성되어, 효율적인 인코딩/디코딩 단위 제공

유연한 딕셔너리 스코프

  • 컬럼별 인코딩/압축 효율 극대화를 위해 딕셔너리 범위(Dictionary Scope)를 Row Group에 고정하지 않고, 별도로 유연하게 설정 가능
  • 로컬/공유/미사용 등 다양한 스코프를 선택하도록 설계, 전체 딕셔너리 관리 테이블을 통해 참조 가능
  • 실험적으로 딕셔너리 범위 조정이 압축 효율성(Compression Ratio)에 큰 영향 줌이 입증됨

중첩 데이터 처리

  • 대부분의 실제 중첩 데이터 스키마가 얕고, 메타데이터 크기의 영향이 제한적임
  • F3는 Arrow의 Length & Presence(L&P) 모델을 채택, 신규 포맷/DB엔진(Arrow, DuckDB 등)과 메모리 연동이 원활함

디코딩 API 및 Wasm 플러그인 구조

  • F3의 EncUnit은 Apache Arrow 메모리 구조로 결과 데이터를 반환하도록 API를 설계, 다양한 언어/플랫폼 지원
  • 모든 인코딩/디코딩 알고리듬을 Wasm 바이너리로 내장 가능하여, 파일 자체에 해독 코드 내장 → 호환성·확장성 극대화
  • Wasm 활용 시 저장 공간(킬로바이트 단위) 추가 소모는 미미하며, 네이티브에 비해 10–30% 수준의 성능 저하만 발생

평가 및 결론

  • 실험 결과, F3는 최신 오픈소스 파일 포맷과 동등한 저장 효율성을 보유함
  • Wasm 기반 디코딩 구조에 힘입어 장기적으로 플러그인·확장성·미래 호환성이 보장
  • 오픈소스 데이터 레이크/웨어하우스 환경에서 효율성과 진화 가능성을 동시에 확보할 수 있는 새로운 표준 포맷의 가능성 제시

참고문헌, 저작권 및 개발자 정보

  • 여러 주요 대학교, 연구기관, 산업계 실무자들이 공동 개발을 주도함
  • Creative Commons Attribution 4.0 International License 적용

요약

F3는 현대 데이터 시스템을 위한 미래 지향적 오픈소스 열 기반 데이터 파일 포맷임. 기존 포맷이 변화하는 하드웨어와 워크로드, 그리고 상호운용성/확장성 요구에 충분히 대응하지 못한 한계를 극복하고자 설계됨. 각 파일에 WebAssembly 디코더 플러그인을 내장하여, 새로운 인코딩 방식 추가·확장, 그리고 플랫폼 간 호환성 문제를 혁신적으로 해결함. 효율적이고 유연한 IO/메타데이터 레이아웃, 딕셔너리 스코프, Arrow 연동 등도 큰 강점임.

Read Entire Article