Databricks Lakeflow Jobs · Multiple Triggers Beta · 입문 가이드 · 공식 문서 해설

파일 도착과 예약이 겹치면 작업도 두 번 실행될까?

파일 도착과 예약이 겹치면 작업도 두 번 실행될까?

아침 아홉 시에 데이터를 처리하도록 예약해 뒀어. 그런데 정확히 그 시간에 새 파일도 도착했어. 시작 조건이 두 번 맞았으니 결과도 두 번 만들어질까?

답은 트리거 신호와 실제 작업 실행을 구분해야 한다는 거야.

트리거는 출발 신호일 뿐

원리 설명용 흐름 · 실제 시험 결과 아님
시작 조건 2개동시 실행·큐 설정실제 Run·결과 확인

트리거(Trigger)는 작업을 시작시키는 조건이야. 예를 들면 예약 시간, 새 파일 도착, 원본 테이블 갱신처럼 여러 종류가 있어.

Databricks의 공식 설명에 따르면 Lakeflow Jobs 다중 트리거(Multiple Triggers)는 베타 기능으로, 지원되는 환경에서 작업 하나에 최대 다섯 개 트리거를 둘 수 있어. 서로 다른 종류도 조합할 수 있지만 Continuous 트리거는 다른 트리거와 함께 쓸 수 없어.

트리거가 활성 상태에서 조건을 충족하면 실행을 요청할 수 있어. 하지만 실행 요청이 여러 번 생겼다는 것과 모든 실행이 실제 시작·완료됐다는 것은 달라.

또 하나의 조건: 동시 실행 제한

공식 문서에는 작업 하나의 기본 최대 동시 실행 개수는 하나라고 설명돼 있어. 이 제한을 바꿀 수도 있지만, 한도에 도달했을 때는 대기열(Queue) 설정도 봐야 해. 대기열이 켜져 있으면 조건에 맞는 실행은 자리가 날 때까지 기다렸다가 나중에 실행될 수 있고, 꺼져 있으면 건너뛰어질 수 있어. 공식 문서는 2024년 4월 15일 이후 UI에서 만든 작업의 대기열 기본값이 켜짐이며, 최대 48시간 대기할 수 있다고 설명해.

따라서 파일 도착과 예약 조건이 비슷한 시점에 발생했다고 해서 항상 똑같은 횟수로 처리된다고 단정하면 안 돼.

한 번에 하나와, 한 번만 처리는 달라

동시 실행 한도가 하나라는 것은 같은 시점에 둘을 실행하지 않는다는 제한이지, 같은 입력을 딱 한 번만 처리하도록 보장하는 기능은 아니야. 조건을 충족한 요청 두 개가 대기열을 거쳐 차례로 실행될 수도 있어. 이는 대기열 동작에서 따라오는 설명이며 실제 중복 처리를 재현했다는 뜻은 아니야. 입력 식별자와 실제 결과를 확인하기 전에는 중복 방지가 검증됐다고 말하면 안 돼.

가상 예시

상황알아야 할 것
오전 9시에 예약 트리거 발생실행 요청 조건이 충족됐을 수 있음
같은 시간에 파일 도착 트리거 발생추가 트리거 조건도 충족됐을 수 있음
이미 실행 중인 작업이 있음대기열이 켜져 있으면 기다릴 수 있고, 꺼져 있으면 건너뛸 수 있음
실제 처리 완료 건수가 궁금함최종 Job Run 이력과 작업 결과를 따로 봐야 함

이 상황은 개념을 설명하는 가상의 타임라인이야. 실제 Databricks 계정에서 동시에 이벤트를 발생시키거나 실행 횟수를 측정한 시험이 아니야.

안전하게 판단하는 4가지

  1. 해당 워크스페이스에서 Multiple Triggers 베타를 사용할 수 있는지 확인
  2. 어떤 트리거가 활성화돼 있는지와 예약·파일 도착 조건 확인
  3. 작업의 최대 동시 실행 설정과 대기열 사용 여부 확인
  4. 트리거 알림이 아닌 실제 Run 기록의 시작·건너뜀·완료 상태 확인

이는 작업 설정을 변경하라는 지시가 아니라 읽기 전용으로 살펴볼 항목이야.

결론

시작 신호가 두 번이라는 사실만으로 같은 데이터를 두 번 처리했다고 판단하면 안 돼. 실행 횟수와 실제 결과는 작업 이력으로 확인하자.

공식 근거

검증 범위: 제조사 공식 문서를 해설한 교육용 자료입니다. 예시는 원리를 설명하기 위한 가상 상황이며, 실제 현장 장비·운영 데이터베이스·고객 워크스페이스에서 성능이나 복구 결과를 측정한 실험이 아닙니다. 운영 설정 변경은 담당자의 승인과 해당 제품의 최신 문서를 확인한 뒤 진행해야 합니다.

짧은 영상으로 보기

유튜브 채널에서 더 보기