SYSTEM$GET_ALERT_TEMPLATE

SYSTEM$GET_ALERT_TEMPLATE

설정할 수 있는 변수, 해당 변수의 데이터 타입, 기본값, 허용 값, 그리고 바로 적용할 수 있는 예제 문장을 포함하여 단일 알림 템플릿의 정의를 반환해요.

SYSTEM$LIST_ALERT_TEMPLATES를 사용하여 템플릿 식별자를 발견한 다음, CREATE ALERT … FROM TEMPLATE로 알림을 만들기 전에 이 함수로 템플릿을 검사하세요.

출처: Snowflake SYSTEM$GET_ALERT_TEMPLATE 함수 문서

본문

구문 (Syntax)

SYSTEM$GET_ALERT_TEMPLATE( '' )

인자 (Arguments)

  • template_id — 반환할 템플릿의 식별자로, SYSTEM$LIST_ALERT_TEMPLATES가 보고하는 값이에요. 식별자는 대소문자를 구분하지 않아요. 반환된 페이로드는 template_id에 정규 식별자를 보고해요.

반환 값 (Returns)

단일 template 필드를 가진 JSON 객체를 반환해요. template 객체에는 SYSTEM$LIST_ALERT_TEMPLATES가 각 템플릿에 대해 보고하는 것과 동일한 메타데이터(template_id, template_version, display_name, alert_description, product, supports_new_data_schedule, default_schedule, scope, subcategories, runbook)가 포함되며, 추가로 다음이 포함돼요:

  • template_variables — TEMPLATE_PARAMS 절을 통해 설정할 수 있는 각 변수를 설명하는 배열이에요. 각 변수는 다음을 가져요:
    • name — TEMPLATE_PARAMS에서 키로 사용할 변수 이름.
    • display_name — 사람이 읽을 수 있는 이름.
    • description — 변수를 설명하는 도움말 텍스트.
    • data_type — 값 타입: STRING, NUMBER, 또는 INTEGER.
    • semantic_type — 값 범주: PERCENTAGE, DURATION_HOURS, COUNT, PLAIN_TEXT 등.
    • default_value — 변수를 생략할 때 사용되는 값.
    • optional — 변수가 선택 사항이면 존재하며 true. 그렇지 않으면 생략.
    • options — 고정 값 집합을 받는 변수의 경우 허용 값 배열 (예: 모니터링 범위에 대한 ["ACCOUNT", "DATABASE", "SCHEMA"]).
    • min, max, exclusive_min — 범위를 가진 숫자 변수의 경우 하한, 상한, 그리고 하한이 배타적인지 여부. 해당하지 않으면 필드는 생략.
  • create_syntax — 템플릿에 대한 바로 적용 가능한 CREATE ALERT … FROM TEMPLATE 문장으로, 기본값과 샘플 값으로 미리 채워져 있어요. 실행하기 전에 자리 표시자 객체 이름을 바꾸세요.
  • alert_definition_template — 원시 템플릿 본문이에요. 이 필드는 참고용이에요. FROM TEMPLATE 절로 알림을 만들 때는 필요하지 않아요.

사용 노트 (Usage Notes)

  • 이 함수는 읽기 전용이에요. 실행 중인 웨어하우스가 필요하지 않아요.
  • 변수에 default_value와 optional: true 플래그가 모두 없으면 필수예요. 별도의 required 필드는 없어요 — 필수 여부는 default_value와 optional로 파생돼요.
  • options 및 min/max 필드는 CREATE ALERT … FROM TEMPLATE 절이 정확히 무엇을 강제하는지 알려주므로, 문장을 실행하기 전에 이들을 사용해 유효한 TEMPLATE_PARAMS 값을 만들 수 있어요.
  • 템플릿 ID가 존재하지 않거나 액세스 권한이 없으면 함수는 "object does not exist or not authorized" 오류를 반환해요. SYSTEM$LIST_ALERT_TEMPLATES로 식별자를 검증하세요.

예제 (Examples)

TASKS_ERROR_RATE 템플릿 검사:

SELECT SYSTEM$GET_ALERT_TEMPLATE('TASKS_ERROR_RATE');

이 함수는 다음과 유사한 JSON 객체를 반환해요 (약어 표기):

