ALTER CORTEX SEARCH SERVICE

暂停、恢复或修改现有 Cortex Search 服务 的属性。

语法

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ] <name>
  { SUSPEND | RESUME } [ { INDEXING | SERVING } ]

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ] <name> REFRESH

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ] <name> SET
  [ TARGET_LAG = { '<num> { seconds | minutes | hours | days }' } ]
  [ WAREHOUSE = <warehouse_name> ]
  [ COMMENT = '<string_literal>' ]

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ] <name> UNSET
  [ PRIMARY KEY ]

ALTER CORTEX SEARCH SERVICE <name>
  ADD SCORING PROFILE <profile_name> [ IF NOT EXISTS ]
  <scoring_profile>

ALTER CORTEX SEARCH SERVICE <name>
  DROP SCORING PROFILE [ IF EXISTS ] <profile_name>
Copy

参数

name

指定要更改的 Cortex Search 服务的标识符。

如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

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

{ SUSPEND | RESUME } ...

Suspends or resumes the indexing, serving, or both for a Cortex Search service. You can specify one of the following keywords to indicate which layer to suspend or resume:

INDEXING

指示 Cortex Search 服务的索引层的目标。有关更多详细信息,请参阅 使用说明

SERVING

指示 Cortex Search 服务的服务层的目标。有关更多详细信息,请参阅 使用说明

如果未指定任一关键字,则索引层和服务层都将暂停或恢复。OPERATE 权限是暂停或恢复 Cortex Search 服务所必需的。

REFRESH

触发 Cortex Search 服务的手动刷新。索引服务会立即检查源数据是否有更改,并处理任何新行或更改的行。

SET ...

为 Cortex Search 服务设置一个或多个指定的属性或参数:

TARGET_LAG = 'num { seconds | minutes | hours | days }'

指定 Cortex Search 服务内容应滞后于源查询中指定的基表更新的最长时间。

WAREHOUSE = warehouse_name

指定要用于运行源查询、构建搜索索引并按 TARGET_LAG 目标保持对其进行刷新的仓库。

COMMENT = 'string_literal'

添加注释或覆盖搜索服务的现有注释。

PRIMARY KEY = (column_name, column_name, ...)

修改 Cortex Search 服务的 主键列 集。

UNSET ...

不为 Cortex Search 服务的一个或多个指定的属性或参数设置值。

PRIMARY KEY

移除之前为 Cortex Search 服务设置的所有 主键列

ADD SCORING PROFILE profile_name [ IF NOT EXISTS ] scoring_profile

Adds a named scoring profile to the Cortex Search service. Scoring profiles define custom ranking behavior for search results. For more information, see Named scoring profiles.

profile_name

Specifies the name of the scoring profile to add. If a profile with the specified name already exists, an error occurs unless you specify IF NOT EXISTS. To modify an existing profile, drop it using DROP SCORING PROFILE first.

scoring_profile

The scoring profile definition in JSON string format. The schema is the same as a scoring configuration specified directly in a search query using the scoring_config parameter. See 数字提升和时间衰减 for syntax and examples.

DROP SCORING PROFILE [ IF EXISTS ] profile_name

Drops a named scoring profile from the Cortex Search service.

profile_name

The name of the scoring profile to drop.

访问控制要求

权限

对象

OWNERSHIP

要修改其属性的 Cortex Search 服务。

OPERATE

您想要暂停或恢复的 Cortex Search 服务。

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。

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

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

使用说明

注意

客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

INDEXING 和 SERVING 状态

Cortex Search services have two distinct processes that can be in either the RUNNING or SUSPENDED state: INDEXING and SERVING.

  • INDEXING 是指示 Cortex Search 服务的索引层的目标。处于 RUNNING 状态时,由服务的源查询引用的基表中的更改将提示刷新作为搜索索引一部分存储的物化数据。这些刷新以仓库计算和向量嵌入的形式产生成本。处于 SUSPENDED 状态时,基表的更改不会触发刷新,也不会反映在 Cortex Search 服务的可查询数据中。

  • SERVING 是指示 Cortex Search 服务的服务层的目标。此目标必须处于 RUNNING 状态才能查询服务。当处于暂停状态时,Cortex Search 服务将不会以 Cortex Search 服务成本的形式产生计费。

有关详细的成本注意事项,请参阅 成本注意事项

Cortex Search 服务的 INDEXING 层和 SERVING 层可以独立管理。例如,如果 SERVING 处于正在运行状态,而 INDEXING 处于暂停 状态,则您仍可查询服务。但是,在恢复 INDEXING 并成功完成刷新之前,无论 TARGET_LAG 如何,该服务都不会反映基础数据中的任何更改。

相反,如果 INDEXING 在 SERVING 暂停时正在运行,则索引将继续刷新。SERVING 恢复后,变为可查询的已加载索引将反映最新的源数据。

未指定 SERVING 或 INDEXING 关键字时,这两个目标都将受到指定操作的影响。

手动刷新

当您手动刷新 Cortex Search 服务时,该服务会立即检查其源数据是否有更改,并根据需要更新索引。当您需要尽可能最新的结果时(例如,当您刚刚添加或更新了重要文档并希望用户立即获得这些结果时),触发手动刷新 Cortex Search 服务。 您还可以通过手动刷新来确保结果在特定时间(例如业务开始时)始终是最新的。

您可以使用 ALTER CORTEX SEARCH SERVICE ... REFRESH 命令或在 Snowsight 中触发 Cortex Search 服务的手动刷新。

主键

对 Cortex Search 服务的主键列的更改只会影响未来的刷新。也就是说,主键的更改将在下一次源数据变更后生效。

示例

以下示例将名为 mysvc 的 Cortex Search 服务使用的仓库更改为 my_new_wh

ALTER CORTEX SEARCH SERVICE mysvc SET WAREHOUSE = my_new_wh;
Copy

以下示例将名为 mysvc 的 Cortex Search 服务的注释字段设置为 new_comment

ALTER CORTEX SEARCH SERVICE mysvc SET COMMENT = 'new_comment';
Copy

以下示例将名为 mysvc 的 Cortex Search 服务的目标刷新延迟更改为 1 hour

ALTER CORTEX SEARCH SERVICE mysvc SET TARGET_LAG = '1 hour';
Copy

以下示例演示如何将名为 mysvc 的 Cortex Search 服务的主键列设置为 regionagent_id

ALTER CORTEX SEARCH SERVICE mysvc SET PRIMARY KEY = (region, agent_id);
Copy

以下示例演示如何清除名为 mysvc 的 Cortex Search 服务的主键列:

ALTER CORTEX SEARCH SERVICE mysvc UNSET PRIMARY KEY;
Copy

以下示例演示如何暂停名为 mysvc 的 Cortex Search 服务的数据提供:

ALTER CORTEX SEARCH SERVICE mysvc SUSPEND SERVING;
Copy

以下示例演示如何手动刷新名为 mysvc 的 Cortex Search 服务:

ALTER CORTEX SEARCH SERVICE mysvc REFRESH;
Copy
语言: 中文