메인 콘텐츠로 건너뛰기
DataStore는 출력 형식을 pandas 호환성에 맞출지, 아니면 Raw SQL 성능에 맞게 최적화할지를 제어하는 두 가지 호환 모드를 제공합니다.

개요

Performance Mode에서 비활성화되는 기능


성능 모드 활성화

config 객체 사용

모듈 레벨 함수 사용하기

편의 import 사용

성능 모드를 사용하면 실행 엔진이 자동으로 chdb로 설정되므로 config.use_chdb()를 별도로 호출할 필요가 없습니다.

Performance Mode를 사용해야 하는 경우

다음과 같은 경우 Performance Mode를 사용하십시오:
  • 대규모 데이터셋(수십만~수백만 행)을 처리하는 경우
  • 집계 중심 워크로드(groupby, sum, mean, count)를 실행하는 경우
  • 행 순서가 중요하지 않은 경우(예: 집계된 결과, 보고서, 대시보드)
  • SQL 처리량을 최대화하고 오버헤드는 최소화하려는 경우
  • 메모리 사용량이 우려되는 경우(Parquet 병렬 읽기, 중간 DataFrame 없음)
다음과 같은 경우 pandas mode를 유지하십시오:
  • pandas의 동작을 정확히 재현해야 하는 경우(행 순서, MultiIndex, dtypes)
  • first()/last()가 실제 첫 번째/마지막 행을 반환해야 하는 경우
  • 행 순서에 의존하는 shift(), diff(), cumsum()을 사용하는 경우
  • DataStore 출력과 pandas를 비교하는 테스트를 작성하는 경우

동작상의 차이점

행 순서

성능 모드에서는 어떤 작업에서도 행 순서가 보장되지 않습니다. 여기에는 다음이 포함됩니다:
  • 필터 결과
  • GroupBy 집계 결과
  • 명시적으로 sort_values()를 지정하지 않은 head() / tail()
  • first() / last() 집계
정렬된 결과가 필요하면 sort_values()를 명시적으로 추가하세요:

GroupBy 결과

집계

단일 SQL 실행

성능 모드에서는 ColumnExpr groupby 집계(예: ds[condition].groupby('col')['val'].sum())가 pandas 모드에서 사용하는 2단계 방식이 아니라 하나의 SQL 쿼리로 실행됩니다:
이렇게 하면 중간 DataFrame을 머티리얼라이즈하는 과정이 없어져 메모리 사용량과 실행 시간을 크게 줄일 수 있습니다.

실행 엔진과의 비교

성능 모드(compat_mode)와 실행 엔진(execution_engine)은 서로 독립적인 구성 요소입니다. compat_mode='performance'로 설정하면 execution_engine='chdb'도 자동으로 설정됩니다. 성능 모드는 SQL 실행에 맞춰 설계되었기 때문입니다.

Performance Mode에서 테스트하기

성능 모드용 테스트를 작성할 때는 결과의 행 순서나 구조적 포맷이 pandas와 다를 수 있습니다. 다음 전략을 사용하세요:

정렬한 뒤 비교(집계, 필터)

값 범위 검사 (첫 값/마지막 값)

스키마와 개수 (ORDER BY 없는 LIMIT)


권장 사항

1. 스크립트 초반에 활성화하기

2. 순서가 중요하다면 정렬을 명시적으로 지정합니다

3. 배치/ETL 워크로드에 활용

4. 세션 내에서 모드 전환하기


마지막 수정일 2026년 6월 12일