La agrupación inteligente por lotes para las funciones de IA en AlloyDB para PostgreSQL te permite optimizar el rendimiento cuando ejecutas consultas en SQL que invocan modelos de IA. Proporciona el mismo rendimiento o uno mejor que las funciones basadas en arrays sin que tengas que escribir consultas complejas de procesamiento por lotes. Para obtener más información sobre las funciones de IA, consulta Descripción general de las funciones de IA.
La agrupación inteligente por lotes admite las siguientes funciones de IA:
ai.if: El procesamiento por lotes inteligente solo se aplica a las consultasSELECTen las que la función se encuentra en la cláusulaWHERE. Admite una sola funciónai.ifpor análisis y funciona con análisis de montón secuencial, de índice y de mapa de bits. Si una consulta contiene varios análisis de tablas, por ejemplo, en diferentes tablas, relaciones o expresiones de tabla comunes (CTE), puedes acelerar una funciónai.ifpor análisis.ai.rank: El procesamiento por lotes inteligente solo se aplica a las consultasSELECTen las que la función se encuentra en la cláusulaORDER BY. Admite una sola funciónai.rankpor análisis. Si una consulta contiene varios análisis de tablas, por ejemplo, en diferentes tablas, relaciones o CTE, puedes acelerar una funciónai.rankpor análisis.
Habilita la solicitud por lotes inteligente para las funciones IA
Para habilitar la solicitud por lotes inteligente para las funciones de IA, establece la
marca google_ml_integration.enable_ai_function_acceleration en on. Esta marca
está inhabilitada de forma predeterminada y controla si el ejecutor de consultas puede
descargar operaciones de IA aptas en el nodo de aplicación de la función de 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 sesión o de instancia.
Para habilitar la solicitud por lotes inteligente para las funciones IA a nivel de la instancia, usa el 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_IDReemplaza 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: el ID del proyecto
Para obtener más información sobre cómo configurar una marca a nivel de la instancia, consulta Configura marcas de base de datos.
Verifica la solicitud por lotes inteligente para las funciones de IA
Para verificar que la solicitud por lotes inteligente para las funciones de IA esté habilitada, puedes usar la
declaración EXPLAIN para analizar tu consulta.
Verifica el procesamiento por lotes inteligente de las funciones de IA para las consultas de ai.if
En el siguiente ejemplo, se muestra cómo habilitar la solicitud por lotes inteligente para las funciones IA en
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 sentencia EXPLAIN para analizar tu consulta, el plan de consulta 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 el procesamiento por lotes inteligente de las funciones de IA para las consultas de ai.rank
En el siguiente ejemplo, se muestra cómo habilitar la solicitud por lotes inteligente para las funciones IA en
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 sentencia EXPLAIN para analizar tu consulta, el plan de consulta 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 solicitud por lotes inteligente para las funciones 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.ifyai.rank, el argumentopromptdebe ser una referencia de columna o un literal de cadena concatenado con una referencia de columna. Cualquier otro argumento debe ser una constante. Estos son algunos ejemplos de argumentos depromptadmitidos: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 consultas
SELECTconai.ifen cláusulasWHEREoai.ranken cláusulasORDER 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 Google. Para usar un modelo diferente, puedes establecer la marca
google_ml_integration.default_llm_modelen el ID del modelo que deseas usar. - La función solo está disponible en las regiones que admiten el
modelo
gemini-3.5-flash-liteo las regiones para el modelo de LLM que estableces con la marcagoogle_ml_integration.default_llm_model. Para obtener más información, consulta Regiones admitidas.
¿Qué sigue?
- Realiza consultas en SQL inteligentes con funciones de IA.
- Acelera las consultas de IA con funciones optimizadas.
- Realiza filtrados con funciones basadas en arrays