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> ]
[ INITIALIZE = { ON_CREATE | ON_SCHEDULE } ]
[ COMMENT = '<comment>' ]
AS <query>;
Parâmetros obrigatórios¶
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.
Parâmetros opcionais¶
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
.INITIALIZE
Especifica o comportamento da atualização inicial do Cortex Search Service. Essa propriedade não pode ser alterada depois que você criar o serviço. Para modificar a propriedade, substitua o Cortex Search Service por um comando CREATE OR REPLACE CORTEX SEARCH SERVICE.
ON_CREATE
Atualiza o Cortex Search Service de forma síncrona na criação. Se essa atualização falhar, a criação do serviço falhará e será exibida uma mensagem de erro.
ON_SCHEDULE
Atualiza o Cortex Search Service na próxima atualização programada.
O Cortex Search Service é preenchido quando o processo do cronograma de atualização é executado. Nenhum dado é preenchido quando o Cortex Search Service é criado. Se você tentar consultar o serviço, poderá ver o seguinte erro, pois a primeira atualização programada ainda não ocorreu.
Your service has not yet been loaded into our serving system. Please retry your request in a few minutes.
Padrão:
ON_CREATE
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.
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.
As cláusulas
OR REPLACE
eIF NOT EXISTS
são mutuamente exclusivas. Elas não podem ser usadas na mesma instrução.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.
Exemplo¶
Crie um serviço do Cortex Search chamado mysvc
usando o modelo de incorporação snowflake-arctic-embed-l-v2.0
:
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
);
Crie um serviço Cortex Search chamado mysvc
, com a primeira atualização programada para ser executada após um período de TARGET_LAG
(1 hora).
CREATE OR REPLACE CORTEX SEARCH SERVICE mysvc
ON transcript_text
ATTRIBUTES region
WAREHOUSE = mywh
TARGET_LAG = '1 hour'
INITIALIZE = ON_SCHEDULE
AS SELECT * FROM support_db.public.transcripts_etl;