Questa pagina introduce il partizionamento geografico e spiega come funziona in Spanner.
Spanner offre configurazioni di istanze regionali e multiregionali, che ti consentono di replicare i tuoi dati in diverse posizioni geografiche. Il partizionamento geografico ti consente di segmentare ulteriormente e archiviare le righe nella tabella del database in diverse configurazioni di istanze.
Vantaggi e casi d'uso
Il partizionamento geografico ti consente di partizionare le righe nel database, fornendo i seguenti vantaggi:
- Latenza regionale in un database globale: utilizzando il partizionamento geografico, Spanner gestisce i dati in un unico database unificato in località distribuite geograficamente, garantendo al contempo una bassa latenza per l'accesso regionale. L'utilizzo del partizionamento geografico semplifica le operazioni e riduce la complessità rispetto alla gestione di più database partizionati.
- Funzionalità del database globale: il partizionamento geografico offre funzionalità di database come transazioni globali, spostamento dei dati tra regioni e applicazione dell'unicità tra le regioni geografiche.
- Conformità della residenza dei dati: Spanner fornisce impegni di residenza dei dati a livello di posizionamento. Per informazioni, consulta la compatibilità della residenza dei dati per i database che utilizzano il partizionamento geografico.
Di seguito sono riportati i casi d'uso comuni:
Dati relativi agli utenti: partizionamento geografico dei dati relativi agli utenti per elaborare e archiviare i dati in una regione più vicina all'utente.
Dati localizzati: informazioni specifiche per la località, come traffico ed eventi speciali.
Come funziona il partizionamento geografico
Tutte le istanze Spanner hanno una partizione di istanza principale denominata default. Se non crei partizioni di istanza aggiuntive, tutti gli oggetti del database vengono archiviati nella partizione predefinita, che si trova nella stessa località della configurazione dell'istanza. Se vuoi partizionare i dati in un database, devi creare partizioni di istanza aggiuntive nell'istanza.
Per utilizzare il partizionamento geografico in un database:
Crea partizioni di istanza aggiuntive nell'istanza. Queste partizioni di istanza create dall'utente hanno una propria configurazione (regionale o multiregionale) e un numero di nodi.
Crea il database come faresti normalmente. Il database ha un posizionamento predefinito associato alla partizione di istanza predefinita dell'istanza.
Crea posizionamenti nel database associati alle partizioni di istanza aggiuntive. Il database può interagire con le partizioni di istanza aggiuntive create nella stessa istanza.
Crea tabelle di posizionamento con un attributo della chiave di posizionamento. Devi utilizzare la chiave di posizionamento nelle istruzioni DML per specificare in quale partizione di istanza risiedono i dati delle righe. Se crei tabelle non di posizionamento nel database, Spanner archivia i dati nella partizione di istanza predefinita.
La chiave di posizionamento per ogni riga in una tabella di posizionamento deve essere assegnata a uno dei seguenti elementi:
Un valore che corrisponde al nome di uno dei posizionamenti creati dall'utente definiti per quel database oppure
Il valore della chiave di posizionamento,
default, che archivia i dati nel posizionamento predefinito.
Per istruzioni su come utilizzare le partizioni di istanza, consulta Creare e gestire le partizioni di istanza.
Considerazioni importanti
Prima di creare le partizioni di istanza, i posizionamenti e le tabelle di posizionamento, considera quanto segue:
Località della partizione di istanza: seleziona attentamente le regioni delle partizioni di istanza che offrono i maggiori vantaggi per la tua applicazione.
Devi creare partizioni di istanza in un'istanza con una configurazione di istanza multiregionale.
Per una latenza migliore, ti consigliamo di selezionare una località di partizione di istanza predefinita multiregionale con regioni di lettura/scrittura e di sola lettura che coprano tutte le giurisdizioni richieste dalla tua applicazione. Poi, crea partizioni di istanza aggiuntive (che possono essere regionali) con regioni leader che corrispondono alle regioni nella partizione di istanza predefinita multiregionale.
Numero di partizioni di istanza: un numero eccessivo di partizioni di istanza può comportare un overhead, mentre un numero troppo basso potrebbe non offrire vantaggi sufficienti. Puoi creare un massimo di dieci partizioni di istanza per istanza.
Limitazioni
Durante la release di anteprima si applicano le seguenti limitazioni, che sono soggette a modifiche o rimozioni al momento della release GA o successivamente:
- La partizione di istanza predefinita deve essere una configurazione multiregionale.
- La partizione di istanza aggiuntiva deve essere una configurazione multiregionale.
- Non puoi creare una partizione di istanza utilizzando una configurazione a due regioni.
- Per ogni partizione di istanza, la capacità di calcolo deve essere di almeno un nodo (1000 unità di elaborazione).
- Per una determinata istanza, non puoi creare più di una partizione di istanza che utilizza la stessa configurazione di istanza di base. Ad esempio, all'interno di
test-instance, non puoi creare due partizioni,partition-1epartition-2, che utilizzano entrambeus-central1come configurazione della partizione di istanza. - Per ogni nodo nella partizione di istanza, puoi inserire un massimo di 100 milioni di righe di posizionamento. Puoi visualizzare il numero di righe di posizionamento che sono state inserite in ciascuna delle partizioni di istanza nella pagina Partizioni di istanza della Google Cloud console.
- Per ogni nodo nella partizione di istanza di destinazione, Spanner può spostare circa 10 righe di posizionamento al secondo.
- Non puoi creare backup incrementali o copiare il backup.
- Non puoi attivare la scalabilità automatica asimmetrica di sola lettura sulle partizioni di istanza non predefinite.
- Non puoi spostare la partizione di istanza in una configurazione di istanza diversa.
- Non puoi spostare un'istanza con database che utilizzano posizionamenti aggiuntivi che puntano alla partizione di istanza predefinita.
- Gli stream di modifiche in tempo reale non supportano i dati partizionati.
- Se utilizzi un'istruzione DML
INSERToDELETEper una tabella di posizionamento, questa deve essere l'unica istruzione nella transazione. - La modalità di transazione di lettura/scrittura ti consente di fare riferimento solo alle chiavi primarie di una tabella di posizionamento nella clausola
WHERE. Se devi fare riferimento a una colonna non chiave primaria di una tabella di posizionamento nella clausolaWHERE, puoi utilizzare una delle seguenti alternative:- Se hai bisogno solo dell'accesso di sola lettura, passa alla modalità di transazione di sola lettura.
- Se devi apportare aggiornamenti, utilizza la modalità di transazione DML partizionata oppure trova le chiavi primarie in una query di transazione di sola lettura e poi, in una transazione di lettura/scrittura separata, fai riferimento alle chiavi primarie restituite nella clausola
WHERE.
- Non puoi utilizzare schemi denominati.
- Non puoi creare partizioni di istanza in istanze di prova senza costi o in istanze di dimensioni granulari inferiori a un nodo (1000 unità di elaborazione).
- Non puoi modificare un posizionamento. In alternativa, puoi creare un nuovo posizionamento, utilizzare DML partizionata per aggiornare il posizionamento dei dati a un nuovo posizionamento e poi eliminare il posizionamento originale.
- La partizione di istanza predefinita deve essere una configurazione multiregionale.
Controllo dell'accesso con IAM
Per creare e gestire le partizioni di istanza, devi disporre delle autorizzazioni spanner.instancePartitions.create, spanner.instancePartitions.update e spanner.instancePartitions.delete. Se devi solo visualizzare le partizioni di istanza, devi disporre dell'autorizzazione spanner.instancePartitions.list o spanner.instancePartitions.get. Per saperne di più, consulta
Panoramica di IAM.
Per informazioni su come concedere le autorizzazioni IAM di Spanner, consulta Applicare le autorizzazioni IAM.
Monitoraggio
Spanner fornisce diverse metriche per aiutarti a monitorare le partizioni di istanza. Dopo aver creato una partizione di istanza aggiuntiva, nella pagina Approfondimenti di sistema della Google Cloud console viene visualizzato un filtro a discesa aggiuntivo per le partizioni di istanza. La selezione predefinita è di mostrare le metriche per Tutte le partizioni di istanza. Puoi utilizzare il menu a discesa per filtrare le metriche per una partizione di istanza specifica.
Per saperne di più sul monitoraggio delle risorse Spanner, consulta Monitorare le istanze con Cloud Monitoring.
Backup
Puoi creare backup completi per i database che utilizzano il partizionamento geografico. Non puoi eliminare la partizione di istanza se la utilizzi in un backup. Per saperne di più, consulta Creare backup.
Note sull'utilizzo:
- Spanner archivia i backup dei dati con partizionamento geografico nella stessa località di posizionamento dei dati originali al momento della versione del backup.
Per ripristinare i backup che contengono dati con partizionamento geografico, l'istanza di destinazione deve soddisfare le seguenti condizioni:
- L'istanza di destinazione deve utilizzare gli stessi nomi di partizione di istanza del backup originale.
- Ogni partizione di istanza nell'istanza di destinazione deve utilizzare la stessa configurazione di istanza del backup originale.
Gestore della scalabilità automatica gestito
Puoi attivare il gestore della scalabilità automatica gestito sulle partizioni di istanza. Quando attivi il gestore della scalabilità automatica gestito, Spanner regola automaticamente le dimensioni della partizione di istanza. Il gestore della scalabilità automatica gestito reagisce alle modifiche del carico di lavoro o delle esigenze di archiviazione della partizione di istanza man mano che il carico aumenta o diminuisce. Il gestore della scalabilità automatica gestito esegue lo scale up, aggiungendo capacità di calcolo alla partizione di istanza, oppure esegue lo scale down, rimuovendo la capacità di calcolo dalla partizione di istanza.
Prezzi
Non sono previsti costi aggiuntivi per l'utilizzo del partizionamento geografico. Ti vengono addebitati i prezzi standard di Spanner per la quantità di capacità di calcolo utilizzata dall'istanza e la quantità di spazio di archiviazione utilizzata dal database.
Per saperne di più, consulta Prezzi di Spanner.
Passaggi successivi
- Scopri come creare e gestire le partizioni di istanza.
- Scopri come creare e gestire i posizionamenti dei dati.