ALERT_HISTORY
ALERT_HISTORY
ALERT_HISTORY는 지정된 날짜 범위 안에서 알림(alert)의 이력을 조회하는 INFORMATION_SCHEMA 테이블 함수예요. 이 함수는 전체 Snowflake 계정 또는 지정된 알림에 대한 알림 이력을 반환해요.
ACCOUNT_USAGE 스키마의 ALERT_HISTORY 뷰를 통해서도 이 정보에 접근할 수 있어요. 뷰와 테이블 함수의 차이에 대한 자세한 내용은 Account Usage와 Information Schema의 차이를 참고하세요.
본문
문법
ALERT_HISTORY(
[ SCHEDULED_TIME_RANGE_START => <constant_expr> ]
[, SCHEDULED_TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <integer> ]
[, ALERT_NAME => '<string>' ] )
인자
모든 인자는 선택 사항이에요.
SCHEDULED_TIME_RANGE_START — (TIMESTAMP_LTZ 형식의) 시간 범위로, 최근 7일 안에서 알림 조건의 평가가 예약된 시간이에요.
SCHEDULED_TIME_RANGE_END를 지정하지 않으면, 함수는 이미 완료되었거나 현재 실행 중이거나 미래에 예약된 알림을 반환해요.SCHEDULED_TIME_RANGE_END가 CURRENT_TIMESTAMP이면, 함수는 이미 완료되었거나 현재 실행 중인 알림을 반환해요. 현재 시간 직전에 실행된 알림은 여전히 예약됨(scheduled)으로 식별될 수 있다는 점에 주의하세요.
시작 또는 종료 시간을 지정하지 않으면 지정된 RESULT_LIMIT 값까지 가장 최근 알림이 반환돼요. 시간 범위가 최근 7일 안에 속하지 않으면 오류가 반환돼요.
RESULT_LIMIT — 함수가 반환하는 최대 행 수를 지정하는 숫자예요. 일치하는 행 수가 이 한도를 초과하면 지정된 한도까지 가장 최근 타임스탬프의 알림 실행이 반환돼요. 범위: 1 ~ 10000. 기본값: 100.
ALERT_NAME — 알림을 지정하는 대소문자 구분 없는 문자열이에요. 비정규화(non-qualified) 알림 이름만 지원해요. 지정된 알림의 실행만 반환돼요. 이름이 같은 알림이 여러 개 있으면 함수는 각 알림의 이력을 반환한다는 점에 주의하세요.
사용 노트
- ACCOUNTADMIN 역할과 알림 소유자(즉 알림에 대한 OWNERSHIP 권한을 가진 역할)에만 결과를 반환해요.
- 이 함수는 RESULT_LIMIT 인자 값에 설정된 최대 10,000행을 반환해요. 기본값은 100이에요.
- ALERT_HISTORY 함수를 조회할 때 그 인자(알림 이름, 시간 범위, 결과 한도)가 먼저 적용되고, 그 다음에 WHERE와 LIMIT 절이 각각 적용돼요. 또한 ALERT_HISTORY 함수는 SCHEDULED_TIME 내림차순으로 레코드를 반환해요. 완료된 알림(즉 SUCCEEDED, FAILED, CANCELLED 상태)은 일반적으로 더 일찍 예약되므로, 검색 결과에서 나중에 반환되는 경향이 있어요.
- 실제로 계정에 알림이 많으면, 특히 RESULT_LIMIT 값이 상대적으로 낮을 때, 함수가 반환하는 결과에 기대했던 완료 알림이 더 적거나 예약된 알림만 들어 있을 수 있어요. 이미 실행된 알림의 이력을 조회하려면 Snowflake는
SCHEDULED_TIME_RANGE_START => constant_expr와/또는SCHEDULED_TIME_RANGE_END => constant_expr인자의 조합을 사용할 것을 권장해요. - 정보 스키마 테이블 함수를 호출할 때 세션에 INFORMATION_SCHEMA 스키마가 사용 중이거나 함수 이름이 정규화(fully-qualified)되어야 해요. 자세한 내용은 Snowflake Information Schema 문서를 참고하세요.
- 이 함수는 최근 7일 이내에 실행된 모든 실행 또는 향후 8일 이내의 다음 예약 실행을 반환할 수 있어요.
출력 열
| 열 이름 | 데이터 타입 | 설명 |
|---|---|---|
| NAME | VARCHAR | 알림의 이름. |
| DATABASE_NAME | VARCHAR | 알림을 포함하는 데이터베이스의 이름. |
| SCHEMA_NAME | VARCHAR | 알림을 포함하는 스키마의 이름. |
| CONDITION | VARCHAR | 알림의 조건으로 사용되는 SQL 문의 텍스트. |
| CONDITION_QUERY_ID | VARCHAR | 알림의 조건으로 실행된 SQL 문에 대한 내부/시스템 생성 식별자. |
| ACTION | VARCHAR | 알림의 작업(action)으로 사용되는 SQL 문의 텍스트. |
| ACTION_QUERY_ID | VARCHAR | 알림의 작업으로 실행된 SQL 문에 대한 내부/시스템 생성 식별자. |
| STATE | VARCHAR | 알림의 상태. 다음 중 하나일 수 있음. |
| SQL_ERROR_CODE | NUMBER | 알림이 오류를 반환했거나 실행에 실패하면(예: 현재 사용자가 알림을 실행할 권한이 없는 경우) 오류 코드. |
| SQL_ERROR_MESSAGE | VARCHAR | 알림이 오류를 반환하면 오류 메시지. |
| SCHEDULED_TIME | TIMESTAMP_LTZ | 예약된 알림이 실행을 시작하도록 예정된/예약됐던 시간. 절대적 정밀도를 보장하려 최선을 다하지만, 알림이 예약 시간보다 일찍 실행되지 않는다는 것만 보장함. |
| COMPLETED_TIME | TIMESTAMP_LTZ | 알림이 완료된 시간, 또는 SCHEDULED_TIME이 미래이거나 알림이 아직 실행 중이면 NULL. |
| SCHEDULED_FROM | VARCHAR | 무엇이 알림을 시작했는지 지정. 다음 값 중 하나. SCHEDULE, EXECUTE ALERT, TRIGGER. |
| RUNBOOK | VARCHAR | 이 알림에 대한 런북(runbook) 참조의 URL 또는 자유 텍스트. 설정되지 않았으면 NULL 반환. |
| WAS_AUTO_SUSPENDED | BOOLEAN | 이 실행 후 SUSPEND_ALERT_AFTER_NUM_FAILURES 파라미터로 설정된 연속 실패 임계값 초과로 알림이 자동으로 일시 중단됐는지 여부. |
| CONFIG | VARCHAR | 이 실행 시점에 알림에 저장된 JSON 구성 문자열. 설정되지 않았으면 NULL 반환. |
STATE 열의 상태 값:
SCHEDULED— 알림이 SCHEDULED_TIME 열로 지정된 시간에 실행될 예정. 이 상태는 새 데이터(new data) 알림에는 적용되지 않음.EXECUTING— 알림의 조건 또는 작업이 현재 실행 중.FAILED— 알림이 실패함. 알림 조건 또는 알림 작업이 실행을 막는 오류를 만남.CANCELLED— 알림 실행이 취소됨 (예: 알림이 일시 중단됐을 때).CONDITION_FALSE— 조건이 성공적으로 평가됐지만 데이터를 반환하지 않아 작업이 실행되지 않음. 새 데이터 알림에는 적용되지 않음.CONDITION_FAILED— 조건 평가가 실패함. 실패 세부 정보는 SQL_ERROR_CODE와 SQL_ERROR_MESSAGE 열을 확인.ACTION_FAILED— 조건은 성공적으로 평가됐지만 작업 실행이 실패함. 실패 세부 정보는 SQL_ERROR_CODE와 SQL_ERROR_MESSAGE 열을 확인.TRIGGERED— 조건이 성공적으로 평가됐고 작업도 성공적으로 실행됨.
SCHEDULED_FROM 열 값:
SCHEDULE— CREATE ALERT의 SCHEDULE 절에 설명된 대로 알림이 정상적으로 예약되어 실행됨.EXECUTE ALERT— 알림이 EXECUTE ALERT를 사용해 실행되도록 예약됨.TRIGGER— 기본 테이블 또는 뷰에 새 데이터가 있어 새 데이터 알림이 실행됨.
RUNBOOK, WAS_AUTO_SUSPENDED, CONFIG 열은 BCR 2026_04부터 사용할 수 있어요.
예제
알림 실행 모니터링 문서를 참고하세요.