CREATE 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> ]
必填参数¶
monitor_name
指定模型监控器的标识符;在创建监控器的架构中必须唯一,并且必须与被监控的模型位于同一架构。
如果监控器标识符不是完全限定的(以
db_name.schema_name.name
或schema_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 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
以下要求适用于参数:
模型任务必须为
tabular_binary_classification
或tabular_regression
。目前不支持多输出模型。尽管预测列和实际列是数组,但数组必须只有一个元素。
必须至少指定一个预测列。
实际列可选,但如果未指定,则不会计算准确性指标。
可以在所有参数中指定一次列(例如,ID 列不能还是预测列)。
被监控的特征数限制为 500 个。
MODEL MONITOR 实例的基本配置(包括它监控的模型和它使用的数据源)在监控器创建后无法更改。您只能使用 ALTER MODEL MONITOR 修改一些选项。要更改监控器的配置,请删除该实例并创建一个新实例。
只有 CUSTOM_CLASSIFIER 类的实例支持 复制。
OR REPLACE
和IF NOT EXISTS
子句互斥。它们不能同时用于同一条语句中。CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。