Dagster 스케줄(Schedule)
Dagster 스케줄(Schedule)
스케줄(schedule)은 정해진 시각(크론 표현 등)에 따라 잡이나 에셋 실행을 자동으로 트리거하는 Dagster 개념이에요. 주기적으로 돌아야 하는 배치 워크플로(예: 매일 새벽 데이터 갱신, 주간 리포트 생성)를 사람이 직접 실행하지 않아도 되게 해줘요.
스케줄 정의
스케줄은 크론 스케줄을 지정해 정의해요. 예를 들어 매일 특정 시각에 실행하려면 크론 표현을 쓰고, 이를 잡과 연결해요. 정의된 스케줄은 최상위 Definitions 객체에 포함해 배포해요.
import dagster as dg
@dg.schedule(cron_schedule="0 0 * * *", job=my_job)
def my_schedule(): ...
스케줄이 트리거하는 것
스케줄은 잡을 트리거할 수도 있고, 에셋 선택(asset selection)을 트리거할 수도 있어요. 스케줄이 발화하면 연결된 잡이 실해되고, 그 실행은 일반 잡 런과 똑같이 기록·관찰돼요.
스케줄과 파티션
주기적으로 실행되는 워크로드에서는 파티션(partition) 개념을 함께 쓰는 경우가 많아요. 파티션은 데이터셋을 시간·지리 등 기준으로 나눠서, 스케줄이 발화할 때마다 특정 파티션만 처리하게 해줘요. 예를 들어 일별 파티션이라면 오늘 날짜에 해당하는 데이터만 갱신하는 식이에요.
예약의 이점
스케줄을 쓰면 실행 시각을 코드로 선언해 두는 셈이라, 실행 이력이 투명해지고 여러 파이프라인이 겹치지 않게 관리하기 쉬워져요. 실행 상태·소요 시간·결과는 Dagster UI에서 확인할 수 있어요.