AlloyDB Omni es un paquete de software de base de datos descargable que te permite implementar una edición optimizada de AlloyDB para PostgreSQL en tu propio entorno de procesamiento. La portabilidad de AlloyDB Omni le permite ejecutarse en una gran variedad de entornos, incluidos los siguientes:
- Centros de datos
- Laptops
- Instancias de VM basadas en la nube
AlloyDB Omni es adecuado para las siguientes situaciones:
- Necesitas una versión escalable y de alto rendimiento de PostgreSQL, pero no puedes ejecutar una base de datos en la nube debido a requisitos regulatorios o de soberanía de los datos.
- Necesitas una base de datos que siga ejecutándose incluso cuando esté desconectada de Internet.
- Debes ubicar físicamente tu base de datos lo más cerca posible de tus usuarios para minimizar la latencia.
- Te gustaría migrar de una base de datos heredada, pero sin comprometerte a una migración completa a la nube.
AlloyDB Omni no incluye las funciones de AlloyDB que dependen de la operación dentro de Google Cloud. Si deseas actualizar tu proyecto a las funciones de escalamiento, seguridad y disponibilidad completamente administradas de AlloyDB, puedes migrar tus datos de AlloyDB Omni a un clúster de AlloyDB, al igual que lo puedes hacer con cualquier otra importación de datos inicial.
Características clave
- Un servidor de base de datos compatible con PostgreSQL
- Compatibilidad con AlloyDB AI, un conjunto integrado de funciones integradas en AlloyDB, para ayudarte a crear aplicaciones de IA generativa de nivel empresarial con tus datos operativos.
- Integraciones con el Google Cloud ecosistema de IA, incluido el Vertex AI Model Garden y las herramientas de IA generativa de código abierto.
- Un asesor de índices que analiza las consultas que se ejecutan con frecuencia y recomienda índices nuevos para mejorar el rendimiento de las consultas.
- El motor de columnas de AlloyDB, que conserva los datos consultados con frecuencia en un formato de columnas en la memoria para obtener un rendimiento más rápido en inteligencia empresarial, informes y cargas de trabajo de procesamiento híbrido transaccional y analítico (HTAP).
- Otras optimizaciones y mejoras en comparación con un servidor PostgreSQL estándar, como la administración automática de memoria y el autovacuum adaptable de datos inactivos
Cómo funciona AlloyDB Omni
AlloyDB Omni se puede instalar como un servidor independiente o como parte de un entorno de Kubernetes.
AlloyDB Omni se ejecuta en un contenedor de Docker que instalas en tu propio entorno. Recomendamos ejecutar AlloyDB Omni en un sistema Linux con almacenamiento SSD y al menos 8 GB de memoria por CPU.
El operador de Kubernetes de AlloyDB Omni es una extensión de la API de Kubernetes que te permite ejecutar AlloyDB Omni en la mayoría de los entornos de Kubernetes compatibles con CNCF. Para obtener más información, consulta Cómo instalar AlloyDB Omni en Kubernetes.
Tus aplicaciones se conectan a tu instalación de AlloyDB Omni y se comunican con ella exactamente como lo harían con un servidor de base de datos PostgreSQL normal. El control de acceso de los usuarios también se basa en los estándares de PostgreSQL.
Puedes configurar el comportamiento de AlloyDB Omni con las mismas marcas de base de datos que están disponibles para AlloyDB.
Arquitectura del motor de base de datos de AlloyDB Omni en una VM
En este documento, se describe la arquitectura de la base de datos en AlloyDB Omni en un contenedor. En este documento, se supone que estás familiarizado con PostgreSQL.
Un motor de base de datos realiza las siguientes tareas:
- Traduce una consulta de un cliente en un plan ejecutable.
- Encuentra los datos necesarios para responder la consulta
- Realiza cualquier filtrado, ordenamiento y agregación necesarios
- Muestra los resultados al cliente
Cuando la aplicación cliente envía una consulta a AlloyDB Omni, se producen las siguientes acciones:
- La capa de procesamiento de consultas convierte la consulta en un plan de ejecución que se envía a la capa de ejecución de consultas.
- La capa de ejecución de consultas realiza las operaciones necesarias para calcular la respuesta a la consulta.
- Durante la ejecución, los datos se pueden cargar desde la caché del búfer o directamente desde el almacenamiento. Si los datos se cargan desde el almacenamiento, se almacenan en la caché para usos futuros.
Los recursos que se usan cuando se procesa la consulta del cliente incluyen CPU, memoria, E/S, red y primitivas de sincronización, como bloqueos de bases de datos. El objetivo del ajuste de rendimiento es optimizar el uso de recursos durante cada uno de los pasos de la ejecución de consultas.
El objetivo de un motor de base de datos de alto rendimiento es responder a una consulta con la menor cantidad de recursos necesarios. Este objetivo comienza con un buen modelo de datos y un diseño de consulta.
- ¿Cómo se pueden responder las consultas mientras se observa la menor cantidad de datos?
- ¿Qué índices se necesitan para reducir el espacio de búsqueda y las operaciones de E/S?
- La clasificación de datos requiere CPU y, a menudo, acceso al disco para conjuntos de datos grandes, por lo que ¿cómo se puede evitar la clasificación de datos?
Almacenamiento de datos
AlloyDB Omni almacena datos en páginas de tamaño fijo que se almacenan en el sistema de archivos subyacente. Cuando una consulta necesita acceder a los datos, AlloyDB Omni primero verifica el grupo de búferes. Si no se encuentran las páginas que contienen los datos necesarios en el grupo de búferes, AlloyDB Omni las lee del sistema de archivos. El acceso a los datos desde el grupo de búferes es mucho más rápido que la lectura desde el sistema de archivos y, por lo tanto, maximizar el tamaño del grupo de búferes para la cantidad de datos a los que accederá una aplicación es un factor importante.
Administración de recursos
AlloyDB Omni usa la administración de memoria dinámica para permitir que el grupo de búferes crezca y se reduzca de forma dinámica dentro de los límites configurados según las demandas de memoria del sistema. Por lo tanto, no es necesario ajustar el tamaño del grupo de búferes. Cuando diagnostiques problemas de rendimiento, las primeras métricas que debes tener en cuenta son la tasa de aciertos del grupo de búferes y la tasa de lectura para ver si tu aplicación se beneficia del grupo de búferes. De lo contrario, significa que el conjunto de datos de la aplicación no cabe en el grupo de búferes y que podrías considerar cambiar el tamaño a una máquina más grande con más memoria.
El proceso de recuperación, filtrado, agregación, ordenamiento y proyección de datos requiere recursos de CPU en el servidor de la base de datos. Para reducir la cantidad de recursos de CPU necesarios para este proceso, minimiza la cantidad de datos que se deben manipular. Supervisa el uso de la CPU en el servidor de la base de datos para asegurarte de que el uso en estado estable sea de alrededor del 70%. Esta cantidad deja suficiente margen en el servidor para los aumentos repentinos en el uso o los cambios en los patrones de acceso a lo largo del tiempo. Ejecutar el proceso con una utilización cercana al 100% genera sobrecarga debido a la programación de procesos y al cambio de contexto, y puede crear cuellos de botella en otras partes del sistema. El alto uso de CPU es otra métrica clave que se debe usar cuando se toman decisiones sobre las especificaciones de la máquina.
Las operaciones de entrada y salida por segundo (IOPS) son un factor importante en el rendimiento de las aplicaciones de bases de datos: cuántas operaciones de entrada o salida por segundo puede entregar el dispositivo de almacenamiento subyacente a la base de datos. Para evitar alcanzar los límites de IOPS del almacenamiento de la base de datos, minimiza las operaciones de lectura y escritura en el almacenamiento maximizando la cantidad de datos que pueden caber en el grupo de búferes.
Copia de seguridad y recuperación ante desastres
AlloyDB Omni cuenta con un sistema de copia de seguridad y recuperación continuo que te permite crear un clúster de base de datos nuevo en función de cualquier momento dentro de un período de retención ajustable. Esto te permite recuperarte rápidamente de accidentes de pérdida de datos.
Además, AlloyDB Omni puede crear y almacenar copias de seguridad completas de los datos del clúster de tu base de datos, ya sea a pedido o de forma periódica. En cualquier momento, puedes restablecer desde una copia de seguridad a un clúster de bases de datos de AlloyDB Omni que contenga todos los datos del clúster de bases de datos original en el momento de la creación de la copia de seguridad.
Para obtener más información, consulta Cómo crear una copia de seguridad y restablecer AlloyDB Omni.
Como método adicional de recuperación ante desastres, puedes lograr la replicación entre centros de datos creando clústeres de bases de datos secundarios en centros de datos independientes. AlloyDB Omni transmite datos de forma asíncrona desde un clúster de base de datos principal designado a cada uno de sus clústeres secundarios. Cuando sea necesario, puedes ascender un clúster de base de datos secundario a un clúster de base de datos principal de AlloyDB Omni.
Para obtener más información, consulta Acerca de la replicación entre centros de datos.
Documentación para AlloyDB Omni versión 15.5.2 y anteriores
Para obtener información sobre la versión anterior de AlloyDB Omni, consulta el conjunto de documentación de AlloyDB Omni para varios contenedores.