CREATE MODEL MONITOR

在当前或指定架构中创建或替换 模型监控器

另请参阅:

ALTER MODEL MONITORSHOW MODEL MONITORSDESCRIBE MODEL MONITORDROP MODEL MONITOR

语法

CREATE [ OR REPLACE ] MODEL MONITOR [ IF NOT EXISTS ] <monitor_name> WITH
    MODEL = <model_name>
    VERSION = '<version_name>'
    FUNCTION = '<function_name>'
    SOURCE = <source_name>
    WAREHOUSE = <warehouse_name>
    REFRESH_INTERVAL = '<refresh_interval>'
    AGGREGATION_WINDOW = '<aggregation_window>'
    TIMESTAMP_COLUMN = <timestamp_name>
    [ BASELINE = <baseline_name> ]
    [ ID_COLUMNS = <id_column_name_array> ]
    [ PREDICTION_CLASS_COLUMNS = <prediction_class_column_name_array> ]
    [ PREDICTION_SCORE_COLUMNS = <prediction_column-name_array> ]
    [ ACTUAL_CLASS_COLUMNS = <actual_class_column_name_array> ]
    [ ACTUAL_SCORE_COLUMNS = <actual_column_name_array> ]
Copy

必填参数

monitor_name

指定模型监控器的标识符;在创建监控器的架构中必须唯一,并且必须与被监控的模型位于同一架构。

如果监控器标识符不是完全限定的(以 db_name.schema_name.nameschema_name.name 的形式),则该命令将在会话的当前架构中创建模型。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

MODEL = model_name

要监控的模型的名称。必须在创建监控器的同一架构中。

VERSION = 'version_name'

要监控的模型版本的名称。

FUNCTION = function_name

要监控的模型版本中特定函数的名称。

SOURCE = source_name

包含特征、推断和真实标签的源表或视图的名称。

WAREHOUSE = warehouse_name

用于监控器内部计算操作的 Snowflake 仓库的名称。

REFRESH_INTERVAL = 'refresh_interval'

监控器刷新其内部状态的时间间隔。值必须是表示时间段的字符串,如 '1 day'。支持的单位包括秒、分钟、小时、天、周、月、季度和年。可以使用单数(“hour”)或复(“hours”)形式作为时间间隔的名称,但不得使用缩写。

AGGREGATION_WINDOW = 'aggregation_window'

监控器汇总数据的窗口。值必须是表示时间段的字符串,如 '1 day'。仅支持天数。您可以使用单数(“day”)或复数(“days”)形式作为时间间隔的名称,但不得使用缩写。

TIMESTAMP_COLUMN = timestamp_name

源数据中包含时间戳的列的名称。必须为类型 TIMESTAMP_NTZ。

可选参数

BASELINE = baseline_name

包含类似 SOURCE 的数据快照基线表或视图的名称,用于计算偏移。此数据的快照嵌入监控器对象中。虽然此参数可选,但如果未设置,则监控器无法检测到漂移。

ID_COLUMNS = id_column_name_array

字符串列名称的数组,它们一起唯一标识源数据中的每行。 请参阅 ARRAY 常量

备注

至少有一个预测列(预测分数或预测类)是必需的。

  • 对于分类模型:预测可以是分数或类;实际必须是类。

  • 对于回归模型:预测与实际

PREDICTION_CLASS_COLUMNS = prediction_class_column_name_array

用于命名数据源中所有预测类列的字符串数组。请参阅 ARRAY 常量。列的类型必须为 NUMBER。

PREDICTION_SCORE_COLUMNS = prediction_column_name_array

用于命名数据源中所有预测分数列的字符串数组。请参阅 ARRAY 常量。列的类型必须为 NUMBER。

ACTUAL_CLASS_COLUMNS = actual_class_column_name_array

用于命名数据源中所有实际类列的字符串数组。 请参阅 ARRAY 常量。列的类型必须为 NUMBER。

ACTUAL_SCORE_COLUMNS = actual_column_name_array

用于命名数据源中的所有实际分数列的字符串数组。 请参阅 ARRAY 常量。列的类型必须为 NUMBER。

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

OWNERSHIP

模型监控器

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

CREATE MODEL MONITOR

架构

SELECT

由 SOURCE 参数指定的表或视图

USAGE

由 WAREHOUSE 参数指定的仓库

USAGE

由 MODEL 参数指定的模型

要对架构中的任何对象执行操作,需要对父数据库和架构具有 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 以下要求适用于参数:

    • 模型任务必须为 tabular_binary_classificationtabular_regression

    • 目前不支持多输出模型。尽管预测列和实际列是数组,但数组必须只有一个元素。

    • 必须至少指定一个预测列。

    • 实际列可选,但如果未指定,则不会计算准确性指标。

    • 可以在所有参数中指定一次列(例如,ID 列不能还是预测列)。

  • 被监控的特征数限制为 500 个。

  • MODEL MONITOR 实例的基本配置(包括它监控的模型和它使用的数据源)在监控器创建后无法更改。您只能使用 ALTER MODEL MONITOR 修改一些选项。要更改监控器的配置,请删除该实例并创建一个新实例。

  • 只有 CUSTOM_CLASSIFIER 类的实例支持 复制

  • OR REPLACEIF NOT EXISTS 子句互斥。它们不能同时用于同一条语句中。

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

语言: 中文