AlloyDB para PostgreSQL es un servicio de bases de datos totalmente gestionado y compatible con PostgreSQL diseñado para las cargas de trabajo más exigentes, incluido el procesamiento híbrido transaccional y analítico. AlloyDB combina un motor de base de datos creado por Google con una arquitectura multinodo basada en la nube para ofrecer rendimiento, fiabilidad y disponibilidad de nivel empresarial.
Cómo funciona AlloyDB
Una aplicación se conecta a instancias de AlloyDB mediante protocolos y técnicas estándar de PostgreSQL. A continuación, la aplicación usa la sintaxis de consulta de PostgreSQL para trabajar con la base de datos.
En segundo plano, AlloyDB utiliza una jerarquía basada en la nube de componentes y funciones diseñados para maximizar la disponibilidad de tus datos y optimizar el rendimiento y el procesamiento de las consultas. Google CloudLas herramientas administrativas te permiten monitorizar el estado de tu implementación de AlloyDB y ajustar su escala y tamaño para que se adapte mejor a las cambiantes demandas de tu carga de trabajo.
Diferencias entre la arquitectura de AlloyDB y la de PostgreSQL estándar
En las implementaciones tradicionales de PostgreSQL, el motor de la base de datos que procesa las consultas se combina con el almacenamiento en el que residen los datos, a menudo en el mismo servidor. AlloyDB emplea una arquitectura desagregada. Las capas de computación y almacenamiento están separadas y ofrecen un escalado individual.
Para escalar una configuración típica de PostgreSQL, se utiliza el escalado vertical, que consiste en cambiar a un servidor más grande, o el escalado horizontal, que se usa para las lecturas y consiste en usar réplicas de lectura que también duplican los datos.
El diseño desagregado de AlloyDB, basado en el sistema de archivos distribuido de Google, ofrece varias ventajas:
- Escalado independiente: puedes aumentar o reducir los recursos de computación, concretamente los nodos y las instancias, en función de las demandas de las consultas sin aprovisionar ni desaprovisionar almacenamiento. También puedes ampliar los nodos de solo lectura para mejorar la escalabilidad de lectura sin que esto afecte a la disponibilidad. A medida que aumentan tus datos, el almacenamiento se escala sin afectar a los recursos de computación.
- Rendimiento mejorado: gracias a un motor de almacenamiento nativo de la nube optimizado, AlloyDB ofrece un rendimiento de consultas transaccionales y analíticas rápido, que se debe a las capas de almacenamiento en caché inteligentes y a la gestión avanzada de E/S.
- Gestión simplificada: la separación de responsabilidades permite gestionar automáticamente muchas operaciones de la base de datos, como la replicación, las copias de seguridad y la aplicación de parches, que son tareas manuales en PostgreSQL autogestionado.
- Alta disponibilidad y durabilidad: el almacenamiento de datos redundante en la capa duradera abarca varias zonas de disponibilidad, lo que proporciona conmutación por error y recuperación automáticas sin pérdida de datos, independientemente del estado de las instancias.
Esta diferencia arquitectónica fundamental se manifiesta en la jerarquía de recursos de AlloyDB, que usa clústeres como contenedores de bases de datos lógicos generales, nodos que proporcionan la potencia computacional e instancias que actúan como puntos de conexión de aplicaciones. Todo esto mientras los datos se conservan en una capa de almacenamiento independiente y desagregada.
En el siguiente diagrama se muestra un ejemplo de un clúster escalado para gestionar cargas de trabajo exigentes, con la inclusión de varias instancias de grupo de lectura con balanceo de carga:
Clústeres
Una única implementación de AlloyDB en una Google Cloud región determinada organiza todos sus recursos en un clúster. Esto incluye todas tus bases de datos, registros y otros metadatos. AlloyDB despliega todos los recursos de un clúster en una sola nube privada virtual (VPC) y utiliza un sistema de archivos basado en la nube diseñado por Google y optimizado para AlloyDB.
Nodos e instancias
Un clúster contiene varios nodos, que son instancias de máquinas virtuales dedicadas a ejecutar el motor de base de datos compatible con PostgreSQL que las aplicaciones usan para consultar los datos del clúster. AlloyDB organiza los nodos en instancias, cada una de las cuales tiene una dirección IP privada y estática en tu VPC. En la práctica, tus aplicaciones se conectan a las instancias en estas direcciones IP mediante protocolos de PostgreSQL. A continuación, las instancias envían consultas de SQL a sus nodos.
AlloyDB tiene dos tipos de instancias:
Instancia principal: cada clúster tiene una instancia principal que proporciona un punto de acceso de lectura o escritura a sus datos. Una instancia principal puede ser de alta disponibilidad o básica.
Instancia principal de alta disponibilidad: una instancia principal de alta disponibilidad tiene dos nodos: un nodo activo y un nodo de espera. AlloyDB monitoriza la disponibilidad del nodo activo y, cuando es necesario, convierte automáticamente el nodo de espera en el nodo activo.
Instancia básica: los entornos que no son de producción y que no requieren una alta disponibilidad pueden usar instancias básicas de forma opcional. Una instancia básica solo tiene un nodo, sin nodo de reserva. Para obtener más información, consulta Reducir costes con instancias básicas.
Instancia de grupo de lectura: tu clúster puede tener una o varias instancias de grupo de lectura, cada una de las cuales contiene uno o varios nodos de solo lectura, hasta un máximo de 20 en todo el clúster. AlloyDB balancea la carga automáticamente de todas las solicitudes enviadas a una instancia de grupo de lectura y las dirige a los nodos de la instancia.
En los casos prácticos más sencillos, un clúster puede tener solo la instancia principal, sin grupos de lectura, y las aplicaciones pueden usar la instancia principal para todas las consultas. Para tareas más exigentes, puedes añadir instancias de grupo de lectura al clúster. A continuación, configure sus aplicaciones de informes o analíticas para que les envíen solicitudes de lectura. Esta técnica reduce la carga de la instancia principal y mejora la escalabilidad al distribuir la carga entre varios nodos.
Puedes añadir, quitar o ajustar el número de nodos de una instancia de grupo de lectura en cualquier momento, según cambien las necesidades de tu aplicación. También puedes cambiar el tamaño de la memoria y el número de vCPUs de los nodos que componen una instancia cuando sea necesario, con un tiempo de inactividad mínimo. Escalar las instancias no supone ningún riesgo de pérdida de datos, ya que AlloyDB almacena los datos en la capa de almacenamiento flexible del clúster y no en las instancias.
Características principales
AlloyDB se diferencia de una instalación estándar de PostgreSQL en varios aspectos, además de las ventajas de escalado vertical y horizontal inherentes a la arquitectura de varios nodos descrita anteriormente. En las siguientes secciones se analizan en profundidad las funciones clave de AlloyDB.
Funciones de bases de datos automáticas y adaptativas
El motor de base de datos totalmente compatible con PostgreSQL que impulsa todos los nodos de AlloyDB tiene varias funciones que analizan continuamente la estructura y la frecuencia de las consultas que gestionan tus instancias. Con esta información, sugiere mejoras en el esquema o aplica optimizaciones automáticamente:
Un asesor de índices te ayuda a encontrar oportunidades para optimizar el esquema de tu base de datos mediante nuevos índices basados en tus patrones de uso.
Un motor en columnas puede acelerar el rendimiento de las consultas analíticas almacenando los datos en memoria con un formato de columnas. De esta forma, AlloyDB puede usar técnicas de procesamiento avanzadas para analizar de forma eficiente una gran cantidad de datos de tabla cuando sea necesario.
Una variación adaptativa de la función de vaciado automático de datos obsoletos de PostgreSQL ajusta automáticamente los parámetros relacionados con el vaciado para que se adapten mejor a la forma de tu carga de trabajo.
Los sistemas automáticos de gestión de memoria y almacenamiento aprovechan el entorno basado en la nube creado por Google en el que se ejecuta AlloyDB, asignando y liberando continuamente memoria y almacenamiento según sea necesario para que tu clúster funcione con un rendimiento y una eficiencia de recursos óptimos.
Alta disponibilidad
De forma predeterminada, un clúster de AlloyDB ofrece alta disponibilidad a través de los nodos redundantes de su instancia principal, que se encuentran en dos zonas diferentes, con conmutación por error automática.
Los clústeres que operan en entornos que no son de producción y que no requieren alta disponibilidad pueden usar instancias principales básicas de una sola zona.
Si añades instancias de pool de lectura que contengan al menos dos nodos, se crearán más puntos de acceso a tus datos con equilibrio de carga, multizonales y de alta disponibilidad. Todas las instancias del grupo de lectura se ejecutan de forma independiente a la instancia principal.
Para obtener más información sobre las consideraciones específicas de cada región, consulta el artículo sobre geografía y regiones.
Copias de seguridad de datos y recuperación en caso de desastre.
AlloyDB incluye un sistema de copia de seguridad y recuperación continuas que te permite crear un nuevo clúster basado en cualquier momento dentro de un periodo de conservación ajustable. De esta forma, puedes recuperarte rápidamente de los accidentes de pérdida de datos.
Además, AlloyDB puede crear y almacenar copias de seguridad completas de los datos de tu clúster, ya sea bajo demanda o de forma periódica. En cualquier momento, puedes restaurar una copia de seguridad en un nuevo clúster de AlloyDB que contenga todos los datos del clúster original en el momento en que se creó la copia de seguridad.
Para obtener más información, consulta Información sobre las copias de seguridad.
Como método adicional de recuperación tras fallos, puedes conseguir la replicación entre regiones creando clústeres secundarios en regiones Google Cloud independientes. AlloyDB transmite datos de forma asíncrona desde un clúster principal designado a cada uno de sus clústeres secundarios. Cuando lo necesites, puedes convertir un clúster secundario en un clúster de AlloyDB con todas las funciones, que incluya instancias principales y de grupo de lectura.
Para obtener más información, consulta Información sobre la replicación entre regiones.
Seguridad y control de acceso
Puedes configurar un clúster para que requiera una conexión con el proxy de autenticación de AlloyDB seguro, que usa Google Cloud Gestión de Identidades y Accesos (IAM) Google Cloud para controlar el acceso. Para obtener más información, consulta Autorización.
AlloyDB usa el sistema de roles de usuario estándar de PostgreSQL para la autenticación e introduce algunos roles adicionales específicos de AlloyDB. Para obtener más información, consulta Gestionar roles de usuario de AlloyDB.
Cifrado
AlloyDB protege todos los datos en reposo mediante los métodos de cifrado de Google de forma predeterminada. Si necesitas cifrar tus datos con una clave que proporciones, puedes especificar una clave de cifrado gestionada por el cliente (CMEK) al crear un clúster. AlloyDB usa la clave CMEK para cifrar todos los datos que se escriben en ese clúster.
CMEK también se aplica a las copias de seguridad. Puede especificar una clave CMEK al crear una copia de seguridad bajo demanda, configurar una programación de copias de seguridad o restaurar una copia de seguridad.
Para obtener más información, consulta el artículo Acerca de las CMEK.
Mantenimiento no disruptivo
Las operaciones de mantenimiento de AlloyDB se han diseñado para minimizar las interrupciones en tu base de datos. Las instancias principales y secundarias tienen un tiempo de inactividad de menos de un segundo, mientras que los grupos de lectura permanecen disponibles continuamente sin tiempo de inactividad. Para ello, se preparan servidores de sustitución y se cambian rápidamente por los servidores activos cuando están listos. Durante este proceso, se interrumpirán momentáneamente las conexiones activas a la base de datos. Puedes seguir usando tu base de datos con normalidad durante todo el proceso.
Aunque este proceso de sustitución garantiza un tiempo de inactividad mínimo, la operación en general puede tardar varios minutos, tal como se indica en la Google Cloud consola y en la CLI de Google Cloud.
Estas operaciones de mantenimiento incluyen tareas de mantenimiento periódicas que ejecuta Google y tareas que realizas manualmente, como la configuración de marcas y el cambio de tamaño de las instancias. Si quieres aplicar una actualización inmediatamente, aunque eso suponga un tiempo de inactividad más largo, usa la marca de base de datos FORCE_APPLY
.
AlloyDB AI
AlloyDB AI integra un conjunto de funciones de IA y aprendizaje automático directamente en tu base de datos de AlloyDB. Tradicionalmente, la creación de aplicaciones de IA requería flujos de procesamiento de datos y procesos de extracción, transformación y carga (ETL) complejos para mover datos de bases de datos operativas a plataformas especializadas de IA y aprendizaje automático. Este método planteaba problemas como el aumento de la latencia de la transferencia de datos, una mayor sobrecarga operativa debido a la gestión de diferentes sistemas y el almacenamiento duplicado. Al integrar las funciones de IA directamente en la base de datos, AlloyDB AI elimina la necesidad de mover grandes cantidades de datos externos.
Para facilitar el desarrollo de aplicaciones de IA, AlloyDB AI proporciona las siguientes extensiones:
vector
(una versión depgvector
personalizada para AlloyDB AI): almacena e indexa representaciones vectoriales para la búsqueda semántica. Admite la ejecución de consultas híbridas y búsquedas de similitud. Para empezar a usar la búsqueda vectorial, consulta el artículo Realizar una búsqueda vectorial.alloydb_scann
: proporciona una búsqueda de vecinos más cercanos aproximada de alto rendimiento mediante la implementación de un índice de vecinos más cercanos muy eficiente basado en el algoritmo ScaNN. Para obtener más información, consulta Crear un índice de ScaNN.google_ml_integration
: proporciona acceso al motor de consultas de IA, que permite invocar modelos de aprendizaje automático desde AlloyDB para tareas como generar incrustaciones, clasificar semánticamente, aplicar filtros y combinaciones basados en IA, y generar y resumir texto. La gestión de los endpoints de modelos permite registrar e invocar modelos de IA, incluidos modelos externos de OpenAI o Anthropic. Para obtener más información, consulta Registrar un endpoint de modelo y Evaluar consultas semánticas con operadores de IA.alloydb_ai_nl
: permite interactuar con tu base de datos mediante lenguaje natural. Permite a los desarrolladores de aplicaciones generar consultas SQL precisas y seguras en respuesta a las preguntas en lenguaje natural de los usuarios finales, lo que permite a los usuarios que no conocen SQL acceder a los datos. Para obtener más información, consulta el resumen sobre el lenguaje natural.
Para ver una lista de casos prácticos de las funciones de AlloyDB AI, consulta Crea aplicaciones de IA generativa.
Asistencia para extensiones
AlloyDB incluye compatibilidad con varias extensiones populares de PostgreSQL. Para ver la lista completa, consulta Extensiones de bases de datos admitidas.
Una alternativa autohosted: AlloyDB Omni
Como alternativa a la ejecución de AlloyDB en Google Cloud, Google ofrece AlloyDB Omni. Esta edición descargable y optimizada de AlloyDB te permite ejecutar su potente motor de base de datos en tu propio entorno informático basado en Linux, dondequiera que esté.
Para obtener más información, consulta Acerca de AlloyDB Omni.