Polars 2.0 출시, SQL 지원 강화하고 스트리밍 엔진 기본화
원제 Polars 2.0
459 포인트댓글 101

Key Point
SQL 엔진 표준화와 메모리 초과 상황 대응이라는 데이터 분석 도구의 핵심 문제를 해결한 메이저 업데이트로, 스트리밍과 OOC 기본화로 많은 사용자가 즉시 성능 향상을 체험할 것이다.
핵심 요약
- Polars 2.0이 출시됐으며, 스트리밍 엔진을 기본값으로 설정해 메모리와 성능을 크게 개선했다.
- SQL을 1급 지원 대상으로 승격시켰으며, 쿼리 재정렬과 공통-부분계획 제거, 다이나믹 프레디케이트/블룸 필터 등 옵티마이저 개선을 통해 성능을 강화했다.
- TPC-H와 TPC-DS 벤치마크에서 Polars SQL이 DuckDB 1.5.6, DuckDB 2.0 알파, DataFusion 54.0.0을 비교한 결과 16 vCPU와 192 vCPU 환경에서 대부분의 쿼리에서 가장 빠른 성능을 보였다.
- 스트리밍 엔진이 특정 작업(조인, 그룹 바이, 언피벗)에서 기본적으로 행 순서를 보장하지 않으므로 필요 시 maintain_order=True를 설정해야 한다.
- OOC(spill-to-disk) 기능이 기본 활성화되어 RAM의 약 80% 도달 시 디스크로 스필링을 시작하며, 기본 디스크 예산은 64GB이다.
- 정렬과 윈도우 함수, 많은 표현식이 OOC를 지원하며, 조인과 그룹바이는 향후 로드맵에 포함돼 있다.
- Arrow MapType을 Polars Map dtype으로 직접 지원하며, Python 딕셔너리처럼 작동하고 키 조회, contains_key, len 등의 전용 메서드를 제공한다.
- 타입 엄격성을 강화해 스키마 불일치를 조기에 발견할 수 있게 했으며, AI 에이전트가 collect_schema()로 쿼리 구조를 컴파일 단계에서 검증할 수 있도록 지원한다.
- 192 vCPU 환경에서 16 vCPU 대비 Polars는 TPC-H에서 3.8배, TPC-DS에서 2.2배 성능 향상을 보였다.
- Polars는 192 스레드 기본값에서 작은 데이터 쿼리 성능이 저하되지만 32 코어로 제한할 경우 대부분 경쟁력 있거나 우월한 성능을 보인다.
- 향후 대규모 CPU 환경에서의 성능 개선과 조인/그룹바이 OOC 지원, GeoPolars 개발을 계획하고 있다.