Replica dei set di dati tra regioni
Con la replica del set di dati BigQuery, puoi configurare replica di un set di dati tra due regioni diverse o più regioni.
Panoramica
Quando crei un set di dati in BigQuery, selezioni la regione o in cui sono archiviati i dati. Una regione è una raccolta di dati centri all'interno di un'area geografica, mentre per più regioni si intende una grande che contiene due o più regioni geografiche. I tuoi dati vengono archiviati in uno di le regioni contenute e non viene replicato all'interno della località multiregionale. Per maggiori informazioni su regioni e regioni multiple, consulta BigQuery di località.
BigQuery archivia sempre copie dei tuoi dati in due diversi zone Google Cloud all'interno della località del set di dati. Una zona è un'area di deployment per le risorse Google Cloud all'interno di una regione. In tutte le regioni, la replica tra zone utilizza le doppie scritture sincrone. Selezione di una località multiregionale non fornisce la replica tra regioni o la ridondanza a livello di regione, quindi non esiste di aumento della disponibilità del set di dati in caso di interruzione del servizio a livello di regione. I dati sono in una singola regione all'interno della posizione geografica.
Per una maggiore ridondanza geografica, puoi replicare qualsiasi set di dati. BigQuery crea una replica secondaria del set di dati, che si trova in un'altra regione da te specificata. Questa replica viene poi replicata in modo asincrono tra due zone con l'altra regione, per un totale di quattro copie zonali.
Replica del set di dati
Se replichi un set di dati, BigQuery archivia i dati regione specificata.
Regione principale. Quando crei un set di dati per la prima volta, BigQuery lo colloca nella regione principale.
Regione secondaria. Quando aggiungi una replica di set di dati, BigQuery la inserisce nella regione secondaria.
Inizialmente, la replica nella regione principale è la replica principale, nella regione secondaria è la replica secondaria.
La replica principale è scrivibile e la replica secondaria è di sola lettura. Le scritture alla replica principale vengono replicate in modo asincrono nella replica secondaria. All'interno di ogni regione, i dati vengono archiviati in modo ridondante in due zone. Il traffico di rete non esce mai dalla rete Google Cloud.
Il seguente diagramma mostra la replica che si verifica quando un set di dati viene replicato:
Se la regione principale è online, puoi passare manualmente a quella secondaria replica. Per ulteriori informazioni, consulta Eseguire il passaggio della replica secondaria.
Prezzi
Ti viene addebitato quanto segue per i set di dati replicati:
- Spazio di archiviazione. I byte di spazio di archiviazione nella regione secondaria vengono fatturati come copia distinta nella regione secondaria. Consulta i prezzi dello spazio di archiviazione BigQuery.
- Replica dei dati. Per ulteriori informazioni su come viene addebitata la replica dei dati, consulta Prezzi della replica dei dati.
Capacità di calcolo nella regione secondaria
Per eseguire job e query sulla replica nella regione secondaria, devi acquistare slot nella regione secondaria o eseguire un delle query on demand.
Puoi utilizzare gli slot per eseguire query di sola lettura dall'istanza secondaria replica. Se promuovi la replica secondaria a principale, puoi utilizzare questi slot per scrivere nella replica.
Puoi acquistare lo stesso numero di slot che hai nell'offerta principale regione o un numero diverso di slot. Se acquisti meno slot, il rendimento delle query potrebbe essere interessato.
Considerazioni sulla località
Prima di aggiungere una replica del set di dati, devi creare il set di dati iniziale da replicare in BigQuery se non esiste già. La la località della replica aggiunta sia impostata su quella specificata aggiungendo la replica. La posizione della replica aggiunta deve essere diversa da quella del set di dati iniziale. Ciò significa che i dati nel set di dati vengono replicati continuamente tra la posizione in cui è stato creato il set di dati e la posizione della replica. Per le repliche che richiedono il co-allocamento, come visualizzazioni, visualizzazioni materializzate o tabelle esterne non BigLake, l'aggiunta di una replica in una posizione diversa da quella dei dati di origine o non compatibile con questa potrebbe comportare errori di job.
Quando i clienti replicano un set di dati in più regioni, BigQuery garantisce che i dati si trovino solo nelle località in cui sono state create le repliche.
Requisiti per il colocation
L'uso della replica del set di dati dipende dai seguenti requisiti di colocation.
Cloud Storage
L'esecuzione di query sui dati su Cloud Storage richiede che il bucket Cloud Storage sia co-allocato con la replica. Utilizza le considerazioni sulla posizione delle tabelle esterne per decidere dove posizionare la replica.
Limitazioni
La replica dei set di dati BigQuery è soggetta alle seguenti limitazioni:
- La replica dei set di dati tra regioni è disponibile nello stesso progetto Google Cloud. Non puoi creare repliche se i set di dati di origine e di destinazione si trovano in progetti Google Cloud diversi.
- I dati negli stream che non sono stati sottoposti a commit non vengono replicati nella replica secondaria se la tabella viene scritta con l'API BigQuery Storage Write. Replica dei flussi di dati
o i dati provenienti dall'API BigQuery StorageWrite
tabledata.insertAll
fa il "best effort" e potrebbe notare un ritardo di replica elevato. - L'API BigQuery Storage Read non supporta la lettura dalle tabelle contenute nella replica del set di dati secondario. A legge da una tabella contenuta nella replica secondaria, la replica principale deve essere prima promossa.
- Le tabelle iniettate tramite Datastream in BigQuery utilizzando Change Data Capture non sono supportate.
- La replica e lo switchover vengono gestiti tramite istruzioni DDL (Data Definition Language) SQL.
- Esiste un limite di una replica di ogni set di dati per ogni regione in più regioni. Non puoi creare due repliche secondarie dello stesso set di dati nella stessa regione di destinazione.
- Le risorse all'interno delle repliche sono soggette alle limitazioni descritte in Comportamento delle risorse.
- I tag di criterio e i criteri relativi ai dati associati non vengono replicati nella replica secondaria. Qualsiasi query che fa riferimento a colonne con tag dei criteri in regioni diverse dalla regione originale non va a buon fine, anche se la replica viene promossa.
- Viaggio nel tempo è disponibile solo nella scuola secondaria al termine della creazione della replica secondaria.
- Puoi replicare solo un set di dati con meno di 100.000 tabelle.
- Puoi aggiungere (e poi eliminare) al massimo 4 repliche nella stessa regione per set di dati al giorno.
- La larghezza di banda è limitata.
- Tabelle con crittografia gestita dal cliente
chiavi (CMEK) applicate non sono
interrogabile nella regione secondaria se il valore
replica_kms_key
non è configurato. - Le tabelle BigLake non sono supportate.
- Località di BigQuery Omni non sono supportati.
- Se stai configurando la replica dei dati per il ripristino di emergenza, non puoi configurare le seguenti coppie di regioni:
us-central1
-us
multiregioneus-west1
-us
(più regioni)eu-west1
-eu
(più regioni)eu-west4
-eu
multiregione
Comportamento delle risorse
Le seguenti operazioni non sono supportate sulle risorse all'interno della replica secondaria:
Se devi creare una copia di una risorsa in una replica secondaria, devi copiare la risorsa o eseguire una query, quindi materializzare i risultati all'esterno della replica secondaria. Ad esempio, usa CREA TABELLA COME SELEZIONA per creare una nuova risorsa dalla risorsa di replica secondaria.
Le repliche primarie e secondarie sono soggette alle seguenti differenze:
Replica principale della regione 1 | Replica secondaria della regione 2 | Note |
---|---|---|
Tabella BigLake | Tabella BigLake | Non supportati. |
Tabella esterna | Tabella esterna | Viene replicata solo la definizione della tabella esterna. La query ha esito negativo quando il bucket Cloud Storage non è collocato nella stessa località di replica. |
Vista logica | Vista logica | Viste logiche che fanno riferimento a un set di dati o a una risorsa che non si trova nella stessa posizione della vista logica non riesce quando viene eseguita una query. |
Tabella gestita | Tabella gestita | Nessuna differenza. |
Visualizzazione materializzata | Visualizzazione materializzata | Se una tabella a cui viene fatto riferimento non si trova nella stessa regione della vista materializzata, la query non va a buon fine. Le viste materializzate replicate potrebbero mostrare un'inattività superiore all'inattività massima della vista. |
Modello | Modello | Memorizzati come tabelle gestite. |
Funzione remota | Funzione remota | Le connessioni sono a livello di regione. Le funzioni remote che fanno riferimento a un set di dati o a una risorsa (connessione) che non si trova nella stessa posizione della funzione remota non vanno a buon fine quando vengono eseguite. |
Routine | Funzione definita dall'utente o stored procedure | Routine che fanno riferimento a un set di dati o a una risorsa che non si trova in la stessa posizione della routine ha esito negativo durante l'esecuzione. Qualsiasi routine che fa riferimento a una connessione, ad esempio le funzioni remote, non funziona al di fuori della regione di origine. |
Criterio di accesso riga | Criterio di accesso riga | Nessuna differenza. |
Indice della Ricerca | Indice della Ricerca | Non replicato. |
Stored procedure | Stored procedure | Le stored procedure che fanno riferimento a un set di dati o a una risorsa non situata nella stessa posizione della stored procedure non vanno a buon fine quando vengono eseguite. |
Clona tabella | Tabella gestita | Fatturato come copia approfondita nella replica secondaria. |
Snapshot tabella | Snapshot tabella | Fatturato come copia approfondita nella replica secondaria. |
Funzione con valore di tabella (TVF) | TVF | TVF che fanno riferimento a un set di dati o a una risorsa che non si trova stessa posizione dell'errore TVF durante l'esecuzione. |
Funzioni definite dall'utente | Funzioni definite dall'utente | Le funzioni UDF che fanno riferimento a un set di dati o a una risorsa non situata nella stessa posizione della funzione UDF non vanno a buon fine durante l'esecuzione. |
Scenari di interruzione del servizio
La replica tra regioni non è destinata a essere utilizzata come piano di ripristino di emergenza durante un'interruzione in una regione totale. In caso di interruzione totale della regione della replica principale, non puoi promuovere la replica secondaria. Poiché le repliche secondarie sono di sola lettura, non puoi eseguire job di scrittura sulla replica secondaria e non puoi promuovere la regione secondaria finché non viene ripristinata la regione della replica principale. Per ulteriori informazioni sulla preparazione per il ripristino di emergenza, consulta Ripristino di emergenza gestito.
La tabella seguente spiega l'impatto delle interruzioni totali della regione sui dati replicati:
Regione 1 | Regione 2 | Regione in cui si è verificato l'interruzione del servizio | Impatto |
---|---|---|---|
Replica principale | Replica secondaria | Regione 2 | I job di sola lettura in esecuzione nella regione 2 sulla replica secondaria non riescono. |
Replica principale | Replica secondaria | Regione 1 | Tutti i job in esecuzione nella regione 1 non riescono. I job di sola lettura continuano a essere eseguiti nella regione 2 in cui si trova la replica secondaria. I contenuti della regione 2 non sono aggiornati finché non viene eseguita la sincronizzazione con la regione 1. |
Usa replica del set di dati
Questa sezione descrive come replicare un set di dati, promuovere la replica secondaria ed eseguire job di lettura di BigQuery nella regione secondaria.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni necessarie per gestire le repliche, chiedi all'amministratore di concederti l'autorizzazione bigquery.datasets.update
.
Replicare un set di dati
Per replicare un set di dati, utilizza l'istruzione DDL ALTER SCHEMA ADD REPLICA
.
Puoi aggiungere una replica a qualsiasi set di dati che si trova in una o più regioni che non è già replicato in quella regione o in quella multiregione. Dopo aver aggiunto un parametro la replica iniziale, il completamento dell'operazione di copia iniziale richiede tempo. Puoi comunque eseguire query che fanno riferimento alla replica principale durante la replica dei dati, senza alcuna riduzione della capacità di elaborazione delle query. Non puoi replicare i dati all'interno delle località geografiche di una regione multipla.
Il seguente esempio crea un set di dati denominato my_dataset
nella regione us-central1
e aggiunge una replica nella regione us-east4
:
-- Create the primary replica in the us-central1 region. CREATE SCHEMA my_dataset OPTIONS(location='us-central1'); -- Create a replica in the secondary region. ALTER SCHEMA my_dataset ADD REPLICA `my_replica` OPTIONS(location='us-east4');
Per verificare quando la replica secondaria è stata creata correttamente, puoi eseguire query sulla colonna creation_complete
nella visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS
.
Promuovi la replica secondaria
Se la regione principale è online, puoi promuovere la replica secondaria. La promozione imposta la replica secondaria come principale scrivibile. Questo l'operazione viene completata entro pochi secondi se la replica secondaria viene con la replica principale. Se la replica secondaria non è aggiornata, la promozione non può essere completata finché non lo sarà. La replica secondaria non può essere promossa a principale se nella regione contenente l'istanza principale si verifica un'interruzione.
Tieni presente quanto segue:
- Tutte le scritture nelle tabelle restituiscono errori durante l'elaborazione della promozione. La vecchia replica principale diventa non scrivibile immediatamente all'inizio della promozione.
- Le tabelle che non sono completamente replicate al momento dell'avvio della promozione restaurano letture non aggiornate.
Per promuovere una replica a replica principale, utilizza il DDL ALTER SCHEMA SET
OPTIONS
dichiarazione
e imposta l'opzione primary_replica
.
Tieni presente quanto segue: - Devi impostare esplicitamente la località del job sulla regione secondaria nella query impostazioni. Consulta Specificare le località in BigQuery.
L'esempio seguente promuove la replica us-east4
come principale:
ALTER SCHEMA my_dataset SET OPTIONS(primary_replica = 'us-east4')
Per verificare quando la replica secondaria è stata promossa correttamente, puoi eseguire una query sulla colonna replica_primary_assignment_complete
nella visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS
.
Rimuovere una replica del set di dati
Per rimuovere una replica e interrompere la replica del set di dati, utilizza il metodo
ALTER SCHEMA DROP REPLICA
Istruzione DDL.
L'esempio seguente rimuove la replica us
:
ALTER SCHEMA my_dataset DROP REPLICA IF EXISTS `us`;
Per eliminare l'intero set di dati, devi prima eliminare eventuali repliche secondarie. Se
Eliminare l'intero set di dati, ad esempio utilizzando l'istruzione DROP
SCHEMA
, senza
l'eliminazione di tutte le repliche secondarie, viene visualizzato un errore.
Elenca le repliche del set di dati
Per elencare le repliche del set di dati in un progetto, esegui una query
INFORMATION_SCHEMA.SCHEMATA_REPLICAS
vista.
Esegui la migrazione dei set di dati
Puoi utilizzare la replica dei set di dati tra regioni per eseguire la migrazione dei set di dati da una
regione a un'altra. L'esempio seguente mostra il processo di migrazione
il set di dati my_migration
esistente dalla località multiregionale US
a EU
in più regioni utilizzando la replica tra regioni.
Replica il set di dati
Per iniziare il processo di migrazione, replica prima il set di dati nella regione in cui
in cui eseguire la migrazione dei dati. In questo scenario, eseguirai la migrazione
my_migration
nella località multiregionale EU
.
-- Create a replica in the secondary region. ALTER SCHEMA my_migration ADD REPLICA `eu` OPTIONS(location='eu');
Viene creata una replica secondaria denominata eu
nella regione multipla EU
.
La replica principale è il set di dati my_migration
nella regione multipla US
.
Promuovi la replica secondaria
Per continuare la migrazione del set di dati alla regione multipla EU
, promuovi la replica secondaria:
ALTER SCHEMA my_migration SET OPTIONS(primary_replica = 'eu')
Al termine della promozione, eu
è la replica principale. È accessibile in scrittura
replica.
Completare la migrazione
Per completare la migrazione dal multiregione US
al multiregione EU
,
elimina la replica us
. Questo passaggio non è obbligatorio, ma è utile se non
di una replica del set di dati che vada oltre
le tue esigenze di migrazione.
ALTER SCHEMA my_migration DROP REPLICA IF EXISTS us;
Il set di dati si trova nell'area multiregionale EU
e non esistono repliche di
il set di dati my_migration
. Hai eseguito la migrazione del set di dati alla regione piùEU
. L'elenco completo delle risorse di cui viene eseguita la migrazione è disponibile in Comportamento delle risorse.
Chiavi di crittografia gestite dal cliente (CMEK)
Le chiavi Cloud Key Management Service gestite dal cliente
non vengono replicate automaticamente quando crei una replica secondaria. Per mantenere la crittografia nel set di dati replicato, devi impostare replica_kms_key
per la posizione della replica aggiunta. Puoi impostare replica_kms_key
utilizzando l'istruzione DDL ALTER SCHEMA ADD REPLICA
.
La replica dei set di dati con CMEK si comporta come descritto nei seguenti scenari:
Se il set di dati di origine ha un
default_kms_key
, devi fornire unreplica_kms_key
creato nella regione del set di dati della replica quando utilizzi l'istruzione DDLALTER SCHEMA ADD REPLICA
.Se nel set di dati di origine non è impostato un valore per
default_kms_key
, non puoi impostarereplica_kms_key
.Se utilizzi la rotazione delle chiavi Cloud KMS su uno (o su entrambi) dei
default_kms_key
o delreplica_kms_key
, il set di dati replicato è ancora interrogabile dopo la rotazione delle chiavi.- La rotazione della chiave nella regione principale aggiorna la versione della chiave solo nelle tabelle create dopo la rotazione, per le tabelle esistenti prima della rotazione della chiave viene della chiave impostata prima della rotazione.
- Rotazione della chiave nella regione secondaria aggiorna tutte le tabelle nella replica secondaria alla nuova versione della chiave.
- Il passaggio della replica principale alla replica secondaria aggiorna tutte le tabelle nella replica secondaria (in precedenza replica principale) alla nuova versione della chiave.
- Se la versione della chiave impostata nelle tabelle nella replica primaria prima della rotazione della chiave viene eliminata, tutte le tabelle che utilizzano ancora la versione della chiave impostata prima della rotazione della chiave non è possibile eseguire query finché la versione della chiave non viene aggiornata. Per aggiornare la versione della chiave, la versione precedente deve essere attiva (non disattivata o eliminata).
Se nel set di dati di origine non è impostato un valore per
default_kms_key
, ma sono presenti singole tabelle nel set di dati di origine a cui è stata applicata una CMEK, quelle non è possibile eseguire query nel set di dati replicato. Per eseguire query sulle tabelle:- Aggiungi un valore
default_kms_key
per il set di dati di origine. - Quando crei un
nuova replica utilizzando l'istruzione DDL
ALTER SCHEMA ADD REPLICA
, imposta un valore per l'opzionereplica_kms_key
. È possibile eseguire query sulle tabelle CMEK nella regione di destinazione.
Tutte le tabelle CMEK nella regione di destinazione utilizzano lo stesso
replica_kms_key
, a prescindere dalla chiave utilizzata nella regione di origine.- Aggiungi un valore
Creare una replica con CMEK
L'esempio seguente crea una replica nella regione us-west1
con un
Valore di replica_kms_key
impostato. Per la chiave CMEK, concedi all'account di servizio BigQuery l'autorizzazione per la crittografia e la decrittografia.
-- Create a replica in the secondary region. ALTER SCHEMA my_dataset ADD REPLICA `us-west1` OPTIONS(location='us-west1', replica_kms_key='my_us_west1_kms_key_name');
Limitazioni CMEK
La replica dei set di dati con CMEK applicata è soggetta alle seguenti limitazioni:
Non puoi aggiornare la chiave Cloud KMS replicata dopo che la replica è è stato creato.
Non puoi aggiornare il valore
default_kms_key
nel set di dati di origine dopo aver creato le repliche del set di dati.Se il valore
replica_kms_key
fornito non è valido nella regione di destinazione, il set di dati non verrà replicato.Le tabelle con crittografia CMEK replicate nella regione di destinazione sono visibili, ma non è possibile eseguire query o scrivere perché la chiave CMEK di origine non è riconosciuta nella regione di destinazione.
Passaggi successivi
- Scopri come utilizzare Prenotazioni BigQuery.
- Scopri di più sulle funzionalità di affidabilità di BigQuery.