빠른 시작
프로파일링 활성화
프로파일러 API
프로파일러 가져오는 방법
report()
예시 출력:
- 각 단계의 소요 시간(밀리초)
- 상위 단계 시간/전체 시간 대비 비율
- 작업의 계층적 중첩 구조
- 각 단계의 메타데이터(예:
ops_count,ops)
step()
clear()
summary()
보고서 살펴보기
단계 이름
소요 시간
- 계획 단계 (쿼리 계획): 일반적으로 빠릅니다
- 실행 단계 (SQL 실행): 실제 작업이 수행되는 단계입니다
- 전송 단계 (결과를 DataFrame으로): 데이터를 pandas로 변환하는 단계입니다
병목 지점 파악
프로파일링 패턴
단일 쿼리 프로파일링
여러 쿼리 프로파일링하기
접근 방식 비교
최적화 팁
1. SQL 실행 시간 확인
SQL execution이 병목이라면:
- 데이터 양을 줄일 수 있도록 필터를 더 추가합니다
- CSV 대신 Parquet를 사용합니다
- 적절한 인덱스가 설정되어 있는지 확인합니다(데이터베이스 소스의 경우)
2. I/O 시간 확인
read_csv 또는 read_parquet가 병목이라면:
- Parquet 사용(열 지향, 압축 형식)
- 필요한 컬럼만 읽기
- 가능하면 원본 데이터에서 필터링
3. 데이터 전송 확인
to_df가 느리다면:
- 결과 집합(result set)이 너무 클 수 있습니다
- 필터를 더 추가하거나 limit를 설정하세요
- 미리 보려면
head()를 사용하세요