메인 콘텐츠로 건너뛰기
DataStore 프로파일러는 실행 시간을 측정하고 성능 병목을 파악하는 데 도움이 됩니다.

빠른 시작

프로파일링 활성화


프로파일러 API

프로파일러 가져오는 방법

report()

성능 보고서를 출력합니다.
매개변수:
매개변수유형기본값설명
min_duration_msfloat0.1이 값 이상의 소요 시간을 가진 단계만 표시합니다
예시 출력:
보고서에는 다음이 표시됩니다:
  • 각 단계의 소요 시간(밀리초)
  • 상위 단계 시간/전체 시간 대비 비율
  • 작업의 계층적 중첩 구조
  • 각 단계의 메타데이터(예: ops_count, ops)

step()

코드 블록의 실행 시간을 수동으로 측정합니다.

clear()

모든 프로파일링 데이터를 삭제합니다.

summary()

단계 이름과 소요 시간(ms)의 매핑이 담긴 딕셔너리를 가져옵니다.
출력 예시:

보고서 살펴보기

단계 이름

단계 이름설명
Total Execution전체 실행 시간
Query Planning쿼리 계획 수립에 소요된 시간
SQL Segment NSQL 세그먼트 N 실행
SQL Execution실제 SQL 쿼리 실행
Result to DataFrame결과를 pandas로 변환
Cache Check쿼리 캐시 확인
Cache Write결과를 캐시에 쓰기

소요 시간

  • 계획 단계 (쿼리 계획): 일반적으로 빠릅니다
  • 실행 단계 (SQL 실행): 실제 작업이 수행되는 단계입니다
  • 전송 단계 (결과를 DataFrame으로): 데이터를 pandas로 변환하는 단계입니다

병목 지점 파악


프로파일링 패턴

단일 쿼리 프로파일링

여러 쿼리 프로파일링하기

접근 방식 비교


최적화 팁

1. SQL 실행 시간 확인

SQL execution이 병목이라면:
  • 데이터 양을 줄일 수 있도록 필터를 더 추가합니다
  • CSV 대신 Parquet를 사용합니다
  • 적절한 인덱스가 설정되어 있는지 확인합니다(데이터베이스 소스의 경우)

2. I/O 시간 확인

read_csv 또는 read_parquet가 병목이라면:
  • Parquet 사용(열 지향, 압축 형식)
  • 필요한 컬럼만 읽기
  • 가능하면 원본 데이터에서 필터링

3. 데이터 전송 확인

to_df가 느리다면:
  • 결과 집합(result set)이 너무 클 수 있습니다
  • 필터를 더 추가하거나 limit를 설정하세요
  • 미리 보려면 head()를 사용하세요

4. 엔진 비교


모범 사례

1. 최적화하기 전에 먼저 프로파일링

2. 테스트 사이에는 초기화하세요

3. 초점을 맞추려면 min_duration_ms를 사용하세요

4. 대표성 있는 데이터를 프로파일링하세요

5. 운영 환경에서는 비활성화


예시: 전체 프로파일링 세션

마지막 수정일 2026년 7월 2일