CREATE CORTEX SEARCH SERVICE¶
Erstellt einen neuen Cortex Search Service oder ersetzt einen bestehenden.
Syntax¶
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>;
Erforderliche Parameter¶
name
Zeichenfolge, die den Bezeichner (d.h. den Namen) für den Cortex Search Service angibt; muss für das Schema, in dem der Dienst erstellt wird, eindeutig sein.
Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.
ON search_column
Gibt die Textspalte in der Basistabelle an, nach der Sie suchen möchten. Diese Spalte muss ein Textwert sein.
ATTRIBUTES col_name [ , ... ]
Gibt eine durch Kommas getrennte Liste von Spalten in der Basistabelle an, nach denen Sie bei Abfragen an den Dienst filtern möchten. Attributspalten müssen in der Abfrage enthalten sein, entweder über eine explizite Aufzählung oder einen Platzhalter (
*
).WAREHOUSE = warehouse_name
Gibt das Warehouse an, das für die Ausführung der Abfrage, den Aufbau des Suchindex und dessen Aktualisierung gemäß dem TARGET_LAG-Ziel verwendet wird.
TARGET_LAG = 'num { seconds | minutes | hours | days }'
Gibt die maximale Zeitspanne an, die der Inhalt des Cortex Search Service hinter den Aktualisierungen der in der Abfrage angegebenen Basistabellen zurückbleiben darf.
Optionale Parameter¶
EMBEDDING_MODEL = <embedding_model_name>
Optionaler Parameter, der das Einbettungsmodell angibt, das in Cortex Search Service verwendet werden soll. Diese Eigenschaft kann nicht mehr geändert werden, nachdem Sie den Cortex Search Service erstellt haben. Um die Eigenschaft zu ändern, erstellen Sie den Cortex Search Service mit einem CREATE OR REPLACE CORTEX SEARCH SERVICE-Befehl neu.
Einige Einbettungsmodelle sind für Cortex Search nur in bestimmten Regionen der Cloud verfügbar. Eine Liste der Verfügbarkeit nach Modell und Region finden Sie unter Regionale Verfügbarkeit von Cortex Search.
Jedes Modell kann unterschiedliche Kosten pro Million verarbeiteter Eingabetoken verursachen. Die Kosten für jede Funktion in Credits pro Million Token finden Sie in der Snowflake Service Consumption Table.
Wenn das
EMBEDDING_MODEL
nicht angegeben wird, wird das Standardmodell verwendet. Das Standardmodell istsnowflake-arctic-embed-m-v1.5
.INITIALIZE
Legt die Verhaltensweise der anfänglichen Aktualisierung des Cortex Search Service fest. Diese Eigenschaft kann nicht mehr geändert werden, nachdem Sie den Dienst erstellt haben. Um die Eigenschaft zu ändern, ersetzen Sie den Cortex Search Service durch einen CREATE OR REPLACE CORTEX SEARCH SERVICE-Befehl.
ON_CREATE
Aktualisiert den Cortex Search Service synchron bei der Erstellung. Wenn diese Aktualisierung fehlschlägt, schlägt die Erstellung des Dienstes fehl und es wird eine Fehlermeldung angezeigt.
ON_SCHEDULE
Aktualisiert den Cortex Search Service bei der nächsten geplanten Aktualisierung.
Der Cortex Search Service wird aufgefüllt, wenn der Aktualisierungszeitplan-Prozess läuft. Bei der Erstellung des Cortex Search Service werden keine Daten eingegeben. Wenn Sie versuchen, den Dienst abzufragen, wird möglicherweise der folgende Fehler angezeigt, da die erste geplante Aktualisierung noch nicht stattgefunden hat.
Your service has not yet been loaded into our serving system. Please retry your request in a few minutes.
Standard:
ON_CREATE
COMMENT = 'comment'
Gibt einen Kommentar für den Dienst an.
AS query
Gibt eine Abfrage an, die die Basistabelle definiert, aus der der Dienst erstellt wird.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
---|---|
CREATE CORTEX SEARCH SERVICE |
Schema, in dem der Search Service erstellt werden soll. |
SELECT |
Tabellen und Ansichten, die Sie für den neuen Dienst abfragen möchten. |
USAGE |
Warehouse, das Sie für die Aktualisierung des Dienstes verwenden möchten. |
USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Achtung
Um einen Cortex Search Service zu erstellen, muss Ihre Rolle über dieselben Berechtigungen verfügen, die für die Nutzung der Cortex LLM-Funktionen erforderlich sind. Siehe Cortex LLM-Funktionen – Erforderliche Berechtigungen.
Nutzungshinweise¶
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Die Größe des Warehouses, das für die Cortex Search Service-Ausgangsabfrage verwendeten Warehouses wirkt sich auf die Geschwindigkeit und die Kosten der einzelnen Aktualisierungen aus. Ein größeres Warehouse verkürzt die Erstellungs- und Aktualisierungszeit. Während dieser Vorschau empfiehlt Snowflake jedoch, für die Cortex Search Services eine Warehouse-Größe von maximal MEDIUM zu verwenden.
Snowflake empfiehlt, für jeden Cortex Search Service ein eigenes Warehouse zu verwenden, um andere Workloads nicht zu beeinträchtigen.
Der Suchindex wird als Teil der CREATE-Anweisung erstellt, was bedeutet, dass die Anweisung CREATE CORTEX SEARCH SERVICE bei größeren Datasets länger dauern kann.
Die
OR REPLACE
- undIF NOT EXISTS
-Klauseln schließen sich gegenseitig aus. Sie können nicht beide in derselben Anweisung verwendet werden.CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.
Beispiel¶
Erstellen Sie einen Cortex Search Service namens mysvc
unter Verwendung des snowflake-arctic-embed-l-v2.0
-Einbettungsmodells:
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
);
Erstellen Sie einen Cortex Search Service mit dem Namen mysvc
, wobei die erste Aktualisierung nach Ablauf eines TARGET_LAG
-Zeitraums (1 Stunde) erfolgen soll.
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;