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, 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à 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à alla 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 dell'istanza principale denominata default. Se non crei partizioni dell'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 dell'istanza aggiuntive nell'istanza.
Per utilizzare il partizionamento geografico in un database:
Crea partizioni dell'istanza aggiuntive nell'istanza. Queste partizioni dell'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 dell'istanza predefinita dell'istanza.
Crea posizionamenti nel database associati alle partizioni dell'istanza aggiuntive. Il database può interagire con le partizioni dell'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 dell'istanza risiedono i dati delle righe. Se crei tabelle non di posizionamento nel database, Spanner archivia i dati nella partizione dell'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 il database; oppure
Il valore della chiave di posizionamento,
default, che archivia i dati nel posizionamento predefinito.
Per istruzioni su come utilizzare le partizioni dell'istanza, consulta Creare e gestire le partizioni dell'istanza.
Considerazioni importanti
Prima di creare le partizioni dell'istanza, i posizionamenti e le tabelle di posizionamento, considera quanto segue:
Località della partizione dell'istanza: seleziona attentamente le regioni delle partizioni dell'istanza che offrono i maggiori vantaggi per la tua applicazione.
Devi creare partizioni dell'istanza in un'istanza con una configurazione dell'istanza multiregionale.
Per una latenza migliore, ti consigliamo di selezionare una località della 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 dell'istanza aggiuntive (che possono essere regionali) con regioni leader che corrispondono alle regioni nella partizione dell'istanza 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 dell'istanza per istanza.
Limitazioni
Le seguenti limitazioni si applicano durante la Preview release di anteprima e sono soggette a modifiche o rimozioni al momento della release GA o successivamente:
- La partizione dell'istanza predefinita deve essere una configurazione multiregionale.
- Non puoi creare una partizione dell'istanza utilizzando una configurazione a due regioni.
- Per ogni partizione dell'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 dell'istanza nella pagina Partizioni dell'istanza della Google Cloud console.
- 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 abilitare la scalabilità automatica asimmetrica di sola lettura sulle partizioni dell'istanza non predefinite.
- Non puoi spostare la partizione dell'istanza in una configurazione dell'istanza diversa.
- Non puoi spostare un'istanza con partizioni dell'istanza. (Puoi spostare le singole righe in partizioni dell'istanza diverse, quindi non devi spostare l'istanza.)
- L'utilizzo delle partizioni dell'istanza non garantisce la conformità ai requisiti normativi.
- 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 dell'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 dell'istanza predefinita deve essere una configurazione multiregionale.
Controllo dell'accesso con IAM
Per creare e gestire le partizioni dell'istanza, devi disporre delle autorizzazioni spanner.instancePartitions.create, spanner.instancePartitions.update e spanner.instancePartitions.delete. Se devi solo visualizzare le partizioni dell'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 dell'istanza. Dopo aver creato una partizione dell'istanza aggiuntiva, si visualizza un filtro a discesa aggiuntivo per le partizioni dell'istanza nella pagina Approfondimenti di sistema della Google Cloud console. La selezione predefinita è la visualizzazione delle metriche per Tutte le partizioni dell'istanza. Puoi utilizzare il menu a discesa per filtrare le metriche per una partizione dell'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 dell'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 dell'istanza del backup originale.
- Ogni partizione dell'istanza nell'istanza di destinazione deve utilizzare la stessa configurazione dell'istanza del backup originale.
Gestore della scalabilità automatica gestito
Puoi abilitare il gestore della scalabilità automatica gestito su partizioni dell'istanza. Quando abiliti il gestore della scalabilità automatica gestito, Spanner regola automaticamente le dimensioni della partizione dell'istanza. Il gestore della scalabilità automatica gestito reagisce alle modifiche del carico di lavoro 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, oppure lo scale down, rimuovendo la capacità di calcolo dalla partizione dell'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 dell'istanza.
- Scopri come creare e gestire i posizionamenti dei dati.