+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Polars 2.0: 왜 조인이 더 이상 행 순서를 유지하지 않는가

Polars 2.0은 기본적으로 스트리밍 엔진에서 collect를 실행합니다.

Polars 2.0은 기본적으로 스트리밍 엔진에서 collect를 실행합니다. join, group_by 및 unpivot의 경우 maintain_order를 설정하거나 명시적으로 정렬하지 않으면 더 이상 입력 행 순서를 보장하지 않습니다. Polars 2.0.0에서 2,000,000행 내부 조인을 실행한 결과, 기본적으로 행이 입력 순서대로 반환되지 않았지만 maintain_order를 설정하자 순서가 유지되었습니다. 또한 이 릴리스에서는 out-of-core spilling이 기본적으로 켜지고 벤치마크 주장은 공급업체 자체의 것이 됩니다.

서면판 읽기 (영어) ↗

이 동영상에서 다루는 내용

  • 지연 쿼리에서 collect()를 호출하면 이제 기본적으로 스트리밍 엔진이 사용되며, 이는 join, group_by 및 unpivot에 대한 행 순서를 보장하지 않습니다.
  • 마이그레이션 가이드에 따르면 순서는 더 이상 2.0 이전의 순서가 아니며 보장되지 않습니다. 순서에 의존하는 경우 명시적인 정렬을 권장합니다.
  • 저희 실행에서 기본 내부 조인은 입력 순서 False를 반환했습니다. 조인에서 maintain_order="left_right"는 True를 반환했습니다. 한 대의 머신, 한 번의 실행, 한 가지 조인 형태입니다.
  • out-of-core spilling은 기본적으로 켜져 있습니다. RAM의 약 80%에서 시작하며 기본 디스크 예산은 64GB입니다. out-of-core join 및 group_by는 로드맵에 있습니다.
  • collect_schema()는 데이터가 읽히기 전에 누락된 열을 감지하지만, 한 값에서만 실패하는 캐스트는 collect()에서만 실패합니다.
  • TPC-H 및 TPC-DS 비교는 파생된 데이터에 대한 공급업체 자체의 실행이며, 각주에는 결과가 공식 벤치마크와 비교할 수 없다고 명시되어 있습니다.

번역된 스크립트

원래 영어 내레이션에서 번역되었습니다. 사용 가능한 오디오 및 캡션은 YouTube에서 제어합니다.

기본 순서가 변경된 이유는 무엇인가요?

0:00 조인이 행을 작성한 순서대로 돌려준다고 생각하시죠. Polars 2.0은 기본적으로 의도적으로 그것을 약속하는 것을 중단했습니다. 이 비디오에서: 기본값이 왜 변경되었나요? 무엇을 얻었나요? 그리고 어떤 스크립트가 먼저 깨질까요? 여기는 The Daily Diff, 내부 이야기입니다. Polars는 오픈 소스 DataFrame 라이브러리입니다. Python에서 호출하는 테이블 엔진이며,

0:20 핵심은 Rust로 작성되었습니다. MIT 라이선스 하에 무료이며, pip install polars로 설치합니다. 먼저 한 가지 세부 사항. 이전 순서를 되돌리는 스위치는 조인 자체의 인수입니다. 마지막에 다시 설명하겠습니다. 2.0부터 collect는 기본적으로 스트리밍 엔진을 실행합니다. 스트리밍은 쿼리를 병렬로 실행되는 청크로 분할하고, 청크는 완료되면 끝납니다.

0:42 join, group by 및 unpivot의 경우 이 릴리스는 순서를 약속하지 않습니다. 누가 먼저 타격을 입을까요? 출력을 저장된 파일과 행별로 비교하는 모든 사람. 그 테스트는 당신의 랩톱에서는 통과하고 다른 머신에서는 실패할 수 있습니다. 다음은 마이그레이션 가이드입니다.

마이그레이션 가이드는 무엇을 약속하나요?

0:57 위에서 보여준 정확한 행 순서는 보장되지 않는다고 명시되어 있습니다. 따라서 순서에 의존하는 경우 명시적으로 정렬하십시오. Out-of-core도 기본적으로 켜져 있습니다. RAM의 약 80%에서 디스크로 spilling을 시작하며, 64GB의 예산이 있습니다. 정렬, 윈도우 함수 및 많은 표현식은 이제 spilling을 할 수 있습니다. 조인 및 group-by는 곧 출시될 예정입니다.

