L'accélération des fonctions d'IA vous permet d'optimiser les performances lorsque vous exécutez des requêtes qui utilisent des fonctions d'IA. Elle offre des performances identiques ou supérieures à celles des fonctions basées sur des tableaux, sans que vous ayez à écrire des requêtes complexes. Pour en savoir plus sur les fonctions d'IA, consultez Présentation des fonctions d'IA.
L'accélération des fonctions d'IA est compatible avec les fonctions d'IA suivantes :
ai.if: l'accélération ne s'applique qu'aux requêtesSELECToù la fonction se trouve dans la clauseWHERE. Elle n'accepte qu'une seule fonctionai.ifpar analyse et fonctionne avec les analyses séquentielles, d'index et de tas bitmap. Si une requête contient plusieurs analyses de table (par exemple, sur différentes tables, relations ou expressions de table courantes (CTE)), vous pouvez accélérer une fonctionai.ifpar analyse.ai.rank: l'accélération ne s'applique qu'aux requêtesSELECToù la fonction se trouve dans la clauseORDER BY. Il accepte une seule fonctionai.rankpar analyse. Si une requête contient plusieurs analyses de table (par exemple, sur différentes tables, relations ou CTE), vous pouvez accélérer une fonctionai.rankpar analyse.
Activer l'accélération des fonctions d'IA
Pour activer l'accélération des fonctions d'IA, définissez l'indicateur google_ml_integration.enable_ai_function_acceleration sur on. Ce flag est désactivé par défaut et détermine si l'exécuteur de requêtes est autorisé à décharger les opérations d'IA éligibles sur le nœud d'application de la fonction AI pour l'accélération.
Si elle n'est pas définie ou est définie sur off, toutes les opérations de requête sont exécutées par l'exécuteur PostgreSQL standard.
Vous pouvez configurer cet indicateur au niveau de la session ou de l'instance.
Pour activer l'accélération des fonctions d'IA au niveau de l'instance, utilisez la commande 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_IDRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instance que vous souhaitez mettre à jour.REGION_ID: ID de la région dans laquelle se trouve le cluster. Pour en savoir plus, consultez la section Régions où le service est disponible.CLUSTER_ID: ID du cluster.PROJECT_ID: ID du projet
Pour savoir comment définir un indicateur au niveau de l'instance, consultez Configurer des indicateurs de base de données.
Vérifier l'accélération des fonctions d'IA
Pour vérifier que l'accélération des fonctions d'IA est activée, vous pouvez utiliser l'instruction EXPLAIN pour analyser votre requête.
Vérifier l'accélération des fonctions d'IA pour les requêtes ai.if
L'exemple suivant montre comment activer l'accélération des fonctions d'IA pour la session en cours et exécuter une requête à l'aide de la fonction 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;
Lorsque vous utilisez l'instruction EXPLAIN pour analyser votre requête, le plan de requête affiche un nœud 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)
Vérifier l'accélération des fonctions d'IA pour les requêtes ai.rank
L'exemple suivant montre comment activer l'accélération des fonctions d'IA pour la session en cours et exécuter une requête à l'aide de la fonction 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;
Lorsque vous utilisez l'instruction EXPLAIN pour analyser votre requête, le plan de requête affiche un nœud 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')
Le nœud AIFunctionApply du plan de requête indique que la requête a utilisé l'accélération des fonctions d'IA. Si ce nœud n'est pas présent, la requête a utilisé l'exécution PostgreSQL standard.
Limites
- Seuls les arguments de base des fonctions sont acceptés. Pour
ai.ifetai.rank, l'argumentpromptdoit être une référence de colonne ou un littéral de chaîne concaténé avec une référence de colonne. Tous les autres arguments doivent être des constantes simples. Voici quelques exemples d'argumentspromptacceptés :ai.if(r.review)ai.if('Is this true? : ' || r.review)ai.rank(r.review)ai.rank('Rate this review: ' || r.review)
- Seules les requêtes
SELECTavecai.ifdans les clausesWHEREouai.rankdans les clausesORDER BYsont acceptées. - Une seule fonction AI par analyse de tableau est acceptée.
- Seuls les modèles Gemini par défaut sont acceptés. Pour en savoir plus, consultez Modèles Gemini. Pour utiliser un autre modèle, vous pouvez définir l'option
google_ml_integration.default_llm_modelsur l'ID du modèle que vous souhaitez utiliser. - Cette fonctionnalité n'est disponible que dans les régions qui acceptent le modèle
gemini-2.5-flash-liteou les régions du modèle LLM que vous définissez à l'aide de l'indicateurgoogle_ml_integration.default_llm_model. Pour en savoir plus, consultez la section Régions où le service est disponible.
Étapes suivantes
- Effectuer des requêtes SQL intelligentes à l'aide de fonctions d'IA
- Accélérez les requêtes d'IA à l'aide de fonctions optimisées.
- Filtrer à l'aide de fonctions basées sur des tableaux