Il batching intelligente per le funzioni AI ti consente di ottimizzare le prestazioni quando esegui query che utilizzano le funzioni AI. Fornisce prestazioni uguali o migliori rispetto alle funzioni basate su array, senza richiedere la scrittura di query complesse. Per saperne di più sulle funzioni AI, consulta la panoramica delle funzioni AI.
Il batching intelligente supporta le seguenti funzioni AI:
ai.if: il batching intelligente si applica solo alle querySELECTin cui la funzione si trova nella clausolaWHERE. Supporta una singola funzioneai.ifper scansione e funziona con la scansione sequenziale, dell'indice e dell'heap di bitmap. Se una query contiene più scansioni di tabelle, ad esempio su tabelle, relazioni o espressioni di tabelle comuni (CTE) diverse, puoi accelerare una funzioneai.ifper scansione.ai.rank: il batching intelligente si applica solo alle querySELECTin cui la funzione si trova nella clausolaORDER BY. Supporta una singola funzioneai.rankper scansione. Se una query contiene più scansioni di tabelle, ad esempio su tabelle, relazioni o CTE diverse, puoi accelerare una funzioneai.rankper scansione.
Abilitare il batching intelligente per le funzioni AI
Per abilitare il batching intelligente per le funzioni AI, imposta il
google_ml_integration.enable_ai_function_acceleration flag su on. Questo flag è disattivato per impostazione predefinita e controlla se l'esecutore di query è autorizzato a scaricare le operazioni AI idonee nel nodo di applicazione della funzione AI per l'accelerazione.
Se non è impostato o è impostato su off, tutte le operazioni di query vengono eseguite dall'esecutore PostgreSQL standard.
Puoi configurare questo flag a livello di sessione o di istanza.
Per abilitare il batching intelligente per le funzioni AI a livello di istanza, utilizza il comando gcloud
alloydb instances update:
gcloud alloydb instances update INSTANCE_ID \
--database-flags google_ml_integration.enable_ai_function_acceleration=on \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza che vuoi aggiornare.REGION_ID: l'ID della regione in cui si trova il cluster. Per saperne di più, consulta Regioni supportate.CLUSTER_ID: l'ID del cluster.PROJECT_ID: l'ID del progetto.
Per saperne di più su come impostare un flag a livello di istanza, consulta Configurare i flag di database.
Verificare il batching intelligente per le funzioni AI
Per verificare che il batching intelligente per le funzioni AI sia abilitato, puoi utilizzare l'istruzione EXPLAIN per analizzare la query.
Verificare il batching intelligente per le funzioni AI per le query ai.if
L'esempio seguente mostra come abilitare il batching intelligente per le funzioni AI per la sessione corrente ed eseguire una query utilizzando la funzione ai.if:
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;
Quando utilizzi l'istruzione EXPLAIN per analizzare la query, il piano di query mostra un nodo AI Function Apply:
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)
Verificare il batching intelligente per le funzioni AI per le query ai.rank
L'esempio seguente mostra come abilitare il batching intelligente per le funzioni AI per la sessione corrente ed eseguire una query utilizzando la funzione ai.rank:
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;
Quando utilizzi l'istruzione EXPLAIN per analizzare la query, il piano di query mostra un nodo AI Function Apply:
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')
Il nodo AIFunctionApply nel piano di query indica che la query ha utilizzato il batching intelligente per le funzioni AI. Se questo nodo non è presente, la query ha utilizzato l'esecuzione PostgreSQL standard.
Limitazioni
- Sono supportati solo gli argomenti di base delle funzioni. Per
ai.ifeai.rank, l'argomentopromptdeve essere un riferimento a una colonna o un valore letterale stringa concatenato con un riferimento a una colonna. Tutti gli altri argomenti devono essere costanti. Di seguito sono riportati alcuni esempi di argomentipromptsupportati:ai.if(r.review)ai.if('Is this true? : ' || r.review)ai.rank(r.review)ai.rank('Rate this review: ' || r.review)
- Sono supportate solo le query
SELECTconai.ifnelle clausoleWHEREoai.ranknelle clausoleORDER BY. - È supportata una sola funzione AI per scansione di tabella.
- Sono supportati solo i modelli Gemini predefiniti. Per saperne di più, consulta Modelli Gemini. Per utilizzare un modello diverso, puoi impostare il flag
google_ml_integration.default_llm_modelsull'ID del modello che vuoi utilizzare. - La funzionalità è disponibile solo nelle regioni che supportano il modello
gemini-2.5-flash-liteo le regioni per il modello LLM che hai impostato utilizzando il flaggoogle_ml_integration.default_llm_model. Per saperne di più, consulta Regioni supportate.
Passaggi successivi
- Eseguire query SQL intelligenti utilizzando le funzioni AI.
- Accelerare le query AI utilizzando le funzioni ottimizzate.
- Eseguire il filtraggio utilizzando le funzioni basate su array.