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>;
Copy

参数

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

指定一个查询,用于定义创建服务的基表。

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

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
);
Copy
语言: 中文