apache/arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics

해결하는 문제

Apache Arrow는 서로 다른 소프트웨어 시스템 간의 느리고 비효율적인 데이터 이동 문제를 해결합니다. 메모리에 데이터를 저장하고 공유하는 범용적이고 표준화된 방법을 제공하여, 데이터 형식을 지속적으로 변환해야 하는 성능 저하 없이 다양한 애플리케이션과 프로그래밍 언어가 함께 작동할 수 있도록 합니다.

작동 방식

Arrow는 행이 아닌 열 단위로 데이터를 구성하는 "컬럼형(columnar)" 형식을 사용합니다. 이 구조는 현대 컴퓨팅 하드웨어에 매우 효율적입니다. 서로 다른 프로세스가 데이터를 복사할 필요 없이 동일한 데이터에 액세스할 수 있게 해주는 "제로 카피(zero-copy)" 공유와 같은 메모리 관리 도구 세트가 포함되어 있습니다. 또한 표준화된 통신 프로토콜(Arrow Flight 등)과 데이터베이스 연결(ADBC)을 제공하여 네트워크 전반이나 서로 다른 소프트웨어 환경 간에 데이터를 원활하게 이동시킵니다.

대상 사용자

고성능 데이터 시스템, 데이터베이스, 쿼리 엔진 또는 여러 프로그래밍 언어나 분산 서비스 전반에서 대용량 데이터를 처리해야 하는 분석 애플리케이션을 구축하는 개발자와 데이터 엔지니어를 위해 설계되었습니다.

주요 특징

  • 플랫 및 중첩 데이터 유형을 모두 지원하는 범용 컬럼형 형식.
  • 제로 카피 기능을 갖춘 고성능 메모리 관리.
  • C++, Python, Rust, Java, Go, R 등을 포함한 광범위한 다중 언어 지원.
  • 원격 프로시저 호출(RPC) 및 프로세스 간 통신(IPC)에 대한 내장 지원.
  • LLVM을 사용하여 데이터 처리를 가속화하는 표현식 컴파일러인 Gandiva 포함.
  • 표준화된 데이터베이스 연결(ADBC) 및 파일 형식(Parquet 및 CSV 등) 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트