지연 실행
예시: 지연 실행 vs 즉시 실행
지연 실행의 이점
- 쿼리 최적화: 여러 작업이 하나의 최적화된 SQL 쿼리로 컴파일됩니다
- 필터 푸시다운: 필터가 데이터 소스에서 적용됩니다
- 컬럼 프루닝: 필요한 컬럼만 읽습니다
- 결정 지연: 실행 엔진은 런타임에 선택할 수 있습니다
- 계획 확인: 실행 전에 쿼리를 확인하거나 디버그할 수 있습니다
실행 트리거
자동 트리거
예시:
지연 실행으로 유지되는 작업
예시:
3단계 실행
단계 1: SQL 쿼리 생성 (지연 실행)
2단계: 실행 시점
단계 3: DataFrame 작업(있는 경우)
실행 계획 확인하기
explain()을 사용하세요:
Query
Response
verbose=True를 사용하십시오:
캐싱
캐싱 작동 원리
캐시 무효화
수동 캐시 제어
SQL과 Pandas 작업 혼합하기
SQL 호환 연산
filter(),where()select()groupby(),agg()sort(),orderby()limit(),offset()join(),union()distinct()- 컬럼 연산(수학, 비교, 문자열 메서드)
Pandas 전용 작업
- 사용자 정의 함수와 함께
apply() - 복잡한 집계와 함께
pivot_table() stack(),unstack()- 실행된 DataFrame에서 수행하는 작업
하이브리드 파이프라인
실행 엔진 선택
자동 모드 (기본)
chDB 엔진 강제 지정
pandas 엔진 강제 지정
성능 영향
좋음: 일찍 필터링
나쁨: 필터를 나중에 적용
좋은 예: 가능한 한 일찍 컬럼 선택하기
권장: SQL에 맡기세요
모범 사례 요약
- 실행 전에 작업을 이어서 구성하십시오 - 전체 쿼리를 만든 다음 한 번만 트리거하십시오
- 가능한 한 일찍 필터링하십시오 - 원본에서 데이터를 줄이십시오
- 필요한 컬럼만 선택하십시오 - 컬럼 프루닝은 성능을 향상시킵니다
- 실행 방식을 이해하려면
explain()을 사용하십시오 - 실행 전에 디버그하십시오 - 집계는 SQL이 처리하도록 하십시오 - ClickHouse는 이에 최적화되어 있습니다
- 실행 트리거를 숙지하십시오 - 의도치 않은 조기 실행을 피하십시오
- 캐싱을 현명하게 사용하십시오 - 캐시가 언제 무효화되는지 이해하십시오