CREATE CORTEX SEARCH SERVICE¶
Cria um novo Cortex Search Service ou substitui um existente.
Sintaxe¶
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 }'
EMBEDDING_MODEL = <embedding_model_name>
COMMENT = '<comment>'
AS <query>;
Parâmetros¶
name
A cadeia de caracteres que especifica o identificador (ou seja, o nome) para o Cortex Search Service; deve ser exclusivo para o esquema no qual o serviço é criado.
Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo,
"My object"
). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.Para obter mais informações, consulte Requisitos para identificadores.
ON search_column
Especifica a coluna de texto na tabela base na qual você deseja pesquisar. Esta coluna deve ser um valor de texto.
ATTRIBUTES col_name [ , ... ]
Especifica uma lista separada por vírgulas de colunas na tabela base que você deseja filtrar ao emitir consultas ao serviço. As colunas de atributos devem ser incluídas na consulta de origem, por meio de enumeração explícita ou curinga, (
*
).WAREHOUSE = warehouse_name
Especifica o warehouse a ser usado para executar a consulta de origem, criar o índice de pesquisa e mantê-lo atualizado de acordo com o destino TARGET_LAG.
TARGET_LAG = 'num { seconds | minutes | hours | days }'
Especifica o tempo máximo que o conteúdo do Cortex Search Service deve ficar atrás das atualizações das tabelas base especificadas na consulta de origem.
EMBEDDING_MODEL = <embedding_model_name>
Parâmetro opcional que especifica o modelo de incorporação a ser usado no Cortex Search Service. Essa propriedade não pode ser alterada depois que você criar o Cortex Search Service. Para modificar a propriedade, recrie o Cortex Search Service com um comando CREATE OR REPLACE CORTEX SEARCH SERVICE.
Alguns modelos de incorporação estão disponíveis apenas em determinadas regiões da nuvem para o Cortex Search. Para obter uma lista de disponibilidade por modelo e por região, consulte Disponibilidade regional do Cortex Search.
Cada modelo pode incorrer em um custo diferente por milhão de tokens de entrada processados. Consulte a Tabela de consumo do serviço Snowflake para o custo de cada função em créditos por milhão de tokens.
Se o endereço
EMBEDDING_MODEL
não for especificado, o modelo padrão será usado. O modelo padrão ésnowflake-arctic-embed-m-v1.5
.COMMENT = 'comment'
Especifica um comentário para o serviço.
AS query
Especifica uma consulta que define a tabela base a partir da qual o serviço é criado.
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
---|---|
CREATE CORTEX SEARCH SERVICE |
Esquema no qual você planeja criar o serviço de pesquisa. |
SELECT |
Tabelas e visualizações que você planeja consulta para o novo serviço. |
USAGE |
Warehouse que você planeja usar para atualizar o serviço. |
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Atenção
Para criar um Cortex Search Service, sua função deve ter os mesmos privilégios necessários para usar as funções LLM do Cortex. Consulte Privilégios necessários para funções LLM do Cortex.
Notas de uso¶
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.
O tamanho do warehouse usado para executar a consulta de origem do Cortex Search Service afeta a velocidade e o custo de cada atualização. Um warehouse maior diminui o tempo de criação e atualização. No entanto, durante esta versão preliminar, a Snowflake recomenda usar um tamanho de warehouse não maior do que MEDIUM para os Cortex Search Services.
A Snowflake recomenda usar um warehouse dedicado para cada Cortex Search Service para não interferir em outras cargas de trabalho.
O índice de pesquisa é criado como parte da instrução create, o que significa que a instrução CREATE CORTEX SEARCH SERVICE pode demorar mais para ser concluída para conjuntos de dados maiores.
Exemplo¶
O exemplo a seguir cria um Cortex Search Service nomeado mysvc
:
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'
EMBEDDING_MODEL = 'snowflake-arctic-embed-l-v2.0'
AS (
SELECT
transcript_text,
date,
region,
agent_id
FROM support_db.public.transcripts_etl
);