오류 알림을 보내도록 작업 구성하기

오류 알림을 보내는 작업을 활성화하려면 작업을 알림 통합과 연결해야 합니다. CREATE TASK 명령을 실행하여 새 작업을 만들거나 ALTER TASK 명령을 실행하여 기존 작업을 수정할 때 이 작업을 수행할 수 있습니다. 이러한 명령을 실행할 때 ERROR_INTEGRATION을 알림 통합의 이름으로 설정하십시오.

작업 그래프의 루트 작업에 대해서만 오류 알림 통합을 지정할 수 있습니다. 실패한 하위 작업은 루트 작업의 지정된 통합에 오류 알림을 보냅니다.

TASK_AUTO_RETRY_ATTEMPTS0 보다 큰 값으로 설정된 작업은 실패한 작업이 실행될 때마다 오류 알림을 보냅니다.

참고

알림 통합을 참조하는 작업을 만들거나 수정하려면 알림 통합에 대한 USAGE 권한이 있는 역할이 필요합니다. 또한 역할에는 스키마에 대한 CREATE TASK 권한 또는 작업에 대한 OWNERSHIP 권한이 있어야 합니다.

이 항목의 내용:

오류 알림을 보내는 새 작업 만들기

CREATE TASK 를 사용하여 새 작업을 만듭니다. 사용 가능한 모든 작업 매개 변수에 대한 설명은 SQL 명령 항목을 참조하십시오.

CREATE TASK <name>
  [...]
  ERROR_INTEGRATION = <integration_name>
  AS <sql>
Copy

여기서:

ERROR_INTEGRATION = integration_name

CREATE NOTIFICATION INTEGRATION 을 사용하여 생성한 알림 통합의 이름을 지정합니다. 자세한 내용은 AWS SNS, Google Pub/Sub 또는 Azure Event Grid 를 참조하십시오.

다음 예에서는 오류 알림을 지원하는 서버리스 작업을 생성합니다. 이 작업은 현재 타임스탬프를 5분마다 테이블 열에 삽입합니다.

CREATE TASK mytask
  SCHEDULE = '5 MINUTE'
  ERROR_INTEGRATION = my_notification_int
  AS
  INSERT INTO mytable(ts) VALUES(CURRENT_TIMESTAMP);
Copy

오류 알림을 보내도록 기존 작업 업데이트하기

ALTER TASK 를 사용하여 기존 작업을 수정합니다.

ALTER TASK <name> SET ERROR_INTEGRATION = <integration_name>;
Copy

여기서 integration_nameAWS SNS, Google Pub/Sub 또는 Azure Event Grid 플랫폼 수준 알림 중 하나에서 생성된 알림 통합의 이름입니다.

예:

ALTER TASK mytask SET ERROR_INTEGRATION = my_notification_int;
Copy

작업 오류 알림 메시지 페이로드

오류 메시지의 본문에서 작업과 작업 실행 중에 발생한 오류를 파악할 수 있습니다.

다음은 작업 오류를 설명하는 샘플 메시지 페이로드입니다. 페이로드는 하나 이상의 오류 메시지를 포함할 수 있습니다.

{\"version\":\"1.0\",\"messageId\":\"3ff1eff0-7ad7-493c-9552-c0307087e0c6\",\"messageType\":\"USER_TASK_FAILED\",\"timestamp\":\"2021-11-11T19:46:39.648Z\",\"accountName\":\"AWS_UTEN_DPO_ACC\",\"taskName\":\"AWS_UTEN_DPO_DB.AWS_UTEN_SC.UTEN_AWS_TK1\",\"taskId\":\"01a03962-2b57-889e-0000-000000000001\",\"rootTaskName\":\"AWS_UTEN_DPO_DB.AWS_UTEN_SC.UTEN_AWS_TK1\",\"rootTaskId\":\"01a03962-2b57-889e-0000-000000000001\",\"messages\":[{\"runId\":\"2021-11-11T19:46:23.826Z\",\"scheduledTime\":\"2021-11-11T19:46:23.826Z\",\"queryStartTime\":\"2021-11-11T19:46:24.879Z\",\"completedTime\":\"null\",\"queryId\":\"01a03962-0300-0002-0000-0000000034d8\",\"errorCode\":\"000630\",\"errorMessage\":\"Statement reached its statement or warehouse timeout of 10 second(s) and was canceled.\"}]}
Copy

페이로드의 값을 처리하려면 문자열을 JSON 오브젝트로 구문 분석해야 합니다.