한국정보기술진흥원
한국정보기술신문
thumbnail

정보기술 · 인공지능 ·

아파치 애로우, 10주년 맞아...안정적 데이터 교환 표준으로 자리매김

발행일
읽는 시간2분 8초

2016년 출시 이후 하위 호환성 유지하며 다양한 언어 지원, 생태계 확장

컬럼형 데이터 교환 표준인 아파치 애로우가 10주년을 맞이했다.

[한국정보기술신문] 아파치 애로우(Apache Arrow) 프로젝트가 2016년 2월 5일 공식 설립된 이후 10주년을 맞이했다고 아파치 애로우 PMC가 12일 발표했다. 애로우는 서로 다른 라이브러리와 시스템 간 컬럼형 데이터를 효율적으로 교환하기 위한 불가지론적이고 내구성 있는 표준을 제공한다는 목표를 달성했다고 자평했다.

애로우 프로젝트는 다양한 분야의 실무자들이 서로 다른 시스템 간 컬럼형 데이터를 효율적으로 교환하기 위한 공통 기반을 구축하려는 공동 노력으로 시작됐다. 아파치 파케이(Apache Parquet) 프로젝트의 창립자 중 일부가 애로우 설계 초기 단계에 참여했으며, 애로우는 인메모리 형식으로서 영구 저장 형식인 파케이의 자연스러운 보완재 역할을 담당하게 됐다.

안정적인 포맷 유지로 신뢰 확보

2016년 10월 7일 태그된 첫 애로우 릴리스 0.1.0은 이미 현재까지도 대부분의 애로우 데이터셋에서 사용되는 주요 데이터 타입들을 포함하고 있었다. 당시 릴리스 공지에서는 메타데이터와 물리적 데이터 표현이 상당히 안정적일 것이라고 약속했는데, 이 약속은 대부분 지켜졌다.

컬럼 형식의 경우 2016년 이후 대부분 새로운 데이터 타입 추가만 있었으며, 단 한 번의 중요한 변경 사항만 발생했다. Union 타입이 더 이상 최상위 유효성 비트맵을 가질 수 없게 된 것이다. IPC 형식도 프레이밍 및 메타데이터 형식의 사소한 발전이 있었지만, MetadataVersion 필드를 통해 새 리더가 이전 작성자가 생성한 데이터를 읽을 수 있도록 보장한다.

2020년 6월 제안되고 시행된 Union 타입 변경 이후로는 애로우 컬럼 및 IPC 형식에서 정확히 0건의 중요한 변경이 발생했다. 이러한 안정성은 애로우를 데이터 생태계 전반에서 신뢰할 수 있는 표준으로 자리매김하게 했다.

다양한 구현체와 생태계 확장

애로우 프로젝트는 2020년 7월 마침내 1.0.0 버전으로 전환하며, 공식적인 호환성 약속을 세상에 알렸다. 현재 아파치 애로우는 C언어, C++, C#, Go, 자바, 자바스크립트, 줄리아, 매트랩, 파이썬, R언어, 루비, 러스트 등 다양한 프로그래밍 언어에 대한 네이티브 소프트웨어 라이브러리를 공식적으로 제공한다.

애로우 프로젝트는 ADBC와 nano애로우 같은 여러 공식 하위 프로젝트를 호스팅하고 있다. 특히 주목할 만한 성공 사례는 Apache DataFusion으로, 애로우 하위 프로젝트로 시작했다가 2024년 5월 Apache Software Foundation의 독립적인 최상위 프로젝트로 졸업했다.

애로우 형식을 기반으로 구축된 서드파티 프로젝트들도 많다. 지오애로우는 기존 애로우 형식과 구현을 기반으로 매우 복잡한 문제 공간에서 획기적인 효율성 개선을 가능하게 한 인상적인 사례다. 인메모리 컬럼 형식인 애로우는 영구 저장을 위한 파케이과 함께 사용되는 경우가 많으며, 대부분의 공식 파케이 구현이 현재 애로우 저장소 내에서 개발되고 있다.

커뮤니티 주도의 지속적 발전

아파치 애로우 커뮤니티는 주로 합의에 의해 운영되며, 프로젝트에는 공식적인 로드맵이 없다. 명세는 안정적이지만 과거에 그랬던 것처럼 새로운 사용 사례를 충족하기 위한 추가 사항을 계속 환영한다. 애로우 구현은 적극적으로 유지 관리되고 있으며, 새로운 기능, 버그 수정 및 성능 개선이 지속적으로 이루어지고 있다.

현재와 앞으로도 애로우 관련 진전의 상당 부분은 서드파티 도구 및 라이브러리의 광범위한 생태계에서 일어나고 있다. 10년 전에 마련된 동일한 안정적인 기반 위에 구축되고 있다는 점에서 애로우 프로젝트는 자부심을 갖고 있다.

한국정보기술신문 정보기술분과 전호재 기자 news@kitpa.org