Sviluppa applicazioni con Spanner Omni utilizzando le funzionalità di Spanner supportate. Sebbene molte funzionalità siano condivise con Spanner, Spanner Omni presenta differenze nelle librerie client, nell'interfaccia a riga di comando (CLI) e nella funzionalità della console.
Le funzionalità di sviluppo di Spanner supportate includono:
Best practice per la progettazione e l'ottimizzazione delle applicazioni.
Funzionalità come le modifiche in tempo reale e la ricerca a testo intero.
Differenze principali
Sebbene gran parte dell'esperienza di sviluppo di Spanner sia applicabile, le seguenti aree differiscono in Spanner Omni:
Librerie client supportate: Spanner Omni supporta le librerie client Java, Go e Python.
Interfaccia a riga di comando (CLI): la CLI di Spanner Omni è uno strumento dedicato distinto da Google Cloud CLI. Sebbene condivida una sintassi simile, non è necessario fornire il flag
--instancequando esegui i comandi.Limitazioni della console: la console di Spanner Omni è di sola lettura, quindi non puoi utilizzarla per modificare i deployment o i database.
Le seguenti funzionalità e best practice di Spanner si applicano a Spanner Omni.
Best practice e casi di utilizzo
Segui queste best practice e questi casi di utilizzo per progettare e ottimizzare le tue applicazioni per Spanner Omni.
Spanner come database per i videogiochi: utilizza la scalabilità e la coerenza di Spanner per i backend dei videogiochi.
Best practice per SQL: ottimizza le query per prestazioni ed efficienza. La maggior parte dei concetti si applica a Spanner Omni. Poiché Spanner Omni non supporta l'archiviazione a livelli, concetti come il push-down del predicato del timestamp potrebbero non essere completamente applicabili. Inoltre, Spanner Omni non dispone di funzionalità di visualizzazione del piano di query.
Framework di linguaggio
Integra Spanner Omni con i framework di linguaggio più diffusi:
Hibernate ORM
Utilizza Hibernate Object-Relational Mapping (ORM) per mappare gli oggetti Java alle tabelle di Spanner Omni. Per ulteriori informazioni, consulta le seguenti risorse:
Integra con Hibernate ORM (PostgreSQL) nella documentazione di Spanner.
Scrivi un'app Hibernate che si connette a Spanner nella documentazione di Spanner.
GORM
Integra Spanner Omni con GORM, uno strumento di mappatura relazionale degli oggetti (ORM) per il linguaggio di programmazione Go. Per utilizzare le funzionalità di mappatura relazionale degli oggetti di GORM nelle applicazioni Go. Per ulteriori informazioni, consulta le seguenti risorse:
Integra con GORM (GoogleSQL) nella documentazione di Spanner.
Integra con GORM (PostgreSQL) nella documentazione di Spanner.
Transazioni e concorrenza
Spanner Omni supporta le seguenti funzionalità di gestione delle transazioni:
Panoramica delle transazioni: scopri le transazioni di lettura/scrittura e di sola lettura.
Limiti di timestamp: controlla la vetustà delle letture. Per Spanner Omni, puoi configurare il periodo di conservazione delle versioni (
version_retention_period) fino a 30 giorni. In Spanner, puoi configurarlo fino a una settimana.Scopri di più sui timestamp di commit nei database GoogleSQL e nei database PostgreSQL.
TrueTime e coerenza esterna: Scopri come Spanner mantiene la coerenza nel deployment.
Livelli di isolamento
Scopri i diversi livelli di isolamento supportati da Spanner Omni per garantire la coerenza dei dati.
Ottimizzazione
Utilizza queste tecniche per ottimizzare il rendimento e il throughput delle transazioni.
Chiusura della serratura
Scopri come utilizzare il blocco esplicito per gestire l'accesso simultaneo ai dati.
Accesso e modifica dei dati
Accedi e modifica i dati utilizzando i metodi standard di Spanner, tra cui le librerie client, la CLI e DML.
Per scoprire come le librerie client gestiscono le sessioni, consulta Sessioni. Sebbene i concetti di sessione sottostanti si applichino a Spanner Omni, quest'ultimo supporta solo le sessioni multiplexate.
Lettura dei dati
Leggi i dati da Spanner Omni utilizzando vari metodi, tra cui le letture obsolete e le letture dirette.
Modifica dei dati
Modifica i dati utilizzando DML, mutazioni o la CLI.
Tipi di dati
Spanner Omni supporta i seguenti tipi di dati per rappresentare i dati della tua applicazione:
Utilizza gli array in GoogleSQL e in PostgreSQL.
Sviluppo e test
Configura l'ambiente di sviluppo e il comportamento dell'applicazione per garantire prestazioni affidabili e gestione degli errori.
Trasmetti in streaming le modifiche dei dati
I flussi di modifiche di Spanner monitorano le modifiche del database, come inserimenti, aggiornamenti ed eliminazioni, quasi in tempo reale. Gestiti tramite DDL, acquisiscono dettagli come chiavi primarie e timestamp di commit per interi database o tabelle specifiche. Sebbene la funzionalità sia quasi identica tra Spanner e Spanner Omni, Dataflow non è supportato in Spanner Omni.
Per saperne di più, consulta:
Panoramica delle modifiche in tempo reale: scopri cosa fanno le modifiche in tempo reale e come funzionano.
Crea e gestisci i flussi di modifiche in tempo reale: scopri come utilizzare DDL per creare, modificare ed eliminare i flussi di modifiche in tempo reale.
Ricerca a testo intero
Utilizza la ricerca a testo intero (FTS) di Spanner per cercare parole, frasi o numeri nelle tabelle. FTS legge gli ultimi dati di cui è stato eseguito il commit.
Le funzionalità principali di FTS includono:
- Correzione ortografica automatica.
- Rilevamento della lingua, anche per cinese, giapponese e coreano.
Per utilizzare FTS, crea indici di ricerca sulle colonne in cui vuoi eseguire la ricerca. Spanner suddivide i dati in queste colonne in singole parole. Aggiorna immediatamente l'indice quando vengono aggiunti nuovi dati.
Le ricerche FTS offrono funzionalità avanzate oltre alla corrispondenza del testo standard, ad esempio:
- Ricerca di numeri esatti e intervalli di numeri.
- Ricerca di parti di parole (n-grammi) per nomi ed errori di ortografia.
- Ricerca di parole con un suono simile (Soundex).
- Ignorare le parole comuni.
La funzionalità FTS è coerente tra Spanner e Spanner Omni.
Differenze di testo intero in Spanner
Spanner supporta la funzionalità FTS principale presente in Spanner con le seguenti differenze:
La modalità di query avanzata non è supportata in Spanner Omni.
Un'istanza in Spanner è equivalente a un deployment in Spanner Omni.