카테고리:

Information Schema , 테이블 함수

NOTIFICATION_HISTORY

이 테이블 함수를 사용해 Snowflake를 통해 전송된 알림 기록을 쿼리할 수 있습니다. 이런 알림에는 다음과 같은 알림이 포함됩니다.

반환된 행은 다음을 나타냅니다.

  • 처리 중인 요청입니다.

  • 알림 전송 시도에 실패했습니다.

  • 성공적으로 전송된 알림입니다.

STATUS 열 은 각 행에 표시되는 내용을 나타냅니다. 함수의 출력 예 섹션을 참조하십시오.

구문

NOTIFICATION_HISTORY(
  [ START_TIME => <constant_expr> ]
  [, END_TIME => <constant_expr> ]
  [, INTEGRATION_NAME => '<string>' ]
  [, RESULT_LIMIT => <integer> ] )
Copy

인자

모든 인자는 선택 사항입니다.

START_TIME=> constant_expr , . END_TIME=> constant_expr

알림이 발송되는 시간 범위(TIMESTAMP_LTZ 형식)입니다.

  • START_TIME 을 지정하지 않은 경우, 범위는 END_TIME 24시간 전에 시작됩니다.

  • END_TIME 가 지정되지 않은 경우, 기본값은 CURRENT_TIMESTAMP 입니다.

최대 시간 범위는 14일입니다.

INTEGRATION_NAME => 'string'

알림과 연결된 통합의 정규화된 이름입니다. 이 인자를 생략하면 이 함수가 모든 알림을 반환합니다.

기본값: 빈 문자열.

RESULT_LIMIT => integer

함수가 반환하는 최대 행 수를 지정하는 숫자입니다.

범위: 1 ~ 10000

기본값: 100

출력

이 함수는 다음 열을 반환합니다.

열 이름

데이터 타입

설명

CREATED

TIMESTAMP_LTZ

알림이 생성된 타임스탬프입니다.

PROCESSED

TIMESTAMP_LTZ

알림 전송을 마지막으로 시도한 때의 타임스탬프입니다.

MESSAGE_SOURCE

VARCHAR

알림을 생성한 오브젝트 또는 기능의 유형입니다. 다음과 같은 값이 유효한 값입니다.

INTEGRATION_NAME

VARCHAR

이 알림에 사용되는 통합 의 이름입니다.

STATUS

VARCHAR

알림의 상태입니다. 유효한 값은 다음과 같습니다.

  • QUEUED: 알림 전송 요청이 처리되는 중입니다.

  • SUCCESS: 알림이 성공적으로 전송되었습니다.

  • RETRIABLE_FAILURE: 알림 전송 시도에 실패했으며 시스템에서 알림을 다시 보내려고 시도합니다.

  • FAILURE: 알림 전송 시도에 여러 번 실패했으며, 더 이상 알림 전송을 시도하지 않을 것입니다.

ERROR_MESSAGE

VARCHAR

알림이 실패한 경우 알림이 실패한 이유에 대한 세부 정보를 제공합니다.

참고

웹후크 알림의 경우 이 열에는 HTTP 응답의 본문이 있는데, 민감한 데이터가 포함될 수 있습니다. 이 데이터를 사용하기 전에 민감한 데이터는 반드시 삭제하십시오.

ID

VARCHAR

알림 전송 요청의 고유 ID입니다.

Snowflake가 알림 전송에 실패하고 다시 알림을 보내려고 시도하면 함수는 각 시도에 대해 행을 반환합니다. ATTEMPT에 대한 각 행은 ID 열에는 동일한 값을 갖지만 BB 열에는 다른 값을 갖습니다.

ATTEMPT

INTEGER

알림 전송을 시도한 횟수입니다.

MESSAGE_SOURCE_INFO

OBJECT

알림의 출처에 대한 정보가 포함된 오브젝트입니다. 이 오브젝트의 필드는 소스의 유형에 따라 달라집니다.

  • 예산에 대한 알림의 경우 이 오브젝트에는 다음 필드가 포함됩니다.

    • budget_id: 예산의 식별자입니다.

    • budget_name: 예산의 이름입니다.

  • 작업에 대한 오류 알림의 경우 오브젝트에는 다음 필드가 포함됩니다.

    • name: 작업의 이름입니다.

    • graph_run_group_id: 그래프 실행의 식별자입니다.

    • attempt_number: 이 작업을 실행하려는 시도 횟수를 나타내는 정수입니다.

  • Snowpipe에 대한 오류 알림의 경우 오브젝트에는 파이프의 이름을 지정하는 pipe_name 필드가 포함되어 있습니다.

  • SYSTEM$SEND_SNOWFLAKE_NOTIFICATION 또는 SYSTEM$SEND_EMAIL 저장 프로시저를 호출하여 전송된 알림의 경우 오브젝트에는 저장 프로시저를 호출한 문의 ID를 지정하는 query_id 필드가 포함됩니다.

