Questa pagina introduce e spiega il funzionamento del partizionamento geografico 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
I vantaggi del partizionamento geografico includono:
Riduce la latenza di scrittura e di lettura elevata consentendoti di archiviare i dati nella stessa posizione geografica della query.
Ottimizza i costi per i carichi di lavoro globali asimmetrici (ad esempio, utilizzando una partizione
us-central1
con 10 nodi e una partizioneasia-south1
con 2 nodi).
Di seguito sono riportati alcuni casi d'uso comuni:
Dati relativi agli utenti: partiziona geograficamente i dati relativi 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 il partizionamento geografico
Tutte le istanze Spanner hanno una partizione di istanza principale chiamata partizione default
. Se non crei partizioni aggiuntive, tutti gli oggetti del 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 aggiuntive nell'istanza.
Per utilizzare il partizionamento geografico in un database:
Crea partizioni aggiuntive nell'istanza. Queste partizioni create dall'utente hanno una propria configurazione (regionale o multi-regionale) e un proprio numero di nodi.
Crea il tuo database come faresti normalmente. Il database ha un posizionamento predefinito associato alla partizione predefinita dell'istanza.
Crea posizionamenti nel database associati alle partizioni aggiuntive. Il database può interagire con le partizioni aggiuntive create nella stessa istanza.
Crea tabelle di posizionamento con un attributo chiave di posizionamento. Devi utilizzare la chiave di posizionamento negli enunciati DML per specificare la partizione in cui si trovano i dati delle righe. Se crei tabelle non di posizionamento nel database, Spanner memorizza questi dati nella partizione predefinita.
La chiave di 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
Il valore della chiave del posizionamento,
default
, che memorizza i dati nel posizionamento predefinito.
Per istruzioni su come utilizzare le partizioni, consulta creare e gestire le partizioni.
Considerazioni importanti
Prima di creare partizioni, posizionamenti e tavole di posizionamento, tieni presente quanto segue:
Posizione della partizione: seleziona con attenzione le regioni di partizione che offrono i maggiori vantaggi per la tua applicazione.
Sebbene sia possibile creare partizioni in un'istanza con una configurazione di istanze regionali, ti consigliamo di creare partizioni in un'istanza con una configurazione di istanze multiregionali in modo che la posizione predefinita della partizione sia anche in una configurazione multiregionale.
Inoltre, seleziona una posizione della partizione predefinita multi-regione con regioni di lettura/scrittura e di sola lettura che coprono tutte le giurisdizioni richieste dalla tua applicazione. Poi, crea partizioni aggiuntive (che possono essere regionali) con regioni leader corrispondenti a quelle della partizione predefinita multiregionale.
Numero di partizioni: troppe partizioni possono comportare un overhead, mentre un numero troppo ridotto potrebbe non offrire vantaggi sufficienti. Puoi creare un massimo di dieci partizioni per istanza.
Limitazioni
Le seguenti limitazioni si applicano durante la release Preview e sono soggette a modifiche o rimozione al momento della release GA o successivamente:
- Non puoi creare una partizione di istanze utilizzando una configurazione a due regioni.
- Per ogni partizione, 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 utilizzi la stessa configurazione di istanza di base. Ad esempio, in
test-instance
non puoi creare due partizioni,partition-1
epartition-2
, che utilizzano entrambeus-central1
come configurazione della partizione. - Per ogni nodo della partizione, puoi inserire un massimo di 100 milioni di righe di posizionamento. Puoi visualizzare il numero di righe di posizionamento inserite in ciascuna partizione nella pagina Partizioni 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 partizioni nelle istanze di prova gratuita o nelle istanze di dimensioni granulari più piccole di un nodo (1000 unità di elaborazione).
- Non puoi creare backup per le istanze con partizioni.
- Non puoi utilizzare le chiavi di crittografia gestite dal cliente per le istanze con partizioni.
- Non puoi creare partizioni di istanze in un'istanza con il gestore della scalabilità automatica abilitato.
- Non puoi spostare la partizione in una configurazione dell'istanza diversa.
- Non puoi spostare un'istanza con partizioni. Puoi spostare singole righe in partizioni diverse, quindi non è necessario spostare l'istanza.
- L'utilizzo delle partizioni 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 Creare e gestire le partizioni. - Se utilizzi un'istruzione DML
INSERT
oDELETE
per una tabella dei posizionamenti, questa deve essere l'unica istruzione nella transazione.
Controllo dell'accesso con IAM
Per creare e gestire le partizioni, devi disporre delle autorizzazioni spanner.instancePartitions.create
, spanner.instancePartitions.update
e spanner.instancePartitions.delete
. Se devi solo visualizzare le partizioni, 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 tue partizioni. Dopo aver creato un'altra partizione, viene visualizzato un altro filtro a discesa per le partizioni nella pagina Approfondimenti sistema della console Google Cloud. La selezione predefinita è mostrare le metriche per tutte le partizioni. Puoi utilizzare il menu a discesa per filtrare le metriche per una partizione specifica.
Per scoprire di più sul monitoraggio delle risorse Spanner, consulta Monitora le istanze con Cloud Monitoring.
Prezzi
Non è previsto alcun costo aggiuntivo per l'utilizzo del partizionamento geografico. Ti vengono addebitati i prezzi 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 sezione Prezzi di Spanner.
Passaggi successivi
- Scopri come creare e gestire le partizioni.
- Scopri come creare e gestire i posizionamenti dei dati.