EXECUTE TASK

작업에 대해 정의된 일정과 관계없이, 작업(독립 실행형 작업 또는 작업 그래프 의 루트 작업)의 비동기식 단일 실행을 수동으로 트리거합니다.

루트 작업을 성공적으로 실행하면 마치 루트 작업이 정의된 일정에 따라 실행된 것처럼, 작업 그래프의 하위 작업은 선행 작업이 완료될 때 계단식 실행이 트리거됩니다.

또한 이전에 실패한 작업의 재실행을 수동으로 트리거할 수 있습니다.

참고 항목:

CREATE TASK , DROP TASK , SHOW TASKS

구문

EXECUTE TASK <name>

EXECUTE TASK <name> RETRY LAST
Copy

매개 변수

name

실행할 독립 실행형 작업 또는 루트 작업의 식별자입니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

RETRY LAST

작업이 실패한 위치에서 다시 시작하는 name 을 사용하여 작업 그래프 의 마지막으로 실패한 작업을 다시 실행합니다.

작업을 다시 실행하려면 다음 조건이 충족되어야 합니다.

  • 마지막 작업 그래프 실행은 FAILED 또는 CANCELED 상태여야 합니다.

  • 작업 그래프는 마지막으로 실행된 이후로 수정한 적이 없어야 합니다.

  • 작업 그래프는 지난 14일 동안 실행하거나 재시도한 적이 있어야 합니다.

작업 기록을 보려면 TASK_HISTORY 테이블 함수 또는 Snowsight 작업 기록 을 확인해 보십시오.

참고

RETRY LAST는 마지막으로 실패한 작업에서 실행을 시작하는 새 그래프 실행을 생성합니다.

특히 모든 FAILED 또는 CANCELED 작업 실행은 즉시 다시 실행되고, 모든 선행 작업이 성공적으로 실행되면 연결된 하위 작업이 예약됩니다.

또한 재시도로 생성된 새 작업 그래프 실행의 ATTEMPT NUMBER는 이전에 실패한 그래프 실행보다 1 더 크며 재시도한 작업 그래프 실행 또는 원래 작업 그래프 실행과 동일한 GRAPH_RUN_GROUP_ID를 공유합니다.

사용법 노트

  • 작업을 실행하려면 작업에 대한 OWNERSHIP 또는 OPERATE 권한 중 하나가 필요합니다.

    EXECUTE TASK 명령이 작업 실행을 트리거하면 Snowflake는 작업에 대한 OWNERSHIP 권한이 있는 역할에, 작업에 할당된 웨어하우스에 대한 USAGE 권한, 그리고 전역 EXECUTE TASK 권한도 있는지 확인합니다. 이러한 권한이 없으면 오류가 생성됩니다.

    OPERATE 권한이 있는 다른 역할이 EXECUTE TASK를 사용하여 작업을 실행하더라도 작업은 항상 원래 소유자 역할의 권한으로 실행됩니다.

  • SQL 명령은 독립 실행형 작업 또는 작업 그래프의 루트 작업만 실행할 수 있습니다. 하위 작업이 입력되면 명령은 사용자 오류를 반환합니다.

  • 독립 실행형 또는 루트 작업을 수동으로 실행하면 작업 버전이 설정됩니다. 독립 실행형 작업 또는 전체 작업 그래프가 이 버전으로 실행을 완료합니다. 작업 버전에 대한 자세한 내용은 작업 실행의 버전 관리 섹션을 참조하십시오.

  • 일시 중단된 루트 작업은 작업을 다시 시작함 없이 실행됩니다. 이 SQL 명령을 실행하기 전에 루트 작업을 명시적으로 다시 시작할 필요가 없습니다. 그러나 EXECUTE TASK는 작업 그래프에서 하위 작업을 자동으로 다시 시작하지 않습니다. 이 명령은 일시 중단된 모든 하위 작업을 건너뜁니다.

    작업 그래프에서 루트 작업에 연결된 모든 종속 작업을 재귀적으로 다시 시작하려면 각 작업을 개별적으로 활성화하는 대신 SYSTEM$TASK_DEPENDENTS_ENABLE 함수를 쿼리하십시오(ALTER TASK … RESUME 사용).

    새 작업 그래프 또는 수정된 작업 그래프를 테스트할 때 가장 좋은 방법으로서, 의도한 프로덕션 일정에 따라 루트 작업이 실행되도록 설정하되 일시 중단된 상태로 두십시오. 작업 그래프를 성공적으로 테스트했으면 루트 작업을 다시 시작합니다. 테스트를 위해 작업 그래프에서 일시 중단된 하위 작업을 다시 시작해야 합니다. 그렇지 않으면 작업 그래프를 실행하는 동안 이러한 작업을 건너뛰게 됩니다.

  • 실행 중인 작업 인스턴스가 없는 경우 즉시 새 실행이 시작됩니다.

  • 다른 인스턴스가 예약된 경우(즉, 작업에 TASK_HISTORY 출력에 SCHEDULED 상태가 표시되는 경우) 요청된 실행이 예약된 실행을 대체합니다. 요청된 실행은 현재 타임스탬프를 예약된 시간으로 사용하여 즉시 시작됩니다.

  • 작업 또는 작업 그래프가 현재 큐에 있거나 실행 중인 경우(즉, 작업에 TASK_HISTORY 출력의 EXECUTING 상태가 표시되는 경우), 현재 실행은 명령이 실행될 당시의 작업 버전 을 사용하여 계속됩니다. 그러면 작업 유형에 따라 한 번에 새 실행이 시작되도록 예약됩니다.

    • 독립 실행형 작업의 경우 현재 실행이 완료된 후 새 실행이 시작되도록 예약됩니다.

    • 작업 그래프의 경우:

      • ALLOW_OVERLAPPING_EXECUTION = FALSE (기본값)인 경우 현재 작업 그래프가 완료된 후 새 실행이 시작되도록 예약됩니다.

      • ALLOW_OVERLAPPING_EXECUTION = TRUE 이고 현재 실행 중인 작업이 루트 작업인 경우 루트 작업이 완료된 후 새 실행이 시작되도록 예약됩니다.

      • ALLOW_OVERLAPPING_EXECUTION = TRUE 이고 현재 실행 중인 작업이 하위 작업인 경우 새 실행이 즉시 시작됩니다.

    다음 예약된 실행이 시작되기 전에 EXECUTE TASK 명령이 다시 실행되면 요청된 실행이 예약된 실행을 대체합니다.

  • 예기치 않은 오류로 작업이 실패하면 오류에 대한 알림을 받을 수 있습니다. 작업 오류 알림 구성에 대한 자세한 내용은 작업에 대한 알림 사용 설정하기 섹션을 참조하십시오.

  • 작업 정보를 보려면 다음 중 하나를 수행하십시오.

    • Snowsight 를 열고 Monitoring » Task History 를 선택합니다.

    • COMPLETE_TASK_GRAPHS 테이블 함수를 호출하고 결과를 검사합니다.

mytask 라는 작업 실행을 수동으로 트리거합니다.

EXECUTE TASK mytask;
Copy