벤치마크는 공정한 경쟁인가요?

1:17 Polars는 TPC-H 및 TPC-DS 벤치마크에서 DataFusion 및 DuckDB를 능가한다고 말합니다. 이 숫자는 파생된 데이터에 대한 자체 실행에서 가져온 것이며, 각주에는 공식 결과와 비교할 수 없다고 명시되어 있습니다. 자체 숫자에 따르면 Polars는 TPC-H에서 16코어에서 192코어로 약 3.8배 빨라집니다. 또한 대형 머신의 추가 스레드는 작은 쿼리를 느리게 한다고 말합니다. 우리는 Polars 2.0.0에서 동일한 조인을 두 번 실행했습니다.

실행했을 때 무엇을 볼 수 있나요?

1:41 기본 실행은 행을 섞습니다. 플래그를 사용하면 입력 순서가 유지됩니다. 테스트에 사용되는 조인을 찾으세요. 정렬이 없는 모든 조인은 당신이 한 번도 내리지 않은 행 순서 결정입니다. Polars 2.0은 타입에 대해 더 엄격합니다. 스키마 검사는 데이터가 읽히기 전에 누락된 열을 감지합니다.

더 엄격하다는 것은 더 빠르다는 의미인가요?

1:58 한 행에서 실패하는 캐스트는 감지할 수 없습니다. 왜냐하면 그 오류는 데이터가 있을 때까지 기다리기 때문입니다. 이제 제가 열었던 루프입니다. 스위치는 조인에 있습니다.

이전 순서를 어떻게 되찾을 수 있나요?

2:08 조인에 maintain order를 설정하거나 그 뒤에 정렬을 추가하세요. 가이드에서는 정렬을 제안합니다. 조인 플래그는 저희 실행에서 왼쪽, 오른쪽 순서로 유지되었습니다. 내부 이야기 결론: NEEDS REVIEW. 업그레이드하기 전에 모든 조인을 검토할 것입니다.

결론은 무엇인가요?

2:22 이것에 대해 질문이 있으신가요? 댓글에 남겨주세요. 오늘의 차이점은 이것입니다. 저는 Axrisi의 Niko입니다. 책임감 있게 병합하세요. 책임감 있게 병합하세요.

출처

  1. Release of Polars 2.0Polars (pola.rs)
  2. Polars 2.0 upgrade guidePolars documentation
  3. Polars homepagePolars (pola.rs)
  4. polars-2.0-benchmark repositoryPolars on GitHub
  5. Release of Polars 2.0 (Hacker News discussion)Hacker News

관련 동영상

daily · ko · 2026. 10. 7.

Hono, 유지보수 담당자가 기여 수용을 재고하면서 외부 풀 리퀘스트 제한

Hono는 MIT 라이선스 코드를 유지하면서 외부 풀 리퀘스트 생성을 비활성화했습니다. Sindre Sorhus는 별도로 자신의 저장소 제한이 AI 때문이라고 밝혔으며, 유지보수 및 문제 처리는 계속될 것이라고 말했습니다. 이 10월 6일자 에디션은 검토 역량, Mistral Large 4의 API 미리보기 및 약속된 가중치, 그리고 Polars 2.0의

5:22 ↗
daily · ko · 2026. 10. 1.

Gemini 4 Argon은 Google의 최고의 모델입니다. 아직 사용할 수 없습니다.

Google은 새로운 최첨단 모델인 Gemini 4 Argon을 발표했으며, 신뢰할 수 있는 사이버 방어자만이 이를 사용할 수 있습니다. 여기 Google 자체의 19행 벤치마크 표가 보여주는 내용, 독립 리더보드가 측정한 내용, 그리고 개발자들이 언제 이를 얻을 수 있을지에 대한 정보가 있습니다. 평결: 검토 필요 (NEEDS REVIEW).

4:53 ↗
under-the-hood · ko · 2026. 9. 24.

SAML, 내부 들여다보기: 서명은 편지 안에

SAML은 거의 모든 업무 앱에 로그인하게 해주며, 그 서명은 서명하는 XML 내부에 있습니다. 내부 들여다보기: 앱, 브라우저, ID 공급자 간의 로그인 과정, 어설션이 어떻게 생겼는지, 왜 정규화가 모든 바이트에 동의해야 하는지, 그리고 왜 2012년부터 2025년까지 동일한 버그 클래스가 계속해서 돌아오는지. Trail of Bits의 "SAML: A

3:02 ↗