Mit Smart Batching für KI-Funktionen in AlloyDB for PostgreSQL können Sie die Leistung optimieren, wenn Sie SQL-Abfragen ausführen, die KI-Modelle aufrufen. Sie bietet dieselbe oder eine bessere Leistung als Array-basierte Funktionen, ohne dass Sie komplexe Batchabfragen schreiben müssen. Weitere Informationen zu KI-Funktionen finden Sie unter KI-Funktionen – Übersicht.
Das intelligente Batching unterstützt die folgenden KI-Funktionen:
ai.if: Smart Batching gilt nur fürSELECT-Abfragen, bei denen sich die Funktion in derWHERE-Klausel befindet. Es wird eine einzelneai.if-Funktion pro Scan unterstützt und funktioniert mit sequenziellen, Index- und Bitmap-Heap-Scans. Wenn eine Abfrage mehrere Tabellenscans enthält, z. B. für verschiedene Tabellen, Beziehungen oder allgemeine Tabellenausdrücke (CTEs), können Sie eineai.if-Funktion pro Scan beschleunigen.ai.rank: Smart Batching gilt nur fürSELECT-Abfragen, bei denen sich die Funktion in derORDER BY-Klausel befindet. Es wird eine einzelneai.rank-Funktion pro Scan unterstützt. Wenn eine Abfrage mehrere Tabellenscans enthält, z. B. für verschiedene Tabellen, Beziehungen oder CTEs, können Sie eineai.rank-Funktion pro Scan beschleunigen.
Intelligentes Batching für KI-Funktionen aktivieren
Wenn Sie Smart Batching für KI-Funktionen aktivieren möchten, setzen Sie das Flag google_ml_integration.enable_ai_function_acceleration auf on. Dieses Flag ist standardmäßig deaktiviert und steuert, ob der Query Executor berechtigte KI-Vorgänge zur Beschleunigung an den Knoten für die Anwendung von KI-Funktionen auslagern darf.
Wenn die Option nicht festgelegt oder auf off gesetzt ist, werden alle Abfragevorgänge vom Standard-PostgreSQL-Executor ausgeführt.
Sie können dieses Flag entweder auf Sitzungs- oder Instanzebene konfigurieren.
Verwenden Sie den Befehl gcloud
alloydb instances update, um das Smart Batching für KI-Funktionen auf Instanzebene zu aktivieren:
gcloud alloydb instances update INSTANCE_ID \
--database-flags google_ml_integration.enable_ai_function_acceleration=on \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDErsetzen Sie Folgendes:
INSTANCE_ID: die ID der Instanz, die Sie aktualisieren möchten.REGION_ID: die ID der Region, in der sich der Cluster befindet. Weitere Informationen finden Sie unter Unterstützte Regionen.CLUSTER_ID: die ID des Clusters.PROJECT_ID: die ID des Projekts.
Weitere Informationen zum Festlegen eines Flags auf Instanzebene finden Sie unter Datenbank-Flags konfigurieren.
Smart Batching für KI-Funktionen überprüfen
Wenn Sie prüfen möchten, ob Smart Batching für KI-Funktionen aktiviert ist, können Sie die Anweisung EXPLAIN verwenden, um Ihre Abfrage zu analysieren.
Smart Batching für KI-Funktionen für ai.if-Abfragen prüfen
Im folgenden Beispiel wird gezeigt, wie Sie Smart Batching für KI-Funktionen für die aktuelle Sitzung aktivieren und eine Abfrage mit der Funktion ai.if ausführen:
SET google_ml_integration.enable_ai_function_acceleration = on;
EXPLAIN (COSTS OFF) SELECT r.name
FROM restaurant_reviews r
WHERE ai.if('Is the following a positive review? Review: '||r.review) AND r.city = 'Los Angeles'
GROUP BY r.name
HAVING count(*) > 20
ORDER BY r.name;
Wenn Sie die Anweisung EXPLAIN verwenden, um Ihre Abfrage zu analysieren, wird im Abfrageplan ein AI Function Apply-Knoten angezeigt:
QUERY PLAN
----------------------------------------------------------------------------------------
GroupAggregate
Group Key: name
Filter: (count(*) > 20)
-> Sort
Sort Key: name
-> AI Function Apply
Filter: ai.if((('Is the following a positive review? Review: '::text || review)), NULL::character varying)
-> Index Scan using idx_restaurant_reviews_city on restaurant_reviews r
Index Cond: ((city)::text = 'Los Angeles'::text)
Smart Batching für KI-Funktionen für ai.rank-Abfragen prüfen
Im folgenden Beispiel wird gezeigt, wie Sie Smart Batching für KI-Funktionen für die aktuelle Sitzung aktivieren und eine Abfrage mit der Funktion ai.rank ausführen:
SET google_ml_integration.enable_ai_function_acceleration = on;
EXPLAIN (COSTS OFF) SELECT r.name, r.review
FROM restaurant_reviews r
WHERE r.city = 'Los Angeles'
ORDER BY ai.rank('Rank these reviews based on how much they emphasize high-quality ingredients. Review: ' || r.review) DESC
LIMIT 50;
Wenn Sie die Anweisung EXPLAIN verwenden, um Ihre Abfrage zu analysieren, wird im Abfrageplan ein AI Function Apply-Knoten angezeigt:
QUERY PLAN
----------------------------------------------------------------------------------------
Limit
-> Sort
Sort Key: (ai.rank(('Rank these reviews based on how much they emphasize high-quality ingredients. Review: ' || r.review'), NULL)) DESC
-> AI Function Apply
-> Bitmap Heap Scan on restaurant_reviews r
Recheck Cond: (city = 'Los Angeles')
-> Bitmap Index Scan on idx_restaurant_reviews_city
Index Cond: (city = 'Los Angeles')
Der Knoten AIFunctionApply im Abfrageplan gibt an, dass die Abfrage Smart Batching für KI-Funktionen verwendet hat. Wenn dieser Knoten nicht vorhanden ist, wurde die Abfrage mit der standardmäßigen PostgreSQL-Ausführung ausgeführt.
Beschränkungen
- Es werden nur grundlegende Argumente für die Funktionen unterstützt. Bei
ai.ifundai.rankmuss das Argumentpromptentweder ein Spaltenverweis oder ein Stringliteral sein, das mit einem Spaltenverweis verkettet ist. Alle anderen Argumente müssen Konstanten sein. Beispiele für unterstützteprompt-Argumente:ai.if(r.review)ai.if('Is this true? : ' || r.review)ai.rank(r.review)ai.rank('Rate this review: ' || r.review)
- Es werden nur
SELECT-Abfragen mitai.ifinWHERE-Klauseln oderai.rankinORDER BY-Klauseln unterstützt. - Pro Tabellenscan wird nur eine KI-Funktion unterstützt.
- Es werden nur die Standard-Gemini-Modelle unterstützt. Weitere Informationen finden Sie unter Google-Modelle. Wenn Sie ein anderes Modell verwenden möchten, können Sie das Flag
google_ml_integration.default_llm_modelauf die gewünschte Modell-ID setzen. - Die Funktion ist nur in Regionen verfügbar, die das Modell
gemini-2.5-flash-liteunterstützen, oder in den Regionen für das LLM-Modell, das Sie mit dem Flaggoogle_ml_integration.default_llm_modelfestlegen. Weitere Informationen finden Sie unter Unterstützte Regionen.
Nächste Schritte
- Intelligente SQL-Abfragen mit KI-Funktionen ausführen
- KI-Abfragen mit optimierten Funktionen beschleunigen
- Filterung mit Array-basierten Funktionen durchführen