메인 콘텐츠로 건너뛰기
DataStore는 많은 작업에서 pandas보다 훨씬 뛰어난 성능을 제공합니다. 이 가이드에서는 그 이유와 워크로드를 최적화하는 방법을 설명합니다.

DataStore가 더 빠른 이유

1. SQL 푸시다운

연산이 데이터 소스로 푸시다운됩니다:

2. 컬럼 프루닝

필요한 컬럼만 읽습니다:

3. 지연 평가

여러 연산이 하나의 쿼리로 컴파일됩니다:

벤치마크: DataStore와 pandas 비교

테스트 환경

  • 데이터: 1,000만 행
  • 하드웨어: 일반 노트북
  • 파일 포맷: CSV

결과

핵심 인사이트

  1. GroupBy 작업: DataStore가 최대 19.93배 더 빠름
  2. 복잡한 파이프라인: DataStore가 5~6배 더 빠름 (SQL 푸시다운의 이점)
  3. 단순한 슬라이스 작업: 성능이 비슷하며 차이가 미미함
  4. 가장 적합한 사용 사례: groupby/집계를 포함하는 다단계 작업
  5. zero-copy: to_df()에는 데이터 변환 오버헤드가 없음

DataStore가 강점을 발휘하는 경우

대규모 집계

복잡한 파이프라인

대용량 파일 처리

여러 컬럼에 대한 작업


pandas와 성능이 비슷한 경우

대부분의 상황에서 DataStore는 pandas와 비슷하거나 더 나은 성능을 보입니다. 다만 다음과 같은 특정 경우에는 pandas가 약간 더 빠를 수 있습니다:

소규모 데이터셋 (<1,000행)

간단한 슬라이싱 연산

사용자 정의 Python 람다 함수

중요DataStore가 “더 느린” 경우에도 성능은 일반적으로 pandas와 거의 비슷한 수준이며, 실제 사용에서는 차이가 거의 없습니다. 복잡한 작업에서는 DataStore의 장점이 이러한 예외적인 경우를 훨씬 상회합니다.실행을 세밀하게 제어하려면 실행 엔진 구성을 참조하십시오.

zero-copy DataFrame 통합

DataStore는 pandas DataFrame을 읽고 쓸 때 zero-copy 방식을 사용합니다. 이는 다음을 뜻합니다:
주요 시사점:
  • to_df()는 사실상 비용이 들지 않습니다 - 직렬화나 메모리 복사가 없습니다
  • pandas DataFrame에서 DataStore를 생성하는 작업은 즉시 이루어집니다
  • DataStore와 pandas 뷰는 메모리를 공유합니다

최적화 팁

1. 고부하 워크로드용 Performance Mode 활성화

정확한 pandas 출력 형식(행 순서, MultiIndex 컬럼, dtype 보정)이 필요하지 않은 집계 중심 워크로드라면, 최대 처리량을 위해 Performance Mode를 활성화하세요:
예상 개선 효과: filter+groupby 워크로드에서 최대 2-8배 더 빨라지고, 대용량 Parquet 파일의 메모리 사용량이 줄어듭니다. 자세한 내용은 Performance Mode를 참조하십시오.

2. CSV 대신 Parquet 사용하기

예상되는 개선 효과: 읽기 성능 3~10배 향상

3. 가능한 한 일찍 필터링하기

4. 필요한 컬럼만 선택하기

5. SQL 집계 활용하기

6. 전체 쿼리 실행 대신 head() 사용

7. 배치 작업

8. explain()을 사용해 최적화하기


워크로드 프로파일링

프로파일링 활성화

병목 지점 파악

접근 방식 비교


모범 사례 요약


빠른 결정 가이드

자동으로 최적의 엔진을 선택하려면 config.set_execution_engine('auto')를 사용하세요(기본값). 집계 워크로드에서 최대 처리량을 얻으려면 config.use_performance_mode()를 사용하세요. 자세한 내용은 실행 엔진성능 모드를 참조하세요.
마지막 수정일 2026년 6월 19일