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

Snowflake는 작업 그래프가 성공적으로 완료되면 클라우드 메시징 서비스로 성공 알림을 푸시할 수 있습니다. 이 항목에서는 클라우드 메시징을 사용한 작업에 대한 성공 알림 지원 구성 지침을 제공합니다.

성공 알림 통합은 작업 그래프의 루트 작업에만 지정됩니다. Snowflake는 전체 작업 그래프가 성공적으로 실행된 경우에만 성공 알림을 보내며, 성공적으로 실행된 독립 실행형 작업에 대해서는 알림을 보내지 않으며, 이는 오류 알림 통합 과 다릅니다.

참고

작업 성공 알림 기능은 서버리스 작업과 사용자 관리 작업(즉, 컴퓨팅 리소스를 제공하기 위해 가상 웨어하우스에 의존하는 작업) 모두에 대해 지원됩니다.

작업에서 성공 알림을 보내도록 설정하려면 작업을 메시지 알림 통합에 연결해야 합니다. 작업 설명서에 따라 Amazon Web Services Simple Notification Service(AWS SNS), Microsoft Azure Event Grid 또는 Google Pub/Sub 을 사용하여 알림 통합을 만듭니다.

새 작업을 만들거나 기존 작업을 수정하여 성공 알림 보내기

CREATE TASK 명령을 실행하여 새 작업을 만들거나 ALTER TASK 명령을 실행하여 기존 작업을 수정할 때 알림 통합을 통해 작업을 연결할 수 있습니다.

참고

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

CREATE [ OR REPLACE ] TASK [ IF NOT EXISTS ] <name>
    WAREHOUSE = <string>
    [...]
    SUCCESS_INTEGRATION = <integration_name>
Copy
ALTER TASK <name> SET SUCCESS_INTEGRATION = <integration_name>;
Copy

여기서

SUCCESS_INTEGRATION = integration_name

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

성공 알림 표시하기

SHOW TASKS 또는 DESCRIBE TASK 를 실행하여 작업 성공 알림을 확인할 수 있습니다. Snowflake는 SHOW TASKS 및 DESCRIBE TASK 의 출력에 success_integration이라는 새 열을 추가합니다. 이 필드는 모든 하위 작업에 대해 null을 표시합니다. 이 필드는 알림 통합이 루트 작업에 지정된 경우 그래프 수준 성공 통합의 이름을 표시하고, 그렇지 않은 경우 null을 표시합니다.

페이로드

성공 메시지 본문에는 rootTaskName, rootTaskID, queryID, 시도 번호와 같이 작업 그래프를 식별할 수 있는 정보가 포함됩니다. 다음은 작업 그래프 성공 알림에 대한 샘플 메시지 페이로드입니다.

{"version":"1.0",
 "messageId":"3ff1eff0-7ad7-493c-9552-c0307087e0c6",
 "messageType":"USER_TASK_GRAPH_SUCCEEDED",
 "timestamp":"2021-11-11T19:46:39.648Z",
 "accountName":"AWS_UTEN_DPO_ACC",
 "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",
              "graphCompletedTime":"2021-11-11T19:54:24.5591",
              "queryId":"01a03962-0300-0002-0000-0000000034d8",
              "attemptNumber":5
}]}
Copy

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