사용법 노트

  • 통합에 대한 ACCOUNTADMIN 역할, 통합 소유자(즉, 통합에 대한 OWNERSHIP 권한이 있는 역할) 또는 USAGE 권한이 있는 역할에 대한 결과만 반환합니다.

  • Information Schema 테이블 함수를 호출할 때 세션에는 사용 중인 INFORMATION_SCHEMA 스키마가 있거나 또는 함수 이름이 정규화되어야 합니다. 자세한 내용은 Snowflake Information Schema 섹션을 참조하십시오.

다음 섹션에는 함수를 호출하는 예와 함수의 출력 예가 나와 있습니다.

함수 호출의 예

다음 예에서는 이 함수를 호출하는 방법을 보여줍니다.

최신 알림 검색하기

지난 24시간 동안 생성된 가장 최근의 알림을 검색합니다.

SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

시간 및 통합 이름으로 알림 검색하기

my_integration 이라는 통합을 사용하여 지난 1시간 동안 생성되고 전송된 가장 최근의 알림을 검색합니다.

SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY(
  START_TIME=>DATEADD('hour',-1,CURRENT_TIMESTAMP()),
  END_TIME=>CURRENT_TIMESTAMP(),
  RESULT_LIMIT=>100,
  INTEGRATION_NAME=>'my_integration'));
Copy

함수의 출력 예

다음 예에서는 다양한 상태의 알림 요청에 대해 이 함수가 반환하는 출력을 설명합니다.

두 번의 시도에 실패하고 세 번째 시도를 진행 중인 경우의 출력 예

이 예에서는 출력에서 열 중 일부를 선택합니다.

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

출력에는 하나의 알림을 보내려는 시도를 나타내는 행이 포함됩니다. 출력에서 다음과 같은 일이 이루어집니다.

  • ID 열은 전송 중인 알림을 식별합니다.

  • 알림을 보내려는 처음 두 번의 시도는 실패했지만, (STATUS 열의 RETRIABLE_FAILURE 값에 표시된 대로) 시스템에서 알림을 다시 보내려고 시도할 수 있습니다.

  • STATUS 열에서 QUEUED 값으로 표시한 바와 같이, 세 번째 시도가 처리되는 중입니다.

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   ID              |   ATTEMPT   |   CREATED                         |   PROCESSED                       |   STATUS              |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   10ae695e-93c3   |   3         |   2023-12-05 15:10:15.194 -0800   |   NULL                            |   QUEUED              |
|   10ae695e-93c3   |   2         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:11:21.443 -0800   |   RETRIABLE_FAILURE   |
|   10ae695e-93c3   |   1         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:10:21.443 -0800   |   RETRIABLE_FAILURE   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+

두 번의 시도에 실패하고 세 번째 시도에 성공하는 경우의 출력 예

이 예에서는 출력에서 열 중 일부를 선택합니다.

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

출력에는 하나의 알림을 보내려는 시도를 나타내는 행이 포함됩니다. 출력에서 다음과 같은 일이 이루어집니다.

  • ID 열은 전송 중인 알림을 식별합니다.

  • 알림을 보내려는 처음 두 번의 시도는 실패했지만, (STATUS 열의 RETRIABLE_FAILURE 값에 표시된 대로) 시스템에서 알림을 다시 보내려고 시도할 수 있습니다.

  • STATUS 열에서 SUCCESS 값으로 표시한 바와 같이, 세 번째 시도에 성공했습니다.

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   ID              |   ATTEMPT   |   CREATED                         |   PROCESSED                       |   STATUS              |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   10ae695e-93c3   |   3         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:12:21.443 -0800   |   SUCCESS             |
|   10ae695e-93c3   |   2         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:11:21.443 -0800   |   RETRIABLE_FAILURE   |
|   10ae695e-93c3   |   1         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:10:21.443 -0800   |   RETRIABLE_FAILURE   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+