Panoramica di Spanner Omni

Spanner Omni è una versione di Spanner che può essere implementata ovunque e che ti consente di eseguire la tecnologia di database distribuito di Google in data center on-premise, cloud pubblici come Google Cloud, Amazon Web Services (AWS) e sul tuo laptop. Offre le funzionalità principali di Spanner, tra cui scalabilità orizzontale, alta affidabilità, conformità ACID e coerenza esterna elevata, utilizzando la replica basata su Paxos, lo sharding automatico e l'API TrueTime software-defined.

Spanner Omni integra modelli di dati relazionali, grafici, vettoriali e coppia chiave-valore con funzionalità di analisi operative e di ricerca a testo intero. Come Spanner, Spanner Omni supporta GoogleSQL, PostgreSQL e Spanner Graph Language. Puoi ottenere resilienza cross-environment, portabilità delle applicazioni e uno stack di sviluppo coerente in vari ambienti. Spanner Omni supporta le opzioni di deployment che includono:

  • Macchine virtuali
  • Contenitori Linux
  • Cluster Kubernetes

Funzionalità principali

Spanner Omni offre le seguenti funzionalità:

  • Flessibilità di deployment: esegui Spanner Omni su Linux o macOS. Spanner Omni supporta ambienti cloud pubblico, come Google Cloud (Google Kubernetes Engine (GKE) e Cloud Storage) e Amazon Elastic Kubernetes Service (Amazon EKS) e Amazon Elastic Compute Cloud (Amazon EC2), on-premise e laptop.

  • Scalabilità elevata: Spanner Omni può partizionare automaticamente i dati e bilanciare le partizioni per ottenere una scalabilità elastica per le letture e le scritture.

  • Alta affidabilità: Spanner Omni offre più topologie di deployment. Spanner Omni offre il deployment multizona e multicluster per fornire alta affidabilità in caso di errori di zona o cluster.

  • Coerenza esterna forte: Spanner Omni fornisce coerenza transazionale globale utilizzando TrueTime basato su software, che può essere implementato in qualsiasi ambiente.

  • Multimodello interoperabile: Spanner Omni supporta più modelli dei dati (relazionali, coppia chiave-valore, grafici, vettoriali) e funzionalità (ricerca a testo intero, elaborazione analitica) e fornisce query tra modelli e transazioni conformi ad ACID in diversi modelli dei dati.

  • Interfaccia familiare: interagisci con i tuoi dati utilizzando la CLI Spanner, che include una shell SQL per le query interattive. Spanner Omni supporta i dialetti GoogleSQL, PostgreSQL e GQL, che ti consentono di eseguire la migrazione delle applicazioni esistenti.

Topologie di deployment

Spanner Omni utilizza una gerarchia di regioni, zone e server per definire la configurazione di deployment. Spanner Omni offre le seguenti configurazioni di deployment:

  • Singolo server: Spanner Omni viene eseguito su una singola macchina. Questa topologia è una buona opzione per lo sviluppo locale. Spanner Omni ti consente di utilizzare la funzionalità di backup e ripristino senza limitazioni se viene implementata in una configurazione a server singolo con quattro vCPU o meno. Gli upgrade a questa topologia causano tempi di inattività.

  • Zona singola (o zonale): tutti i server Spanner Omni fanno parte di una zona. Utilizza un minimo di tre server per questa configurazione del deployment. Per un uptime ottimale, questa topologia ha target di disponibilità inferiori perché un errore in una singola zona può causare un'interruzione del servizio.

  • Multi-zona (o regionale): Spanner Omni distribuisce i server in più zone. Tutte le zone si trovano in un'unica località. Per i deployment multizona, utilizza un minimo di tre zone. Ogni zona deve avere almeno un server. Ti consigliamo di utilizzare tre server in ogni zona. Questa configurazione di deployment offre una disponibilità maggiore rispetto al deployment in una singola zona.

  • Multi-cluster (o multiregionale): i server Spanner Omni si trovano in più zone in più cluster. Per l'alta affidabilità, utilizza tre zone in due o più cluster e configura ogni zona con tre o più server.

Requisiti di sistema

Per ottimizzare le prestazioni, utilizza i seguenti requisiti minimi consigliati per le implementazioni del server:

Ambiente Sistema operativo o piattaforma Consiglio sull'hardware
On-premise Linux (RHEL 9, Ubuntu 22) 4 GB di RAM per vCPU, più di 20 GB di spazio su disco
Cloud (Google Cloud e AWS) VM o pod Kubernetes 4 vCPU, 16 GB di RAM per VM o pod Kubernetes
Sviluppatore (laptop, computer) macOS (M1, M2, M3) 4 GB di RAM, 10 GB di spazio su disco

Per lo spazio di archiviazione, è consigliabile utilizzare un'unità a stato solido (SSD) dedicata con un file system ext4.

Connettività e sviluppo

Per connetterti a Spanner Omni e sviluppare applicazioni, prendi in considerazione i seguenti strumenti:

  • Librerie client: puoi utilizzare le librerie client Spanner esistenti per Java e Go specificando l'endpoint Spanner Omni. Ad esempio, in Java imposta setExperimentalHost("http://localhost:15000").

  • PGAdapter: questo proxy consente alle applicazioni PostgreSQL esistenti di connettersi ai database di dialetti PostgreSQL di Spanner Omni utilizzando il protocollo di trasferimento PostgreSQL standard.

  • Diagnostica: un comando spanner admin diagnostics create dedicato raccoglie log, tracce e stack di thread per la risoluzione dei problemi.