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 }'
COMMENT = '<comment>'
AS <query>;
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.
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 commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
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. |
Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.
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'
AS (
SELECT
transcript_text,
date,
region,
agent_id
FROM support_db.public.transcripts_etl
);