Exploración de Azure Database for PostgreSQL
Azure Database for PostgreSQL es un servicio de base de datos totalmente administrado para cargas de trabajo de PostgreSQL en Azure. Comprender la arquitectura de servicio, los niveles de proceso y las funcionalidades administradas le ayuda a tomar decisiones fundamentadas sobre la configuración y el planeamiento de la capacidad para las aplicaciones de inteligencia artificial.
¿Qué es Azure Database for PostgreSQL?
Azure Database for PostgreSQL es un servicio de base de datos relacional totalmente administrado basado en el motor de base de datos PostgreSQL de código abierto. El servicio ejecuta la edición community de PostgreSQL, lo que proporciona compatibilidad completa con las herramientas y aplicaciones de PostgreSQL existentes. Microsoft administra la infraestructura subyacente, incluido el aprovisionamiento de hardware, la aplicación de revisiones de software, la administración de copias de seguridad y la configuración de alta disponibilidad.
El servicio proporciona un control pormenorizado sobre la configuración de la base de datos a la vez que mantiene las ventajas de una plataforma administrada. Puede personalizar las ventanas de mantenimiento, configurar opciones de alta disponibilidad y ajustar los recursos de proceso para que coincidan con los requisitos de carga de trabajo.
En el caso de las aplicaciones de inteligencia artificial que necesitan almacenamiento de datos relacional junto con las operaciones vectoriales, PostgreSQL ofrece una combinación atractiva de confiabilidad transaccional, modelado de datos flexible con JSONB y un ecosistema de extensiones que incluye funcionalidades de búsqueda de similitud de vectores.
Opciones de arquitectura e implementación
Azure Database for PostgreSQL separa el proceso y el almacenamiento en componentes independientes. El motor de base de datos se ejecuta en una máquina virtual Linux, mientras que los archivos de datos residen en Azure almacenamiento administrado. Esta separación permite el escalado independiente de los recursos de proceso y almacenamiento y proporciona durabilidad de datos integrada a través de réplicas de almacenamiento con redundancia local.
El servicio ofrece tres niveles de proceso para que coincidan con diferentes características de carga de trabajo. Cada una proporciona diferentes configuraciones de CPU y memoria:
Ampliable: proporciona rendimiento de CPU de línea base con la capacidad de ampliarse por encima de la línea base cuando sea necesario. Más adecuado para entornos de desarrollo, aplicaciones pequeñas y cargas de trabajo que no necesitan capacidad de CPU completa continua. Las máquinas virtuales de la serie B ofrecen una opción rentable para cargas de trabajo intermitentes.
Uso general: Ofrece recursos de proceso y memoria equilibrados para cargas de trabajo de producción. Las máquinas virtuales de la serie D proporcionan un rendimiento coherente para las aplicaciones que requieren tiempos de respuesta predecibles. Elija Uso general para aplicaciones web típicas y servicios back-end.
Optimizado para memoria: Ofrece altas relaciones de memoria a vCPU para cargas de trabajo que se benefician de grandes conjuntos de datos en memoria. Las máquinas virtuales de la serie E se destacan en cargas de trabajo pesadas de almacenamiento en caché, consultas analíticas complejas y aplicaciones que necesitan mantener grandes conjuntos de trabajo en memoria. Las aplicaciones de inteligencia artificial que realizan cálculos en memoria suelen beneficiarse de este nivel.
Puede cambiar los niveles de proceso después de la implementación con un breve reinicio, lo que le permite ajustar los recursos a medida que evoluciona la carga de trabajo.
Funcionalidades de servicio administrado
Azure Database for PostgreSQL controla las tareas operativas que, de lo contrario, requerirían un esfuerzo dedicado de administración de bases de datos.
El servicio crea automáticamente copias de seguridad de la base de datos y las almacena en el almacenamiento con redundancia de zona en regiones que admiten zonas de disponibilidad o almacenamiento con redundancia local en regiones que no lo hacen. La retención de copia de seguridad predeterminada es de siete días, que puede extender hasta 35 días en función de los requisitos de recuperación. Las copias de seguridad incluyen instantáneas completas y registros de transacciones, lo que permite la restauración a un momento dado en cualquier segundo dentro del período de retención. Azure cifra todas las copias de seguridad mediante el cifrado AES de 256 bits, con claves administradas por la plataforma de forma predeterminada o claves administradas por el cliente para un control adicional.
La restauración a un momento dado le permite recuperar la base de datos en cualquier momento dentro del período de retención de copia de seguridad. La operación de restauración crea una nueva instancia de servidor con datos recuperados en la marca de tiempo especificada, lo que resulta útil para recuperarse de modificaciones accidentales de datos o pruebas en un estado histórico de la base de datos.
Azure Database for PostgreSQL incluye PgBouncer integrado, un agrupador de conexiones ligero que reduce la sobrecarga de establecer nuevas conexiones de base de datos manteniendo un grupo de conexiones reutilizables. Puede habilitar PgBouncer a través de la configuración del servidor y conectarse en el puerto 6432 en lugar del puerto de PostgreSQL estándar 5432. La agrupación de conexiones es valiosa para las aplicaciones de IA que realizan muchas llamadas de base de datos de corta duración, como almacenar mensajes individuales o recuperar contexto para cada solicitud de inferencia.
Importante
PgBouncer solo está disponible en los niveles de procesamiento de uso general y optimizado para memoria. El nivel ampliable no admite la característica integrada PgBouncer.
Las estrategias de optimización de conexiones se tratan en profundidad en el módulo "Optimizar el rendimiento, la indexación y el escalado".
Versiones y extensiones de PostgreSQL compatibles
Azure Database for PostgreSQL admite varias versiones principales de PostgreSQL simultáneamente. Normalmente, el servicio admite la versión principal actual y varias versiones anteriores, siguiendo la escala de tiempo de soporte técnico de la comunidad de PostgreSQL. Puede comprobar las versiones disponibles al crear un nuevo servidor o consultar la server_version configuración en un servidor existente.
El mecanismo de extensión de PostgreSQL permite agregar funcionalidades más allá del motor de base de datos principal. Las extensiones pueden agregar nuevos tipos de datos, funciones, operadores e tipos de índice sin modificar el código principal de PostgreSQL. Varias extensiones son relevantes para las aplicaciones de inteligencia artificial:
pgvector: Habilita los tipos de datos vectoriales y las operaciones de búsqueda de similitud. Puede almacenar embeddings junto con datos relacionales y realizar búsquedas de vecinos más cercanos aproximadas. El módulo "Implementar búsqueda de vectores con Azure PostgreSQL" cubre pgvector en detalle.
pg_trgm: Proporciona funciones de similitud de texto basadas en trigramas. Resulta útil para la coincidencia de texto aproximada, las características de autocompletar y la búsqueda de cadenas similares sin coincidencias exactas.
hstore: Agrega un tipo de datos clave-valor para almacenar conjuntos de pares clave-valor dentro de un único valor de PostgreSQL. Resulta útil para los datos semiestructurados que no requieren la flexibilidad completa de JSONB.
Puede habilitar extensiones mediante el CREATE EXTENSION comando después de confirmar que la extensión está disponible en la instancia del servidor.
Puntos de decisión del desarrollador
Al configurar Azure Database for PostgreSQL para la aplicación, tenga en cuenta estas decisiones clave:
Elección de un nivel de proceso: Seleccione en función de los requisitos de CPU y memoria de la carga de trabajo. Comience con Burstable para el desarrollo, las pruebas y el trabajo de prueba de concepto, donde la optimización de costos es más importante que el rendimiento coherente. Utilice General Purpose para cargas de trabajo de producción con requisitos de recursos estables y predecibles. Elija Optimizado para memoria cuando la aplicación se beneficia de cachés en memoria grandes o realice consultas analíticas complejas. Puede supervisar el uso de cpu y memoria después de la implementación y ajustar el nivel si es necesario.
Evaluación de extensiones: Revise las extensiones disponibles al principio del diseño de la aplicación. Determine si la aplicación necesita búsqueda de similitud vectorial (pgvector), búsqueda de texto completo o funcionalidades geoespaciales (PostGIS). Compruebe que las extensiones necesarias están disponibles en Azure Database for PostgreSQL antes de confirmar un diseño. Planee las actualizaciones de extensiones como parte de la estrategia de mantenimiento de la base de datos.