Spanner per carichi di lavoro non relazionali

Spanner è un sistema di database completamente gestito e altamente affidabile. Anche se Spanner si è evoluto per diventare un sistema di gestione di database relazionali, ha le sue radici come sistema di archiviazione non relazionale con coppie chiave-valore e conserva le caratteristiche fondamentali di un sistema di questo tipo. Di conseguenza, puoi utilizzare di Spanner come database non relazionale (NoSQL) e di eseguire la migrazione da altri database non relazionali a Spanner. Questo documento ti aiuta a capire se Spanner è la soluzione giusta per i tuoi carichi di lavoro non relazionali.

I database NoSQL sono entrati in uso in un periodo in cui i database nei database non disponevano di funzionalità a supporto delle applicazioni emergenti che richiedevano un'elevata scalabilità, disponibilità ed elasticità di calcolo. Lo hanno fatto sacrificando diverse funzionalità spesso fondamentali per la gestione dei dati, come transazioni, coerenza e query ad hoc. Spanner è stato creato per supportare sia la natura esigente delle applicazioni e delle funzionalità ad alta disponibilità fornite dai database relazionali tradizionali, sia la possibilità per i clienti di usufruire di entrambi gli insiemi di funzionalità.

Con Spanner, puoi iniziare con soluzioni semplici, non relazionali, di archiviazione e scalare l'applicazione in base alle esigenze.

In che modo Spanner soddisfa i criteri dei database NoSQL

Spanner soddisfa i seguenti criteri chiave per i carichi di lavoro NoSQL.

Scalabilità e prestazioni

I database NoSQL hanno guadagnato popolarità grazie alla loro capacità di scalare letture e scritture in orizzontale. Con Spanner, non devi preoccuparti della scalabilità o le prestazioni rappresentano un problema. I database Spanner basati su coppie chiave-valore possono essere scalati orizzontalmente per supportare centinaia di milioni di richieste di lettura o scrittura al secondo e petabyte di dati. La capacità di calcolo di Spanner si adatta al carico di lavoro, mantenendo un profilo coerente e a bassa latenza anche quando l'applicazione viene scalata di diversi ordini di grandezza.

API NoSQL

I database relazionali tradizionali sono generalmente accessibili tramite SQL, con una curva di apprendimento per gli sviluppatori che non hanno familiarità con i database relazionali. Anche i client per questi database in genere si basano su connessioni permanenti e richiedono il deployment dell'infrastruttura di pool di connessioni per la scalabilità. Nella l'API Spanner è basata su una richiesta gRPC/HTTP2 e di risposta che gestisce automaticamente gli errori di connessione. Spanner offre un ambiente semplice, efficiente e nativo del linguaggio API NoSQL di lettura e scrittura che non richiedono conoscenze SQL. Inoltre, I client Spanner non richiedono alcun pool di connessioni per su larga scala.

Completamente gestito

Uno dei principali vantaggi dei database NoSQL è che sono percepiti come più facili da gestire. Essendo un servizio completamente gestito, Spanner non inserisce a carico dei clienti. Spanner esegue aggiornamenti hardware e software senza tempi di inattività in background, mantenendo la compatibilità con le versioni precedenti. L'API e la semantica di Spanner sono le stesse come se le operazioni venissero eseguite su un database di una singola macchina e non richiedono la conoscenza dell'architettura interna di Spanner. Spanner viene eseguito su deployment che vanno da 1/10 di nodo a decine di migliaia di nodi, scalando in modo automatico e reattivo con gestore della scalabilità automatica gestito.

e semistrutturati

Spanner supporta tipi di dati flessibili come JSON e BYTES che vengono utilizzati per archiviare dati semistrutturati o non strutturati. Come altri database NoSQL, puoi usare questi tipi di dati per evitare di specificare tutti i tuoi schemi di archiviazione in anticipo.

Controllo degli accessi

Come altri database NoSQL, Spanner supporta l'accesso basato su IAM controllo. Gli amministratori possono configurare e amministrare i criteri di controllo degli accessi senza memorizzare nomi utente e password nel database.

Differenze tra Spanner e i database NoSQL tradizionali

Spanner offre i seguenti vantaggi rispetto ai database NoSQL tradizionali.

Transazioni

Man mano che le applicazioni diventano più complesse, spesso devono eseguire operazioni transazionali su più righe e tabelle nel database. Con Spanner, non è necessario eseguire la migrazione a un datastore transazionale man mano che il database cresce, perché Spanner supporta completamente le transazioni di lettura/scrittura. In quanto database conforme ad ACID, Spanner mantiene sempre la coerenza transazionale del tuo database, indipendentemente dalle dimensioni.

Modellazione dei dati

La progettazione degli schemi nei database NoSQL può essere non naturale poiché deve adattarsi a tutte in una singola tabella e di denormalizzare forzatamente i dati a causa dell'impossibilità di eseguire i join. Con Spanner, puoi specificare lo schema senza dover ricorrere a una singola tabella o alla denormalizzazione. Per ottimizzare i pattern di accesso che toccano più tabelle, puoi utilizzare l'interlacciamento delle tabelle. Puoi anche eseguire join tra tabelle.

Query ad hoc

Anche se utilizzi principalmente l'API NoSQL, spesso è comunque utile eseguire query ad hoc per scopi di debug o analisi. Spanner è conforme al linguaggio per query SQL standard. Puoi utilizzare l'assegnazione di priorità alle richieste per isolare il traffico ad hoc a bassa priorità dal traffico online oppure utilizzare Data Boost di Spanner eseguire query analitiche su risorse di computing completamente isolate dall'ambiente online per il traffico del database.

Indici secondari a elevata coerenza

Le applicazioni spesso richiedono indici secondari per supportare le ricerche a bassa latenza. I tipici database NoSQL offrono indici secondari o vincoli alla crescita di un indice. Ciò può complicare la logica dell'applicazione, che deve aggirare questi vincoli. Spanner offre indici secondari altamente coerenti su larga scala senza limitazioni di dimensioni. Questo ti consente di concentrarti della logica dell'applicazione e non preoccuparti dei problemi di coerenza.

Spanner è adatto alle tue esigenze di database NoSQL?

Spanner è un sistema di archiviazione dei dati flessibile che supporta sia i casi d'uso SQL sia quelli NoSQL. Mentre alcune applicazioni iniziano con una semplice archiviazione crescendo di complessità, necessitano di più funzionalità tipicamente non offerte da database NoSQL, come transazioni, indici secondari coerenti un linguaggio di query flessibile. Con Spanner, non hai limiti in base a queste limitazioni e puoi far crescere la tua applicazione in base alle tue esigenze.

La maggior parte dei carichi di lavoro non relazionali è ideale per Spanner. No Spanner offre solo un'API NoSQL di lettura/scrittura, ma è anche supportato da alta disponibilità, alta affidabilità, bassa latenza elasticità del calcolo e scalabilità estrema. Spanner ti consente consolidare carichi di lavoro diversificati su un'unica piattaforma flessibile.