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 }'
  COMMENT = '<comment>'
  AS <query>;
Copy

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.

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

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

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.

Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.

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'
AS (
  SELECT
      transcript_text,
      date,
      region,
      agent_id
  FROM support_db.public.transcripts_etl
);
Copy