프로젝트 소개
Apache Arrow는 다양한 데이터 유형의 인메모리 표현을 위한 표준화된 컬럼형 포맷을 제공하여, 데이터 시스템이 데이터를 효율적으로 저장, 처리 및 이동할 수 있도록 합니다. 여기에는 이기종 환경 전반에서 빠른 데이터 교환 및 분석을 수행하기 위한 일련의 기술이 포함되어 있습니다.
주요 구성 요소는 다음과 같습니다:
- Arrow Columnar Format: 단순 또는 중첩 데이터 유형의 인메모리 표현을 위한 표준입니다.
- Arrow IPC Format: 프로세스 간 통신을 위한 효율적인 직렬화 방식입니다.
- ADBC (Arrow Database Connectivity): 데이터베이스 및 쿼리 엔진에 액세스하기 위한 API와 드라이버입니다.
- Arrow Flight RPC: 원격 서비스가 Arrow 데이터를 교환하기 위한 프로토콜입니다.
- Gandiva: Arrow를 위한 LLVM 기반 표현식 컴파일러입니다.
이 프로젝트는 C++, Python, Java, JavaScript, Rust, Go, R, Ruby, .NET, Julia, Swift를 포함한 여러 언어의 라이브러리를 제공합니다.
기술적 역량은 다음과 같습니다:
- 평면 또는 중첩 유형을 지원하는 컬럼형 벡터 및 테이블 형태의 컨테이너.
- 제로 카피 메모리 공유를 위한 참조 횟수 기반의 오프힙 버퍼 메모리 관리.
- 로컬 및 원격 파일 시스템을 위한 IO 인터페이스.
- Parquet 및 CSV와 같은 일반적인 파일 포맷을 위한 리더 및 라이터.
- Google의 FlatBuffers를 기반으로 하는 메타데이터 메시징 레이어.