CREATE ALERT

현재 스키마에서 새 경고 를 생성합니다.

참고 항목:

ALTER ALERT , DESCRIBE ALERT, DROP ALERT , SHOW ALERTS

구문

CREATE [ OR REPLACE ] ALERT [ IF NOT EXISTS ] <name>
  WAREHOUSE = <warehouse_name>
  SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }'
  IF( EXISTS(
    <condition>
  ))
  THEN
    <action>
Copy

필수 매개 변수

name

경고의 식별자(즉, 이름)를 지정하는 문자열로, 경고가 생성되는 스키마에 대해 고유해야 합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

WAREHOUSE = warehouse_name

이 경고를 실행하기 위한 컴퓨팅 리소스를 제공하는 가상 웨어하우스를 지정합니다.

SCHEDULE ...

경고의 조건을 주기적으로 평가하기 위한 일정을 지정합니다.

다음 방법 중 하나로 일정을 지정할 수 있습니다.

  • USING CRON expr time_zone

    경고의 조건을 주기적으로 평가하기 위한 cron 식과 타임존을 지정합니다. 표준 cron 유틸리티 구문의 서브세트를 지원합니다.

    cron 식은 다음 필드로 구성됩니다.

    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | _ day of week (0-6, SUN-SAT, or L)
    # | | | | |
    # | | | | |
      * * * * *
    
    Copy

    다음 특수 문자가 지원됩니다.

    특수 문자

    설명

    *

    와일드카드. 필드의 모든 발생을 지정합니다.

    L

    《last(마지막)》를 의미합니다. day-of-month(요일) 필드에 사용하면 해당 월의 《마지막 금요일》(《5L》)과 같은 구문을 지정할 수 있습니다. day-of-month 필드에서는 해당 월의 마지막 요일을 지정합니다.

    /n

    주어진 시간 단위의 n 번째 인스턴스를 나타냅니다. 시간의 각 양은 독립적으로 계산됩니다.

    예를 들어, 월 필드에 4/3 이 지정된 경우 조건의 평가는 4월, 7월, 10월로 예약됩니다(즉, 해당 연도의 4번째 달부터 3개월마다).

    다음 해에도 동일한 일정이 유지됩니다. 즉, 조건은 1월(10월 실행 후 3개월)에 실행되도록 예약되지 않습니다.

    참고

    • cron 식은 현재 지정된 타임존에 대해서만 계산됩니다. 계정에 대한 TIMEZONE 매개 변수 값을 변경하는 것(또는 사용자 또는 세션 수준에서 값을 설정)은 경고의 타임존을 변경하지는 않습니다.

    • cron 식은 경고의 조건 평가를 위한 모든 유효한 시간을 정의합니다. Snowflake는 이 일정에 따라 조건을 평가하려고 시도합니다. 그러나 다음 유효한 실행 시간이 시작되기 전에 이전 실행이 완료되지 않은 경우, 유효한 실행 시간을 건너뜁니다.

    • 특정 일자와 요일이 cron 식에 포함된 경우, 일자 또는 요일 중 하나를 만족하는 날짜에 조건 평가가 예약됩니다. 예를 들어, SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' 는 해당 월의 10일에서 20일 사이에서 0AM에 평가를 예약하고 해당 날짜 이외의 모든 화요일이나 목요일에도 작업을 예약합니다.

  • num MINUTE

    경고 평가 사이에 삽입되는 대기 시간의 간격(분)을 지정합니다. 양의 정수만 허용합니다.

    또한 num M 구문을 지원합니다.

    모호성을 피하기 위해 경고가 재개될 때 기본 간격 시간 이 설정됩니다(ALTER ALERT … RESUME 사용).

    기본 간격 시간은 현재 시계 시간부터 간격 카운터를 시작합니다. 예를 들어 경고가 10 MINUTE 로 생성되고 오전 9:03에 다시 시작될 경우 경고의 조건이 오전 9:13, 오전 9:23 등에 평가됩니다. 당사는 절대 정밀도를 보장하기 위해 최선을 다하지만, 설정된 간격이 발생하기 전에 조건이 평가되지 않는다는 것만 보장합니다(예: 현재 예에서 조건은 오전 9:14에 처음 평가될 수 있지만, 오전 9:12에는 확실히 평가될 수 없음).

    참고

    지원되는 최대값은 11520 (8일)입니다. num MINUTE 값이 더 큰 경고는 조건이 평가된 적 없습니다.

condition

경고 조건을 나타내는 SQL 문입니다. 다음 명령을 사용할 수 있습니다.

문이 하나 이상의 행을 반환하면 경고에 대한 동작이 실행됩니다.

action

조건이 하나 이상의 행을 반환하는 경우 실행해야 하는 SQL 문입니다.

이메일 알림을 보내려면 SYSTEM$SEND_EMAIL() 저장 프로시저 를 호출하면 됩니다.

참고

경고의 동작에서 익명 Snowflake Scripting 블록을 사용하는 경우 값을 반환하면 경고 기록에서 상태, 쿼리 ID, 오류 정보가 잘못될 수 있습니다.

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

EXECUTE ALERT

계정

CREATE ALERT

스키마

USAGE

웨어하우스

경고에 사용되는 웨어하우스에 필요합니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 경고는 경고 소유자(즉, 작업에 대한 OWNERSHIP 권한이 있는 역할)에게 부여된 권한을 사용하여 실행됩니다. 경고를 실행하는 데 필요한 최소 권한 목록은 경고 생성 권한 부여하기 섹션을 참조하십시오.

    경고 소유자 역할에 조건과 동작에 대한 SQL 문을 실행하는 데 필요한 권한이 있는지 확인하려면 경고 소유자 역할을 사용하여 이러한 문을 실행한 후에 CREATE ALERT에 지정하는 것이 좋습니다.

  • 경고를 생성하면 경고가 기본적으로 일시 중단됩니다.

    경고를 활성화하려면 ALTER ALERT … RESUME 를 실행해야 합니다.

경고 만들기 섹션을 참조하십시오.