Questa pagina presenta il partizionamento geografico e ne spiega il funzionamento 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 consente di partizionare le righe nel database, offrendo 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 con sharding.
- Funzionalità di database globali: il partizionamento geografico offre funzionalità di database come transazioni globali, spostamento dei dati tra regioni e applicazione dell'unicità tra regioni geografiche.
- Conformità della residenza dei dati: Spanner fornisce impegni relativi alla residenza dei dati a livello di posizionamento. Per informazioni, consulta Compatibilità della residenza dei dati per i database che utilizzano il partizionamento geografico.
Ecco alcuni 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 dell'istanza principale denominata partizione dell'istanza default. Se non crei partizioni di istanze 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 istanze aggiuntive nella tua istanza. Queste partizioni delle istanze create dagli utenti hanno una propria configurazione (regionale o multiregionale) e un proprio numero di nodi.
Crea il tuo database come faresti normalmente. Il database ha un posizionamento predefinito associato alla partizione dell'istanza predefinita.
Crea posizionamenti nel database associati alle partizioni dell'istanza aggiuntive. Il database può interagire con le partizioni di istanza aggiuntive create nella stessa istanza.
Crea tabelle di posizionamento con un attributo chiave di posizionamento. Devi utilizzare la chiave di posizionamento nelle istruzioni DML per specificare in quale partizione dell'istanza si trovano i dati delle righe. Se crei tabelle senza posizionamento nel database, Spanner archivia i dati nella partizione dell'istanza predefinita.
La chiave di posizionamento per ogni riga di 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 memorizza i dati nel posizionamento predefinito.
Per istruzioni su come utilizzare le partizioni delle istanze, consulta Crea e gestisci le partizioni delle istanze.
Considerazioni importanti
Prima di creare le partizioni, i posizionamenti e le tabelle di posizionamento delle istanze, tieni presente quanto segue:
Località delle partizioni di istanza: seleziona con attenzione le regioni delle partizioni di istanza che offrono i maggiori vantaggi per la tua applicazione.
Devi creare partizioni di istanze in un'istanza con una configurazione di istanza multiregionale.
Per una latenza migliore, ti consigliamo di selezionare una località di partizione dell'istanza predefinita multiregionale con regioni di lettura/scrittura e di sola lettura che coprano tutte le giurisdizioni richieste dalla tua applicazione. Quindi, crea partizioni di istanze aggiuntive (che possono essere regionali) con regioni leader che corrispondono alle regioni nella partizione di istanze predefinita multiregionale.
Numero di partizioni dell'istanza: un numero eccessivo di partizioni dell'istanza può comportare un overhead, mentre un numero troppo basso potrebbe non offrire vantaggi sufficienti. Puoi creare un massimo di dieci partizioni di istanze per istanza.
Limitazioni
Le seguenti limitazioni si applicano durante la fase di rilascio in anteprima e sono soggette a modifiche o rimozione al momento del rilascio in GA o successivamente:
- La partizione dell'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 dell'istanza che utilizza la stessa configurazione dell'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 dell'istanza. - Per ogni nodo nella partizione dell'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 console Google Cloud .
- Per ogni nodo nella partizione dell'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 su partizioni di istanze non predefinite.
- Non puoi spostare la partizione dell'istanza in una configurazione dell'istanza diversa.
- Non puoi spostare un'istanza con database che utilizzano posizionamenti aggiuntivi che puntano alla partizione dell'istanza predefinita.
- I flussi di modifiche in tempo reale non supportano i dati partizionati.
- Se utilizzi un'istruzione DML
INSERToDELETEper una tabella di posizionamento, questa istruzione deve essere l'unica nella transazione. - La modalità di transazione di lettura/scrittura consente di fare riferimento solo alle chiavi primarie di una tabella di posizionamento nella clausola
WHERE. Se devi fare riferimento a una colonna di una tabella di posizionamento che non è una chiave primaria 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 partizionato o trova le chiavi primarie in una query di transazione di sola lettura, quindi, 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 istanze con dimensioni granulari inferiori a un nodo (1000 unità di elaborazione).
- Non puoi modificare un posizionamento. Puoi invece creare un nuovo posizionamento, utilizzare DML partizionato per aggiornare il posizionamento dei dati in un nuovo posizionamento, quindi eliminare il posizionamento originale.
Controllo dell'accesso con IAM
Devi disporre delle autorizzazioni spanner.instancePartitions.create,
spanner.instancePartitions.update e spanner.instancePartitions.delete
per creare e gestire le partizioni delle istanze. Se devi solo visualizzare
le partizioni dell'istanza, devi disporre dell'autorizzazione spanner.instancePartitions.list
o spanner.instancePartitions.get. Per saperne di più, consulta la panoramica di IAM.
Per informazioni su come concedere le autorizzazioni IAM di Spanner, consulta Applica le autorizzazioni IAM.
Monitoraggio
Spanner fornisce diverse metriche per aiutarti a monitorare le partizioni delle istanze. Dopo aver creato una partizione di istanza aggiuntiva, vedrai un filtro a discesa aggiuntivo per Partizioni di istanza nella pagina Insight di sistema nella console Google Cloud . La selezione predefinita mostra le metriche per Tutte le partizioni delle istanze. Puoi utilizzare il menu a discesa per filtrare le metriche per una partizione di istanza specifica.
Per scoprire di più sul monitoraggio delle risorse Spanner, consulta Monitora le istanze con Cloud Monitoring.
Backup
Puoi creare backup completi per i database che utilizzano il partizionamento geografico. Non puoi eliminare la partizione dell'istanza se la utilizzi in un backup. Per saperne di più, consulta Crea 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 delle partizioni dell'istanza del backup originale.
- Ogni partizione dell'istanza nella destinazione deve utilizzare la stessa configurazione dell'istanza del backup originale.
Gestore della scalabilità automatica gestito
Puoi attivare il gestore della scalabilità automatica gestito sulle partizioni delle istanze. Quando attivi il gestore della scalabilità automatica, Spanner regola automaticamente le dimensioni della partizione dell'istanza. Il gestore della scalabilità automatica gestito reagisce alle modifiche del workload o delle esigenze di archiviazione della partizione dell'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 dell'istanza, o fare lo scale down, rimuovendo capacità di calcolo dalla partizione dell'istanza.
Prezzi
Non sono previsti costi aggiuntivi per l'utilizzo del partizionamento geografico. Ti verranno addebitati i prezzi standard di Spanner per la quantità di capacità di calcolo utilizzata dall'istanza e per la quantità di spazio di archiviazione utilizzata dal database.
Per saperne di più, consulta i prezzi di Spanner.
Passaggi successivi
- Scopri come creare e gestire le partizioni delle istanze.
- Scopri come creare e gestire i posizionamenti dei dati.