类别:

系统函数 (系统信息)

SYSTEM$GET_ALERT_CONFIG

警报 配置返回信息。

有关如何在警报上存储配置值的信息,请参阅 CREATE ALERT ... CONFIG

语法

SYSTEM$GET_ALERT_CONFIG( [<configuration_path>] )

实参

configuration_path

要返回的配置值的可选路径。

对半结构化数据使用与 Snowflake 查询相同的语法。有关更多信息,请参阅 GET_PATH

如果省略,该函数会将整个配置返回为 JSON 字符串。

返回

配置中指定路径的值,或完整的 JSON 字符串(如果未指定路径)。

如果该警报未设置任何配置,则返回 NULL

使用说明

  • 此函数只能在警报执行期间调用(即在警报的条件或动作 SQL 中)。在警报运行时之外调用该函数会产生错误。

  • 将配置值转换为特定类型时,请使用防御性 CAST 函数,例如 TRY_TO_NUMBERTRY_TO_BOOLEAN。当配置可能为 NULL 时,可使用 COALESCE 提供默认值。

示例

下面的示例创建了一个带配置的警报,并在条件和动作中使用 SYSTEM$GET_ALERT_CONFIG 读取值:

CREATE OR REPLACE ALERT my_metric_threshold_alert
  WAREHOUSE = my_alert_wh
  SCHEDULE = '5 MINUTE'
  CONFIG = $${
    "enabled": true,
    "threshold": 10,
    "notify": "ops"
  }$$
  IF( EXISTS(
    SELECT 1
      FROM my_db.my_schema.my_source_table
      WHERE COALESCE(TRY_TO_BOOLEAN(SYSTEM$GET_ALERT_CONFIG('enabled')), FALSE)
        AND metric_value > COALESCE(
          TRY_TO_NUMBER(SYSTEM$GET_ALERT_CONFIG('threshold')), 0)
  ))
  THEN
    INSERT INTO my_db.my_schema.my_output_table
      SELECT CURRENT_TIMESTAMP(), SYSTEM$GET_ALERT_CONFIG('notify');