CREATE CORTEX SEARCH SERVICE¶
创建新的 Cortex Search 服务 或替换现有服务。
语法¶
CREATE [ OR REPLACE ] CORTEX SEARCH SERVICE [ IF NOT EXISTS ] <name>
ON <search_column>
ATTRIBUTES <col_name> [ , ... ]
WAREHOUSE = <warehouse_name>
TARGET_LAG = '<num> { seconds | minutes | hours | days }'
COMMENT = '<comment>'
AS <query>;
参数¶
name
指定 Cortex Search 服务标识符(即名称)的字符串;对于在其中创建服务的架构,它必须是唯一的。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object"
)。放在双引号内的标识符也区分大小写。有关更多信息,请参阅 标识符要求。
ON search_column
在基表中指定要搜索的文本列。此列必须是文本值。
ATTRIBUTES col_name [ , ... ]
指定在向服务发出查询时要进行过滤的基表中列的逗号分隔列表。必须通过显式枚举或通配符 (
*
) 将属性列包含在源查询中。WAREHOUSE = warehouse_name
指定要用于运行源查询、构建搜索索引并按 TARGET_LAG 目标保持对其进行刷新的仓库。
TARGET_LAG = 'num { seconds | minutes | hours | days }'
指定 Cortex Search 服务内容应滞后于源查询中指定的基表更新的最长时间。
COMMENT = 'comment'
指定服务的注释。
AS query
指定一个查询,用于定义创建服务的基表。
访问控制要求¶
权限 |
对象 |
---|---|
CREATE CORTEX SEARCH SERVICE |
计划在其中创建搜索服务的架构。 |
SELECT |
计划为新服务查询的表格和视图。 |
USAGE |
计划用来刷新服务的仓库。 |
请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述。
注意
要创建 Cortex Search 服务,您的角色必须具有使用 Cortex LLM 函数所需的相同权限。请参阅 Cortex LLM 函数所需权限。
使用说明¶
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
用于运行 Cortex Search 服务源查询的仓库大小确实会影响每次刷新的速度和成本。更大的仓库可缩短构建和刷新时间。但是,在本预览版中,Snowflake 建议为每项 Cortex Search 服务使用大小不超过 MEDIUM 的仓库。
Snowflake 建议为每个 Cortex Search 服务使用专用仓库,以免干扰其他工作负载。
搜索索引作为创建语句的一部分构建,这意味着 CREATE CORTEX SEARCH SERVICE 语句可能需要更长的时间才能完成较大的数据集。
示例¶
以下示例创建了一个名为 mysvc
的 Cortex Search 服务:
USE SCHEMA support_db.public;
CREATE OR REPLACE CORTEX SEARCH SERVICE mysvc
ON transcript_text
ATTRIBUTES region,agent_id
WAREHOUSE = mywh
TARGET_LAG = '1 hour'
AS (
SELECT
transcript_text,
date,
region,
agent_id
FROM support_db.public.transcripts_etl
);