Business Intelligence
/11. Mai 2026- Aktualisiert am 03. Juni 2026/3 Min. LesezeitKosteneffiziente Nutzung von Gemini in BigQuery
Die Berechnung der Kosten in Google BigQuery orientiert sich primär an der Menge der verarbeiteten Daten. Damit unterscheidet sich BigQuery grundlegend von klassischen Data-Warehouse-Lösungen, bei denen man für eine feste Instanz unabhängig vom Nutzungsvolumen zahlt. Ein zentraler Indikator für jeden Data Engineer ist die Kostenschätzung im BigQuery Editor, die vor der Ausführung einer Query die ungefähre Datenmenge angibt. Kennt man den Preis pro Terabyte, lassen sich die Kosten einer Abfrage leicht überschlagen.
Sobald eine Query jedoch nicht nur Daten abfragt, sondern über eine Model Connection Gemini nutzt (z. B. um KI-generierte Inhalte direkt in eine neue Spalte zu schreiben), verliert diese Schätzung an Aussagekraft.
Das Szenario: Keyword-Intents für Versicherungen
Das folgende vereinfachte Beispiel baut auf einem vorherigen Use Case auf: Eine Versicherung möchte SEA-Keywords automatisch einer bestimmten Nutzer-Intention zuordnen.
Der Prompt definiert verschiedene Kategorien (z. B. VORSORGE, AKUT, VERGLEICH), liefert Erklärungen und enthält Referenzbeispiele (Few-Shot Prompting), um die Genauigkeit von Gemini 3 Flash zu erhöhen. Um die Qualität zu validieren, wurden vorab 150 Keywords manuell klassifiziert.
Die initiale Abfrage (Naiver Ansatz)
1WITH unique_queries AS (
2 SELECT DISTINCT search_query
3 FROM `project-id.dataset-id.source_bingads_search_query_performance`
4 WHERE search_query IS NOT NULL
5),
6
7classified_data AS (
8 SELECT
9 search_query,
10 REGEXP_EXTRACT(UPPER(TRIM(ml_generate_text_llm_result)), r'VORSORGE|AKUT|VERGLEICH|WECHSEL|INFO') AS intent_klasse
11 FROM
12 ML.GENERATE_TEXT(
13 MODEL `project-id.dataset-id.gemini_model`,
14 (
15 SELECT
16 search_query,
17 CONCAT(
18 'Klassifiziere die Suchanfrage einer Versicherung basierend auf Nutzer-Zustand und Intent. ',
19 'Berücksichtige Synonyme und Deklinationen (z.B. "kündigen" = "Kündigung").',
20 '\n\n1. VORSORGE: Ruhig, langfristig. (Beispiele: "sinnvoll", "für Kinder", "lohnt sich").',
21 '\n2. AKUT: Angespannt, hoher Zeitdruck. (Beispiele: "Implantat Kosten", "ohne Wartezeit").',
22 '\n3. VERGLEICH: Benchmark-getrieben. (Beispiele: "Testsieger", "Check24", "Stiftung Warentest").',
23 '\n\nReferenz-Beispiele: ',
24 '\n- "zahnzusatzversicherung sinnvoll" -> VORSORGE',
25 '\n- "implantat kosten zahnzusatz" -> AKUT',
26 '\n- "versicherung auch wenn es schon zu spät ist" -> AKUT',
27 '\n\nAntworte NUR mit dem Label: [VORSORGE, AKUT, VERGLEICH, WECHSEL, INFO]. ',
28 'Suchanfrage: '
29 ) AS prompt
30 FROM unique_queries
31 ),
32 STRUCT(
33 0 AS temperature,
34 10 AS max_output_tokens,
35 TRUE AS flatten_json_output
36 )
37 )
38)
39
40SELECT
41 search_query,
42 COALESCE(intent_klasse, 'NICHT KLASSIFIZIERT') AS intent_klasse
43FROM classified_dataDie versteckten Kostenfallen
Nach Ausführung der Query zeigen die Job-Informationen lediglich 30 MB an kostenrelevanten Daten ("Bytes billed"). In einer Standard-Umgebung wären das vernachlässigbare Cent-Beträge. Doch dieser Wert bezieht sich nur auf das Scannen der Quelltabelle. Die tatsächlichen Kosten verstecken sich in den Token-Metriken:
- Prompt Token Count (ca. 14 Mio.): Das Large Language Model (LLM) verarbeitet den (langen) Prompt für jede der 20.000 Zeilen einzeln.
- Candidates Token Output (ca. 43.000): Der generierte Output (die Labels) für alle Zeilen.
Bei einem Preis von etwa 0,25 $ pro 1 Mio. Token (für Gemini 3 Flash) kostet diese eine Query ca. 3,50 $. Was bei 20.000 Zeilen moderat klingt, skaliert bei Millionen von täglichen Datensätzen schnell auf dreistellige Monatsbeträge.
Zudem war das Ergebnis mit 70 % Genauigkeit nicht optimal. Den Prompt weiter zu verfeinern, birgt Risiken:
- "Lost in the Middle": Zu viele Beispiele führen dazu, dass das Modell Informationen in der Mitte des Prompts ignoriert.
- Kosten-Explosion: Jedes zusätzliche Wort im Prompt multipliziert sich mit der Anzahl der Zeilen.
Die Lösung: Der hybride Ansatz
Statt jedes Keyword unmittelbar an das Modell zu übergeben, wird eine Kombination aus deterministischer Logik (Regelwerk) und probabilistischer Klassifizierung (KI) genutzt (rule-based pre-filtering).
Das optimierte SQL-Modell
Vorgeschaltet wird ein CASE-WHEN-Statement, das eindeutige Muster per Regex abfängt. Nur die "schwierigen" Fälle werden an Gemini übergeben.
1CREATE OR REPLACE TABLE `project-id.dataset-id.bing_ads_intents` AS
2WITH unique_queries AS (
3 SELECT DISTINCT
4 search_query,
5 -- 1. Deterministische Schicht (Regeln sparen Token)
6 CASE
7 WHEN REGEXP_CONTAINS(LOWER(search_query), r'auslands|sofort|akut|notfall') THEN 'AKUT'
8 WHEN REGEXP_CONTAINS(LOWER(search_query), r'tarife|vergleich|test|beste') THEN 'VERGLEICH'
9 WHEN REGEXP_CONTAINS(LOWER(search_query), r'wechseln|kündigen') THEN 'WECHSEL'
10 WHEN REGEXP_CONTAINS(LOWER(search_query), r'^(brandname)( versicherung)?$') THEN 'INFO'
11 ELSE NULL
12 END AS pre_classified
13 FROM `project-id.dataset-id.source_table`
14 WHERE search_query IS NOT NULL
15),
16
17-- 2. Probabilistische Schicht (Nur für den Rest)
18llm_processing AS (
19 SELECT
20 search_query,
21 REGEXP_EXTRACT(UPPER(ml_generate_text_llm_result), r'VORSORGE|AKUT|VERGLEICH|WECHSEL|INFO') AS intent_klasse
22 FROM
23 ML.GENERATE_TEXT(
24 MODEL `project-id.dataset-id.gemini_model`,
25 (
26 SELECT
27 search_query,
28 FORMAT("Klassifiziere den Intent: '%s'. Labels: VORSORGE, AKUT, VERGLEICH, WECHSEL, INFO. Nur das Label antworten.", search_query) AS prompt
29 FROM unique_queries
30 WHERE pre_classified IS NULL -- Filtern!
31 ),
32 STRUCT(0 AS temperature, 10 AS max_output_tokens, TRUE AS flatten_json_output)
33 )
34),
35
36-- 3. Merge der Ergebnisse
37final_results AS (
38 SELECT search_query, intent_klasse FROM llm_processing
39 UNION ALL
40 SELECT search_query, pre_classified AS intent_klasse FROM unique_queries WHERE pre_classified IS NOT NULL
41)
42
43SELECT * FROM final_resultsDas Ergebnis der Optimierung
Durch die Vorab-Filterung konnten im Testprojekt bereits 30 % der Keywords regelbasiert zugeordnet werden. Da der verbleibende Prompt für die KI zudem deutlich kürzer gestaltet werden konnte, sank der gesamte Prompt-Token-Count um 65 %, während die Übereinstimmung mit den manuellen Test-Keywords auf über 90 % stieg.
Fazit
KI kann Aufgaben extrem schnell erledigen, aber sie ersetzt keine saubere Engineering-Architektur. Ein hybrider Ansatz, der etablierte SQL-Logik mit modernen LLMs kombiniert, ist oft nicht nur kosteneffizienter, sondern durch die Vermeidung des "Lost in the Middle"-Effekts auch präziser. Echte Mehrwerte entstehen dort, wo KI gezielt und "richtig dosiert" eingesetzt wird.
Lust auf einen
Austausch?


Newsletter
Als Erstes informiert, wenn es Neuigkeiten in der digitalen Welt gibt!
Durch die Bereitstellung Ihrer E-Mail-Adresse erklären Sie sich damit einverstanden, Newsletter und Werbe-E-Mails von uns zu erhalten. Wir respektieren Ihre Privatsphäre und werden Ihre Informationen nicht an Dritte weitergeben. Sie können sich jederzeit abmelden.
You've reached the end
Linienstrasse 222, 10119 Berlin
Raboisen 30, 20095 Hamburg
Conversion Optimierung
Business Intelligence
Digital Analytics
Marketing Automation
Team
Kontakt
Jobs
Datenschutzerklärung
Impressum
Cookie-Einstellungen
©2026 Peaks & Pies GmbH