Descripción general de Spanner Omni

Spanner Omni es una versión de Spanner que se puede implementar en cualquier lugar y que te permite ejecutar la tecnología de base de datos distribuida de Google en centros de datos locales, nubes públicas, como Google Cloud, Amazon Web Services (AWS) y en tu laptop. Ofrece las capacidades principales de Spanner, como escalabilidad horizontal, alta disponibilidad, cumplimiento de ACID y coherencia externa sólida, a través de la replicación basada en Paxos, el particionamiento automático y la API de TrueTime definida por software.

Spanner Omni integra modelos de datos relacionales, de gráficos, de vectores y de pares clave-valor con capacidades de análisis operativos y de texto completo. Al igual que Spanner, Spanner Omni admite GoogleSQL, PostgreSQL y Spanner Graph Language. Puedes lograr resiliencia en todos los entornos, portabilidad de aplicaciones y una pila de desarrollo coherente en varios entornos. Spanner Omni admite opciones de implementación que incluyen lo siguiente:

  • Máquinas virtuales
  • Contenedores de Linux
  • Clústeres de Kubernetes

Características clave

Spanner Omni proporciona las siguientes funciones:

  • Flexibilidad de implementación: Ejecuta Spanner Omni en Linux o macOS. Spanner Omni admite entornos de nube pública, como Google Cloud (Google Kubernetes Engine (GKE) y Cloud Storage) y Amazon Elastic Kubernetes Service (Amazon EKS) y Amazon Elastic Compute Cloud (Amazon EC2), entornos locales y laptops.

  • Alta escalabilidad: Spanner Omni puede fragmentar automáticamente tus datos y equilibrar los fragmentos para lograr un escalamiento elástico para las lecturas y escrituras.

  • Alta disponibilidad: Spanner Omni ofrece varias topologías de implementación. Spanner Omni ofrece implementación en varias zonas y varios clústeres para proporcionar alta disponibilidad en caso de fallas en la zona o el clúster.

  • Coherencia externa sólida: Spanner Omni proporciona coherencia transaccional global con TrueTime basado en software, que se puede implementar en cualquier entorno.

  • Multimodelo interoperable: Spanner Omni admite múltiples modelos de datos (relacionales, par clave-valor, gráficos y de vectores) y capacidades (búsqueda en el texto completo y procesamiento analítico), y proporciona consultas entre modelos y transacciones compatibles con ACID en diferentes modelos de datos.

  • Interfaz familiar: Interactúa con tus datos a través de la CLI de Spanner, que incluye un shell de SQL para consultas interactivas. Spanner Omni admite los dialectos de GoogleSQL y PostgreSQL, y GQL, lo que te permite migrar aplicaciones existentes.

Topologías de implementación

Spanner Omni usa una jerarquía de regiones, zonas y servidores para definir su configuración de implementación. Spanner Omni ofrece las siguientes configuraciones de implementación:

  • Servidor único: Spanner Omni se ejecuta en una sola máquina. Esta topología es una buena opción para el desarrollo local. Spanner Omni te permite usar la función de copia de seguridad y restablecimiento sin restricciones si se implementa en una configuración de un solo servidor con cuatro o menos CPU virtuales. Las actualizaciones de esta topología causan tiempo de inactividad.

  • Zona única (o zonal): Todos los servidores de Spanner Omni forman parte de una zona. Usa un mínimo de tres servidores para esta configuración de implementación. Para un tiempo de actividad óptimo, esta topología tiene objetivos de disponibilidad más bajos, ya que una falla en una sola zona puede causar una interrupción.

  • Multizona (o regional): Spanner Omni distribuye servidores en varias zonas. Todas las zonas se encuentran en una sola ubicación. Para las implementaciones en varias zonas, usa un mínimo de tres zonas. Cada zona debe tener al menos un servidor. Recomendamos usar tres servidores en cada zona. Esta configuración de implementación ofrece una mayor disponibilidad que la implementación en una sola zona.

  • Multiclúster (o multirregional): Los servidores de Spanner Omni residen en varias zonas en varios clústeres. Para lograr alta disponibilidad, usa tres zonas en dos o más clústeres y configura cada zona con tres o más servidores.

Requisitos del sistema

Para optimizar el rendimiento, usa los siguientes requisitos mínimos recomendados para las implementaciones de servidores:

Entorno SO o plataforma Recomendación de hardware
Local Linux (RHEL 9, Ubuntu 22) 4 GB de RAM por CPU virtual y más de 20 GB de espacio en el disco
Nube (Google Cloud y AWS) VMs o Pods de Kubernetes 4 CPU virtuales y 16 GB de RAM por VM o pod de Kubernetes
Desarrollador (laptops y computadoras) macOS (M1, M2 y M3) 4 GB de RAM y 10 GB de espacio en el disco

Para el almacenamiento, se recomienda un almacenamiento dedicado de unidad de estado sólido (SSD) con un sistema de archivos ext4.

Conectividad y desarrollo

Para conectarte a Spanner Omni y desarrollar aplicaciones, considera las siguientes herramientas:

  • Bibliotecas cliente: Puedes usar las bibliotecas cliente de Spanner existentes para Java y Go especificando el extremo de Spanner Omni. Por ejemplo, en Java, establece setExperimentalHost("http://localhost:15000").

  • PGAdapter: Este proxy permite que las aplicaciones existentes de PostgreSQL se conecten a las bases de datos de Spanner Omni con dialecto de PostgreSQL a través del protocolo de conexión estándar de PostgreSQL.

  • Diagnóstico: Un comando spanner admin diagnostics create dedicado recopila registros, seguimientos y pilas de subprocesos para la solución de problemas.