메인 콘텐츠로 건너뛰기
DataStore는 다양한 백엔드를 사용해 연산을 실행할 수 있습니다. 이 가이드에서는 실행 엔진 선택을 구성하고 최적화하는 방법을 설명합니다.

사용 가능한 엔진

엔진 설정

전역 구성

현재 엔진 확인


자동 모드

auto 모드(기본값)에서는 DataStore가 각 연산에 가장 적합한 엔진을 선택합니다:

chDB에서 실행되는 연산

  • SQL 호환 필터링 (filter(), where())
  • 컬럼 선택 (select())
  • 정렬 (sort(), orderby())
  • 그룹화 및 집계 (groupby().agg())
  • 조인 (join(), merge())
  • 중복 제거 (distinct(), drop_duplicates())
  • 개수 제한 (limit(), head(), tail())

pandas에서 실행하는 작업

  • 사용자 정의 apply 함수 (apply(custom_func))
  • 사용자 정의 집계를 사용하는 복잡한 피벗 테이블
  • SQL로 표현할 수 없는 작업
  • 입력이 이미 pandas DataFrame인 경우

예시


chDB 모드

모든 작업을 ClickHouse SQL을 통해 수행하도록 강제합니다:

사용해야 하는 경우

  • 대규모 데이터셋(수백만 개의 행) 처리
  • 집계 중심 워크로드
  • SQL 최적화를 최대한 활용하려는 경우
  • 모든 작업에서 일관된 동작이 필요한 경우

성능 특성

제한 사항

  • 사용자 정의 Python 함수는 지원되지 않을 수 있습니다.
  • 일부 pandas 전용 기능은 변환이 필요할 수 있습니다.

pandas 모드

모든 작업을 pandas를 통해 수행하도록 강제합니다:

사용해야 하는 경우

  • pandas와의 호환성 테스트
  • pandas 전용 기능 사용
  • pandas 관련 문제 디버깅
  • 데이터가 이미 pandas 포맷인 경우

성능 특성


Cross-DataStore 엔진

서로 다른 DataStore의 컬럼을 결합하는 작업에 사용할 엔진을 구성합니다:

예시


엔진 선택 로직

자동 모드 의사결정 트리

함수 수준 재정의

일부 함수는 사용할 엔진을 명시적으로 지정할 수 있습니다:
자세한 내용은 Function Config를 참고하십시오.

성능 비교

1,000만 행 기준 벤치마크 결과: 핵심 사항:
  • chdb는 집계와 복잡한 파이프라인에서 강점을 보입니다
  • pandas는 단순한 단일 연산에서는 약간 더 빠릅니다
  • 두 방식의 장점을 모두 활용하려면 auto 모드를 사용하세요

권장 사항

1. 자동 모드부터 시작하세요

2. 강제 적용 전 프로파일링

3. 특정 워크로드에 엔진 강제 지정

4. explain()을 사용해 실행 과정 이해하기


문제 해결

문제: 작업 속도가 예상보다 느림

문제: chdb 모드에서 지원되지 않는 작업

문제: 대용량 데이터 처리 시 메모리 문제

성능 모드집계 부하가 큰 워크로드를 실행 중이며 pandas 출력과의 완전한 호환성(행 순서, MultiIndex, dtype 보정)이 필요하지 않다면 성능 모드 사용을 고려하십시오. 이 모드는 엔진을 자동으로 chdb로 설정하고 pandas 호환성으로 인한 모든 오버헤드를 제거합니다.
마지막 수정일 2026년 7월 2일