Spanner Omni è una versione scaricabile di Spanner che ti consente di eseguire il deployment della tecnologia di database distribuito di Google in data center on-premise, cloud pubblici e sul tuo laptop. Offre le funzionalità principali di Spanner, tra cui scalabilità orizzontale, alta disponibilità, conformità ACID e coerenza esterna elevata, utilizzando la replica basata su Paxos, lo sharding automatico e l'API TrueTime definita dal software.
Spanner Omni integra modelli di dati relazionali, grafici, vettoriali e 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 tra gli ambienti, 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
Limitazioni della versione di anteprima di Spanner Omni
La versione Anteprima di Spanner Omni include la funzionalità di base di Spanner con le seguenti eccezioni degne di nota:
Le funzionalità di sicurezza aziendale e la crittografia TLS non sono supportate.
Spanner Omni smette di scrivere dati 90 giorni dopo la creazione di un deployment.
Backup e ripristini non sono supportati.
Per accedere in anteprima alla versione con tutte le funzionalità, contatta Google.
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 i partizionamenti per ottenere una scalabilità elastica per le letture e le scritture.
Alta disponibilità: Spanner Omni offre più topologie di deployment. Spanner Omni offre il deployment multizona e multicluster per fornire alta disponibilità in caso di errori di zona o cluster.
Coerenza esterna elevata: Spanner Omni fornisce una coerenza transazionale globale utilizzando TrueTime basato su software, che può essere implementato in qualsiasi ambiente.
Multimodello interoperabile: Spanner Omni supporta più modelli di dati (relazionali, chiave-valore, grafici, vettoriali) e funzionalità (ricerca full-text, elaborazione analitica) e fornisce query cross-model e transazioni conformi ad ACID su diversi modelli di 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 perché viene eseguita su una singola macchina. 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 di 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.
Multizona (o regionale): Spanner Omni distribuisce i server in più zone. Tutte le zone si trovano in un'unica posizione. 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 disponibilità, utilizza tre zone in due o più cluster e configura ogni zona con tre o più server.
Requisiti di sistema
Per ottimizzare il rendimento, 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, oltre 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 creatededicato raccoglie log, tracce e stack di thread per la risoluzione dei problemi.