Was ist Cortex Analyst?
Cortex Analyst ist der vollständig verwaltete Text-to-SQL-Dienst von Snowflake. Damit können Fachanwender Fragen in natürlicher Sprache stellen und SQL-gestützte Antworten erhalten, ohne selbst eine einzige Abfrage zu schreiben. Es gibt zwei Wege der Nutzung: über Snowflake Intelligence (die in Snowflake integrierte KI-Agenten-Oberfläche) oder über die REST-API, die Sie in eigene Anwendungen einbinden – etwa in Streamlit-Apps, Slack-Bots, Microsoft Teams, individuelle Web-Chat-Oberflächen oder jedes andere Business-Tool, in dem Ihre Nutzer ohnehin schon arbeiten. Der Dienst läuft auf Large Language Models – die wichtigsten Modelle sind Claude Sonnet, Mistral Large und Llama – und nutzt semantische Modelle, um Ihren Geschäftskontext zu verstehen.
Dieser Leitfaden gibt Ihnen einen kompakten Überblick über die Nutzung von Cortex Analyst und zeigt anschließend, wie Sie die Kosten überwachen und im Griff behalten.
Wie funktioniert Cortex Analyst?
Cortex Analyst übersetzt Fragen in natürlicher Sprache in präzise SQL-Abfragen – durch das Zusammenspiel von Large Language Models und semantischen Modellen. Das semantische Modell schlägt die Brücke zwischen Geschäftssprache und Datenbankschema und liefert dem LLM den Kontext, den es für korrektes SQL braucht.
Semantische Modelle erstellen
Für die Erstellung semantischer Modelle haben Sie zwei Möglichkeiten:
- Den Snowsight-Assistenten nutzen: Navigieren Sie in Snowsight zu AI & ML " Cortex Analyst und legen Sie über die geführte Einrichtung eine Semantic View an. Der Assistent führt Sie durch die Auswahl der Tabellen, die Definition von Dimensionen und Kennzahlen sowie das Hinterlegen von Beispielfragen. Das ist der einfachste Einstieg.
- Eine YAML-Datei in eine Stage hochladen: Wenn Sie Ihr semantisches Modell lieber als Code definieren, erstellen Sie eine YAML-Datei gemäß der Semantic Model Specification und laden sie in eine Snowflake-Stage hoch.
Beide Ansätze funktionieren mit Cortex Analyst. Der Assistent erzeugt eine Semantic View (ein Objekt auf Schemaebene), während beim YAML-Ansatz die Modelldatei in einer Stage liegt.
Cortex Analyst nutzen
Sobald Ihr semantisches Modell steht, geben Sie den Nutzern Zugriff:
-- Die Rolle CORTEX_USER an Nutzer vergeben, die Zugriff benötigen
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst_role;
In Ihrer Anwendung rufen Sie dann die Cortex-Analyst-API mit einer Frage in natürlicher Sprache auf:
1import requests
2import json
3
4response = requests.post(
5 f"https://{account}.snowflakecomputing.com/api/v2/cortex/analyst/message",
6 headers={
7 "Authorization": f"Bearer {token}",
8 "Content-Type": "application/json"
9 },
10 json={
11 "messages": [{\
\
12 "role": "user",\
\
13 "content": [{\
\
14 "type": "text",\
\
15 "text": "Was waren unsere fünf umsatzstärksten Produkte im letzten Quartal?"\
```\
\
Code aufklappen\
\
Cortex Analyst unterstützt mehrstufige Dialoge: Nutzer können also Folgefragen stellen, die auf vorherigen Abfragen aufbauen.\
\
Wenn Sie Cortex Analyst in Snowflake Intelligence einsetzen möchten, müssen Sie zusätzlich einen Agenten anlegen. Wie das geht, lesen Sie [hier](/blog/snowflake-intelligence-overview-pricing-cost-monitoring).\
\
Wie funktioniert die Preisgestaltung von Cortex Analyst?\
Cortex Analyst wird pro Nachricht abgerechnet, nicht pro Token. Nur erfolgreiche HTTP-200-Antworten sind kostenpflichtig, und die Kosten sind unabhängig davon, wie viele Tokens eine Nachricht enthält. Laut der Snowflake Service Consumption Table kostet jede Nachricht eine feste Anzahl an Credits. Derzeit sind das 6,7 Credits pro 100 Nachrichten.
Die beiden wichtigsten Kostentreiber:
\
- Jede Frage in natürlicher Sprache = 1 Nachricht: Fragen Sie \"Wie hoch ist mein Umsatz?\", ist das eine abrechenbare Nachricht.\
- Bei 3 $ pro Credit kosten 10 Fragen rund 2 $. Auf den ersten Blick kann sich das schnell summieren – Sie sollten aber den geschäftlichen Mehrwert dagegenhalten. Ziel ist nicht zwingend, die Snowflake-Kosten zu minimieren, sondern den geschäftlichen Nutzen zu maximieren.\
- Warehouse-Kosten für die SQL-Ausführung: Die Nachrichtenkosten decken nur die KI-gestützte Text-to-SQL-Generierung ab. Für die Ausführung des generierten SQL fallen zusätzliche Warehouse-Compute-Kosten an.
\
So überwachen Sie die Cortex-Analyst-Nutzung\
Snowflake stellt eine zentrale View zum Tracking der Cortex-Analyst-Kosten bereit:
CORTEX_ANALYST_USAGE_HISTORY: Die Daten werden in Stundenintervallen aggregiert und enthalten daher keine Query-ID.
Diese View zeigt den Credit-Verbrauch von Cortex Analyst, aggregiert in Ein-Stunden-Intervallen. Sie enthält die Anzahl der Nachrichten und die verbrauchten Credits pro Nutzer.
\
1-- Tägliche Cortex-Analyst-Nutzung pro Nutzer der letzten 30 Tage anzeigen\
\
2SELECT\
\
3 DATE_TRUNC('day', START_TIME) AS usage_date,\
\
4 USERNAME,\
\
5 SUM(REQUEST_COUNT) AS total_messages,\
\
6 SUM(CREDITS) AS total_credits\
\
7FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_ANALYST_USAGE_HISTORY\
\
8WHERE START_TIME >= DATEADD('day', -30, CURRENT_TIMESTAMP())\
\
9GROUP BY 1, 2\
\
10ORDER BY total_credits DESC;\
```\
\
Die View enthält START\_TIME, END\_TIME, REQUEST\_COUNT (Anzahl der Nachrichten), die verbrauchten CREDITS sowie USERNAME. Damit sehen Sie auf Nutzerebene, wer die Cortex-Analyst-Kosten verursacht. Die View METERING\_HISTORY lässt sich mit `WHERE SERVICE_TYPE = 'AI_SERVICES'` filtern – hier können aber auch andere Kosten als nur die von Cortex Analyst auftauchen.\
\
### Warehouse-Kosten der SQL-Ausführung überwachen\
\
Hier haben Sie mehrere Optionen. Sie können ein dediziertes Warehouse, einen eigenen User oder eine eigene Role nutzen – oder Sie taggen die von Ihrer Cortex-Analyst-App ausgelösten Queries. Gehen Sie dabei genauso vor wie sonst auch bei der Query-Attribution, je nachdem, was sich in Ihrer Organisation bewährt hat.\
\
Best Practices und Empfehlungen für den Einsatz von Cortex Analyst\
\
Richten Sie Alerts ein, nicht nur Dashboards\
Die obigen Monitoring-Queries bringen nichts, wenn sie niemand ausführt. Für alles, was Sie in Snowflake überwachen wollen, können Sie das SQL in einen geplanten Task mit einer Notification Integration verpacken und so einen eigenen Monitor bauen, der Alerts an Slack oder Teams sendet. Wenn Sie es besonders komfortabel haben möchten, werfen Sie einen Blick auf die Monitors in SELECT.
\
Zugriff über Rollen steuern\
Standardmäßig ist die Rolle CORTEX_USER an die Rolle PUBLIC vergeben – das heißt, alle Nutzer haben Zugriff. Wenn Sie das nicht möchten, entziehen Sie den Zugriff von PUBLIC und vergeben ihn gezielt an einzelne Rollen:
-- Cortex Analyst auf bestimmte Teams beschränken
USE ROLE ACCOUNTADMIN;
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE PUBLIC;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE data_analysts;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE finance_team;
Diese kleine Anpassung verhindert unkontrollierten Wildwuchs in Ihrer gesamten Organisation.
\
Semantische Modelle optimieren\
Ein sauber aufgebautes semantisches Modell reduziert Retries und fehlgeschlagene Abfragen. Konzentrieren Sie sich auf einen klar umrissenen Themenbereich, statt ganze Datenbanken freizugeben. Hinterlegen Sie Verified Queries für häufige Fragen, um die Genauigkeit zu erhöhen. Das spart unnötige API-Aufrufe und verbessert das Nutzererlebnis.
Legen Sie Verified-Query-Repositories an. Das sind Beispielfragen mit geprüftem SQL, die die Genauigkeit deutlich erhöhen. Stellen Nutzer ähnliche Fragen, kann Cortex Analyst auf diese Beispiele zurückgreifen:
\
1verified_queries:\
\
2 - name: "Gesamtumsatz letztes Quartal"\
\
3 question: "Wie hoch war der Gesamtumsatz im Q4?"\
\
4 sql: |\
\
5 SELECT SUM(revenue_amount)\
\
6 FROM fact_sales\
\
7 WHERE sale_date >= '2024-10-01'\
\
8 AND sale_date < '2025-01-01'\
\
9 verified_result: 1250000.00\
```\
\
**Verwenden Sie sprechende Namen und ergänzen Sie Synonyme.** Heißt Ihre Tabelle etwa `dim_product_category_master`, definieren Sie sie mit business-tauglichen Bezeichnungen:\
\
```yaml\
1dimensions:\
\
2 - name: product_category\
\
3 synonyms: ["Kategorie", "Produkttyp", "Produktklasse"]\
\
4 description: "Übergeordnete Produktgruppe (Elektronik, Bekleidung etc.)"\
```\
\
### Methode zur Warehouse-Kostenzuordnung festlegen\
\
Wie bereits erwähnt, sollten Sie entscheiden, wie Sie die Kosten der von Cortex Analyst generierten SQL-Abfragen zuordnen. Manche Kunden setzen auf ein dediziertes Warehouse, andere ordnen die Kosten über Rollen zu.\
\
### Setzen Sie auf die kleinstmögliche Default-Warehouse-Größe\
\
Die meisten Cortex-Analyst-Abfragen sind vergleichsweise einfache Aggregationen. Ein XL-Warehouse brauchen Sie hier in aller Regel nicht.\
\
### Schulen Sie Ihre Nutzer\
\
Der größte Kostenhebel ist das Nutzerverhalten. Wenn Ihre Anwender wissen, dass\
\
- 10 Fragen ein paar Dollar kosten,\
- komplexe Fragen mehrere Anläufe brauchen können und\
- breit formulierte Fragen größere Warehouse-Abfragen auslösen,\
\
…gehen sie automatisch bewusster mit dem Tool um. Erstellen Sie eine interne Dokumentation mit Kostenbeispielen und Best Practices für die Formulierung von Fragen.\
\
Fazit\
Cortex Analyst ist ein starkes Werkzeug, um den Zugang zu Daten zu demokratisieren – aber wie bei allen KI-Diensten können die Kosten ohne Monitoring schnell zur Überraschung werden.
Nutzen Sie CORTEX_ANALYST_USAGE_HISTORY für granulares Tracking, etablieren Sie rollenbasierte Zugriffskontrollen und sensibilisieren Sie Ihre Nutzer für einen kosteneffizienten Einsatz. Mit diesen Bausteinen können Sie Cortex Analyst unternehmensweit ausrollen, ohne sich Sorgen ums Budget machen zu müssen.
Denken Sie daran: Der eigentliche ROI von Cortex Analyst liegt nicht darin, weniger SQL schreiben zu müssen – sondern darin, Fachanwendern schneller Antworten zu liefern, damit sie bessere Entscheidungen treffen können. Ein paar zusätzliche Credits, die Ihr Team handlungsfähig machen, sind häufig deutlich günstiger als verzögerte Erkenntnisse oder schlecht eingesetzte Analytics-Ressourcen.
Viel Spaß beim Chatten mit Ihren Daten. Und wie immer: Lassen Sie uns wissen, welche Erfolge Sie mit Cortex Analyst feiern!
Jeff ist Data & Analytics Consultant mit über 15 Jahren Erfahrung darin, Insights zu automatisieren und Daten zur Steuerung von Geschäftsprozessen einzusetzen. Technologisch ist er auf Snowflake + dbt + Tableau spezialisiert. Inhaltlich bringt er Erfahrung aus Public Utility, klinischen Studien, Verlagswesen, CPG und Manufacturing mit. Sie erreichen ihn jederzeit unter [email protected].\