Dagster 센서(Sensor)

Dagster 센서(Sensor)

센서(sensor)는 외부 이벤트에 반응해 잡이나 에셋 실행을 트리거하는 Dagster 개념이에요. 스케줄이 정해진 시각을 기다리는 것과 달리, 센서는 파일 도착·외부 API 상태 변화·테이블 갱신 같은 조건을 주기적으로 평가해서 필요할 때 실행을 일으켜요.

출처: Dagster Sensors

센서의 동작

센서는 주기적으로 평가 함수를 호출하고, 그 결과에 따라 실행할지 말지를 결정해요. 예를 들어 새 파일이 특정 위치에 도착했는지 확인하고, 도착했다면 그 파일을 처리하는 잡을 트리거하는 방식이에요.

import dagster as dg

@dg.sensor(job=my_job)
def my_sensor(): ...

센서와 스케줄의 차이

  • 스케줄 — 고정된 시각(크론)에 실행을 트리거해요.
  • 센서 — 고정된 시각에 실행을 트리거하는 게 아니라, 외부 조건을 평가해 필요할 때 실행해요.

즉 「정해진 시간」이냐 「조건 충족」이냐로 구분할 수 있어요. 외부 이벤트가 언제 올지 불규칙한 경우에는 센서가 더 적합해요.

센서와 함께 쓰는 것

센서는 잡 또는 에셋의 선택을 트리거할 수 있고, 필요하다면 config도 함께 지정할 수 있어요. 센서로 트리거된 실행도 일반 런과 똑같이 기록되어, 언제·왜 실행됐는지를 추적할 수 있어요.

센서를 쓰면 파이프라인이 외부 세계의 변화에 자동으로 반응하므로, 데이터 파이프라인을 더 이벤트 주도적(event-driven)으로 만들 수 있어요.

더 알아보기