Acelera el rendimiento de las consultas con funciones basadas en IA

La aceleración de funciones IA te permite optimizar el rendimiento cuando ejecutas consultas que usan funciones IA. Proporciona el mismo rendimiento o uno mejor que las funciones basadas en arrays , sin necesidad de escribir consultas complejas. Para obtener más información sobre las funciones de IA, consulta Descripción general de las funciones de IA.

La aceleración de funciones de IA admite las siguientes funciones de IA:

  • ai.if: La aceleración solo se aplica a las consultas SELECT en las que la función está en la cláusula WHERE. Admite una sola función ai.if por análisis y funciona con el análisis secuencial, de índice y de montón de mapa de bits. Si una consulta contiene varios análisis de tabla (por ejemplo, en diferentes tablas, relaciones o expresiones de tabla comunes [CTE]), puedes acelerar una función ai.if por análisis.
  • ai.rank: La aceleración solo se aplica a las consultas SELECT en las que la función está en la cláusula ORDER BY. Admite una sola función ai.rank por análisis. Si una consulta contiene varios análisis de tabla (por ejemplo, en diferentes tablas, relaciones o CTE), puedes acelerar una función ai.rank por análisis.

Habilita la aceleración de funciones IA

Para habilitar la aceleración de función IA, establece la google_ml_integration.enable_ai_function_acceleration marca en on. Esta marca está inhabilitada de forma predeterminada y controla si el ejecutor de consultas puede descargar las operaciones de IA aptas al nodo de aplicación de la función IA para la aceleración. Cuando no se establece o se configura como off, el ejecutor estándar de PostgreSQL ejecuta todas las operaciones de consulta.

Puedes configurar esta marca a nivel de la sesión o de la instancia.

Para habilitar la aceleración de función IA a nivel de la instancia, usa el gcloud alloydb instances update comando:

gcloud alloydb instances update INSTANCE_ID \
  --database-flags google_ml_integration.enable_ai_function_acceleration=on \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

Reemplaza lo siguiente:

  • INSTANCE_ID: Es el ID de la instancia que deseas actualizar.
  • REGION_ID: Es el ID de la región en la que se encuentra el clúster. Para obtener más información, consulta Regiones admitidas.
  • CLUSTER_ID: Es el ID del clúster.
  • PROJECT_ID: Es el ID del proyecto.

Para obtener más información sobre cómo establecer una marca a nivel de la instancia, consulta Configura marcas de bases de datos.

Verifica la aceleración de funciones IA

Para verificar que la aceleración de funciones IA esté habilitada, puedes usar la instrucción EXPLAIN para analizar tu consulta.

Verifica la aceleración de función IA para consultas ai.if

En el siguiente ejemplo, se muestra cómo habilitar la aceleración de funciones de IA para la sesión actual y ejecutar una consulta con la función 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;

Cuando usas la instrucción EXPLAIN para analizar tu consulta, el plan de consultas muestra 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)

Verifica la aceleración de función IA para consultas ai.rank

En el siguiente ejemplo, se muestra cómo habilitar la aceleración de funciones de IA para la sesión actual y ejecutar una consulta con la función 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;

Cuando usas la instrucción EXPLAIN para analizar tu consulta, el plan de consultas muestra 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')

El nodo AIFunctionApply en el plan de consultas indica que la consulta usó la aceleración de funciones de IA. Si este nodo no está presente, la consulta usó la ejecución estándar de PostgreSQL.

Limitaciones

  • Solo se admiten argumentos básicos para las funciones. Para ai.if y ai.rank, el argumento prompt debe ser una referencia de columna o un literal de cadena concatenado con una referencia de columna. Cualquier otro argumento debe ser una constante simple. Entre los ejemplos de argumentos prompt admitidos, se incluyen los siguientes:
    • ai.if(r.review)
    • ai.if('Is this true? : ' || r.review)
    • ai.rank(r.review)
    • ai.rank('Rate this review: ' || r.review)
  • Solo se admiten las consultas SELECT con ai.if en las cláusulas WHERE o ai.rank en las cláusulas ORDER BY.
  • Solo se admite una función IA por análisis de tabla.
  • Solo se admiten los modelos de Gemini predeterminados. Para obtener más información, consulta Modelos de Gemini. Para usar un modelo diferente, puedes establecer la marca google_ml_integration.default_llm_model en el ID del modelo que deseas usar.
  • La función solo está disponible en las regiones que admiten el modelo gemini-2.5-flash-lite o las regiones del modelo LLM que estableces con la marca google_ml_integration.default_llm_model. Para obtener más información, consulta Regiones admitidas.

¿Qué sigue?