Polars 2.0 정식 출시
원제: Release of Polars 2.0
왜 중요한가
Polars 2.0은 DuckDB·DataFusion과의 성능 경쟁에서 SQL 처리 우위를 공식화하며, Python 데이터 처리 생태계 내 주도권 경쟁을 본격화한다.
오픈소스 데이터프레임 라이브러리 Polars가 2026년 10월 6일 버전 2.0을 출시했다. SQL 일급 지원, 스트리밍 엔진 기본 활성화, out-of-core(spill-to-disk) 지원, 새로운 Map dtype을 포함하며, TPC-H 및 TPC-DS 벤치마크에서 DuckDB 1.5.6, DuckDB 2.0 alpha, DataFusion 54.0.0을 제치고 최고 성능을 기록했다.
Polars 2.0은 SQL을 일급 시민(first-class citizen)으로 격상시킨 것을 핵심 변화로 내세운다. 옵티마이저 개선 사항으로는 조인 순서 재배치, 개선된 공통 서브플랜 제거(common-subplan-elimination), 동적 predicate/bloom filter가 포함됐다.
벤치마크는 AWS c7a.4xlarge(16 vCPU, 32GB RAM)와 c7a.metal(192 vCPU, 384GB RAM) 두 환경에서 진행됐다. 각 쿼리는 별도 프로세스로 5회 실행(핫 캐시 상태)했으며, 엔진 전환 시 파일 캐시를 초기화했다. Polars와 두 DuckDB 버전은 전체 쿼리를 완료했으나, DataFusion은 TPC-DS q72에서 타임아웃, TPC-H q18에서 메모리 부족이 발생했다. 결과적으로 Polars는 192 스레드 환경에서 소규모 데이터 쿼리에 상수 오버헤드가 존재해 32코어 제한 시 성능이 더 경쟁력 있다고 밝혔으며, 다음 릴리즈에서 수정할 예정이다.
또 다른 핵심 변경 사항은 LazyFrame의 collect() 호출 시 스트리밍 엔진이 기본값으로 활성화된다는 점이다. 메모리 사용량과 대부분의 쿼리 성능이 대폭 향상될 것으로 기대된다. 이 변경이 메이저 버전 업 이유 중 하나다. out-of-core(spill-to-disk) 초기 지원도 이번 버전에 포함됐다. 새로운 Map dtype 추가와 함께 dtype 처리에 대한 엄격한 규칙이 적용돼 빠른 피드백과 AI 개발 이터레이션 속도 향상도 도모한다. 벤치마크 재현을 위한 저장소(https://github.com/pola-rs/polars-2.0-benchmark)도 공개됐다.