CREATE CORTEX SEARCH SERVICE

Crée un nouveau Cortex Search Service ou remplace un existant.

Syntaxe

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

Paramètres

name

Chaîne qui spécifie l’identificateur (c’est-à-dire le nom) du Cortex Search Service ; doit être unique pour le schéma dans lequel le service est créé.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple, "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

ON search_column

Spécifie la colonne de texte dans la table de base sur laquelle vous souhaitez effectuer la recherche. Cette colonne doit être une valeur texte.

ATTRIBUTES col_name [ , ... ]

Spécifie la liste séparée par des virgules des colonnes de la table de base sur lesquelles vous souhaitez filtrer lors de l’émission de requêtes au service. Les colonnes d’attributs doivent être incluses dans la requête source, soit via une énumération explicite, soit via un caractère générique, (*).

WAREHOUSE = warehouse_name

Spécifie l’entrepôt à utiliser pour exécuter la requête source, créer l’index de recherche et le maintenir actualisé conformément à la TARGET_LAG cible.

TARGET_LAG = 'num { seconds | minutes | hours | days }'

Spécifie le délai maximum pendant lequel le contenu du Cortex Search Service doit être décalé par rapport aux mises à jour des tables de base dans la requête source.

EMBEDDING_MODEL = <embedding_model_name>

Paramètre facultatif qui spécifie le modèle d’intégration à utiliser dans Cortex Search Service. Cette propriété ne peut pas être modifiée après la création de Cortex Search Service. Pour modifier la propriété, recréez Cortex Search Service à l’aide d’une commande CREATE OR REPLACE CORTEX SEARCH SERVICE.

Certains modèles de représentation vectorielle ne sont disponibles que dans certaines régions du Cloud pour Cortex Search. Pour obtenir la liste des disponibilités par modèle et par région, voir Disponibilité régionale Cortex Search.

Chaque modèle peut induire un coût différent par million de jetons d’entrée traités. Reportez-vous à la table de consommation des services Snowflake pour le coût de chaque fonction en crédits par million de jetons.

Si le EMBEDDING_MODEL n’est pas spécifié, le modèle par défaut est utilisé. Le modèle par défaut est snowflake-arctic-embed-m-v1.5.

COMMENT = 'comment'

Spécifie un commentaire pour le service.

AS query

Spécifie une requête définissant la table de base à partir de laquelle le service est créé.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Objet

CREATE CORTEX SEARCH SERVICE

Schéma dans lequel vous prévoyez de créer le service de recherche.

SELECT

Tables et vues que vous envisagez d’interroger pour le nouveau service.

USAGE

Entrepôt que vous prévoyez d’utiliser pour actualiser le service.

Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Attention

Pour créer un Cortex Search Service, votre rôle doit disposer des mêmes privilèges que ceux requis pour utiliser Cortex LLM Fonctions. Voir Privilèges requis par Cortex LLM Fonctions.

Notes sur l’utilisation

Attention

Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.

  • La taille de l’entrepôt utilisé pour exécuter la requête source de Cortex Search Service a un impact sur la vitesse et le coût de chaque actualisation. Un entrepôt plus grand réduit le temps de création et d’actualisation. Cependant, au cours de cet aperçu, Snowflake recommande d’utiliser une taille d’entrepôt ne dépassant pas MEDIUM pour les services Cortex Search.

  • Snowflake recommande d’utiliser un entrepôt dédié pour chaque Cortex Search Service afin de ne pas interférer avec d’autres charges de travail.

  • L’index de recherche est construit dans le cadre de l’instruction de création, ce qui signifie que l’instruction CREATE CORTEX SEARCH SERVICE peut prendre plus de temps à se terminer pour des jeux de données plus volumineux.

Exemple

L’exemple suivant crée un Cortex Search Service nommé 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
);
Copy