실행 타이밍 정보 기록

실행 타이밍 정보 기록 (Record timing info)

-r 또는 --record-timing-info 플래그는 성능 프로파일링 정보를 파일로 저장해요. 이 파일을 snakeviz로 시각화해 dbt 실행의 성능 특성을 파악할 수 있어요. 느린 모델이나 매크로를 찾는 데 유용한 글로벌 설정이에요.

출처: 문서

본문

실행 타이밍 정보 기록

-r 또는 --record-timing-info 플래그는 성능 프로파일링 정보를 파일로 저장해요. 이 파일은 snakeviz로 시각화할 수 있고, dbt 실행의 성능 특성을 이해하는 데 도움이 돼요.

예를 들어 dbt 실행이 어디에서 시간을 많이 쓰는지(특정 모델의 컴파일, 매크로 실행, 어댑터 호출 등) 확인하고 싶다면 이 플래그로 타이밍 프로파일을 만든 다음 브라우저에서 시각적으로 탐색할 수 있어요.

Usage

$ dbt run -r timing.txt
...
$ snakeviz timing.txt

py-spy로 스피드스코프 프로파일 수집

또는 py-spy를 사용해 dbt 명령의 speedscope 프로파일을 수집할 수도 있어요. 이 방식은 프로파일링을 더 낮은 레벨에서 수행해 파서·컴파일러·어댑터의 실행 지점까지 세밀하게 살펴볼 수 있어요.

python -m pip install py-spy
sudo py-spy record -s -f speedscope -- dbt parse

수집된 speedscope 파일은 speedscope.app에서 열어 대화형으로 탐색할 수 있어요. --record-timing-info가 실행 전체(프로젝트 로드부터 실행 완료까지)의 타이밍을 다룬다면, py-spy는 실제 누적 CPU 시간을 프로파일링한다는 점에서 접근 방식이 달라요. 병목이 파서 쪽인지, 컴파일러 쪽인지, SQL 실행 쪽인지 구분하고 싶다면 두 방법을 함께 활용하는 것도 좋아요.

더 알아보기 (Learn more)

  • About global configs — 모든 글로벌 플래그 목록 및 우선순위
  • snakeviz — cProfile/튜플 프로파일 시각화 도구
  • speedscope — 스피드스코프 프로파일 시각화