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 posizioni 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à 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à alla residenza dei dati: Spanner fornisce impegni di residenza dei dati a livello di posizionamento. Per informazioni, vedi Compatibilità della residenza dei dati per i database che utilizzano il partizionamento geografico.
Di seguito sono riportati alcuni casi d'uso comuni.
Dati correlati agli utenti: partiziona geograficamente i dati correlati agli utenti per elaborarli e archiviarli in una regione più vicina all'utente.
Dati localizzati: informazioni specifiche per la località, come traffico ed eventi speciali.
Come funziona la suddivisione geografica
Tutte le istanze Spanner hanno una partizione dell'istanza principale chiamata partizione dell'istanza default
. Se non crei partizioni aggiuntive dell'istanza, tutti gli oggetti di database vengono archiviati nella partizione predefinita, che si trova nella stessa posizione della configurazione dell'istanza. Se vuoi partizionare
i dati in un database, devi creare partizioni di istanze aggiuntive nella tua
istanza.
Per utilizzare il partizionamento geografico in un database:
Crea partizioni dell'istanza aggiuntive nell'istanza. Queste partizioni di istanze create dall'utente hanno una propria configurazione (regionale o multiregionale) e un proprio conteggio dei 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 aggiuntive dell'istanza. Il database può interagire con le partizioni aggiuntive dell'istanza 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 della riga. Se crei tabelle non di posizionamento nel database, Spanner archivia i dati nella partizione dell'istanza predefinita.
La chiave del posizionamento per ogni riga di una tabella dei posizionamenti 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
La coppia chiave-valore del posizionamento,
default
, che memorizza i dati nel posizionamento predefinito.
Per istruzioni su come utilizzare le partizioni delle istanze, vedi Creare e gestire le partizioni delle istanze.
Considerazioni importanti
Prima di creare partizioni, posizionamenti e tabelle di posizionamento dell'istanza, considera quanto segue:
Posizione della partizione dell'istanza: seleziona con attenzione le regioni della partizione dell'istanza che offrono i maggiori vantaggi per la tua applicazione.
Anche se puoi creare partizioni di istanze in un'istanza con una configurazione di istanza regionale, ti consigliamo di creare partizioni di istanze in un'istanza con una configurazione di istanza multiregionale, in modo che anche la posizione predefinita della partizione di istanza si trovi in una configurazione multiregionale.
Inoltre, seleziona una posizione di partizione dell'istanza predefinita multiregionale che disponga di regioni di lettura/scrittura e di sola lettura che coprano tutte le giurisdizioni richieste dalla tua applicazione. A questo punto, 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 sovraccarico, 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 Anteprima si applicano le seguenti limitazioni, che sono soggette a modifiche o rimozione al momento della release GA o successivamente:
- 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
utilizzi la stessa configurazione dell'istanza di base. Ad esempio, all'interno di
test-instance
, non puoi creare due partizioni,partition-1
epartition-2
, che utilizzano entrambeus-central1
come 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 inserite in ciascuna partizione dell'istanza nella pagina Partizioni dell'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 per le istanze con partizioni dell'istanza.
- Non puoi utilizzare le chiavi di crittografia gestite dal cliente per le istanze con partizioni di istanza.
- Non puoi creare partizioni di istanze in un'istanza con gestore della scalabilità automatica gestito abilitato.
- Non puoi spostare la partizione dell'istanza in una configurazione dell'istanza diversa.
- Non puoi spostare un'istanza con partizioni dell'istanza. Puoi spostare singole righe in partizioni di istanze diverse, in modo da non dover spostare l'istanza.
- L'utilizzo delle partizioni delle istanze non garantisce la conformità ai requisiti normativi.
- I flussi di modifiche non supportano i dati partizionati.
- Per utilizzare il partizionamento geografico, devi creare un nuovo database vuoto e impostare l'opzione
opt_in_dataplacement_preview
sutrue
. Per saperne di più, consulta la pagina Creare e gestire le partizioni delle istanze. - Se utilizzi un'istruzione DML
INSERT
oDELETE
per una tabella di posizionamento, questa deve essere l'unica istruzione 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 chiave non primaria di una tabella dei posizionamenti nella clausolaWHERE
, puoi utilizzare una delle seguenti alternative:- Se hai bisogno solo dell'accesso in 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 gli schemi denominati.
- Non puoi creare partizioni istanza nelle istanze di prova gratuita o nelle istanze con dimensioni granulari inferiori a un nodo (1000 unità di elaborazione).
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 ulteriori informazioni, consulta la 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, nella pagina Approfondimenti di sistema della console Google Cloud viene visualizzato un ulteriore filtro a discesa per le partizioni dell'istanza. La selezione predefinita prevede la visualizzazione delle metriche per Tutte le partizioni dell'istanza. 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 Monitorare le istanze con Cloud Monitoring.
Prezzi
Non è previsto alcun costo aggiuntivo per l'utilizzo del partizionamento geografico. Ti viene addebitato il prezzo standard di Spanner per la quantità di capacità di calcolo utilizzata dalla tua istanza e la quantità di spazio di archiviazione utilizzata dal tuo database.
Per ulteriori informazioni, consulta la pagina Prezzi di Spanner.
Passaggi successivi
- Scopri come creare e gestire le partizioni delle istanze.
- Scopri come creare e gestire i posizionamenti dei dati.