{
  "template": {
    "template_id": "TASKS_ERROR_RATE",
    "template_version": "4.0.0",
    "display_name": "Error rate alert",
    "alert_description": "Monitors when the cumulative error rate of tasks exceeds a threshold, indicating systematic task failures that require attention.",
    "product": "TASKS",
    "supports_new_data_schedule": false,
    "default_schedule": "30 MINUTES",
    "scope": ["Account", "Database", "Schema"],
    "subcategories": null,
    "runbook": "https://docs.snowflake.com/en/user-guide/tasks-ts",
    "template_variables": [
      {
        "name": "ERROR_RATE_THRESHOLD",
        "display_name": "Error rate threshold",
        "description": "Trigger alert when cumulative task error rate exceeds this threshold (0.0 - 1.0).",
        "data_type": "NUMBER",
        "semantic_type": "PERCENTAGE",
        "default_value": 0.15,
        "min": 0,
        "max": 1
      },
      {
        "name": "TASK_NAME_FILTER",
        "display_name": "Task name filter",
        "description": "Optional filter pattern to scope alert to specific tasks (for example, 'ETL_' for tasks starting with ETL_). Leave empty to include all tasks.",
        "data_type": "STRING",
        "semantic_type": "PLAIN_TEXT",
        "default_value": ""
      },
      {
        "name": "SCOPE_ACTIVE",
        "display_name": "Monitoring scope",
        "description": "Monitoring scope for this alert.",
        "data_type": "STRING",
        "semantic_type": "PLAIN_TEXT",
        "default_value": "ACCOUNT",
        "options": ["ACCOUNT", "DATABASE", "SCHEMA"]
      },
      {
        "name": "SCOPE_DATABASE",
        "display_name": "Scope database",
        "description": "Database to monitor when scope is DATABASE or SCHEMA.",
        "data_type": "STRING",
        "semantic_type": "PLAIN_TEXT",
        "default_value": ""
      },
      {
        "name": "SCOPE_SCHEMA",
        "display_name": "Scope schema",
        "description": "Schema to monitor when scope is SCHEMA.",
        "data_type": "STRING",
        "semantic_type": "PLAIN_TEXT",
        "default_value": ""
      },
      {
        "name": "NOTIFICATION_MODE",
        "display_name": "Notification mode",
        "description": "Active notification mode for this alert.",
        "data_type": "STRING",
        "semantic_type": "PLAIN_TEXT",
        "default_value": "EMAIL",
        "options": ["EMAIL", "WEBHOOK"]
      },
      {
        "name": "EMAIL_NOTIFICATION_INTEGRATION",
        "display_name": "Email notification integration",
        "description": "Email notification integration name.",
        "data_type": "STRING",
        "semantic_type": "PLAIN_TEXT",
        "default_value": ""
      },
      {
        "name": "WEBHOOK_NOTIFICATION_INTEGRATION",
        "display_name": "Webhook notification integration",
        "description": "Webhook notification integration name.",
        "data_type": "STRING",
        "semantic_type": "PLAIN_TEXT",
        "default_value": ""
      }
    ],
    "create_syntax": "CREATE OR REPLACE ALERT MY_DB.MY_SCHEMA.MY_ALERT\n  FROM TEMPLATE TASKS_ERROR_RATE\n  WAREHOUSE = MY_WAREHOUSE\n  SCHEDULE = '30 MINUTES'\n  TEMPLATE_PARAMS = '{\n  \"template_variables\" : {\n    \"ERROR_RATE_THRESHOLD\" : 0.15,\n    \"TASK_NAME_FILTER\" : \"\",\n    \"SCOPE_ACTIVE\" : \"ACCOUNT\",\n    \"SCOPE_DATABASE\" : \"\",\n    \"SCOPE_SCHEMA\" : \"\",\n    \"NOTIFICATION_MODE\" : \"EMAIL\",\n    \"EMAIL_NOTIFICATION_INTEGRATION\" : \"\",\n    \"WEBHOOK_NOTIFICATION_INTEGRATION\" : \"\"\n  },\n  \"notification_config\" : {\n    \"notification_integration\" : \"MY_EMAIL_INTEGRATION\",\n    \"email_config\" : {\n      \"toAddress\" : [ \"[email protected]\" ]\n    }\n  }\n}';"
  }
}

이 예제에서 ERROR_RATE_THRESHOLD는 0과 1 사이여야 하고, SCOPE_ACTIVE는 ACCOUNT, DATABASE, SCHEMA 중 하나여야 하며, NOTIFICATION_MODE는 EMAIL 또는 WEBHOOK여야 해요. default_value가 없는 변수가 없으므로 이 템플릿의 모든 변수는 선택 사항이에요.

더 알아보기