Panoramica dei backup di Bigtable

Questa pagina fornisce una panoramica dei backup di Bigtable. I contenuti qui presentati sono destinati agli amministratori e agli sviluppatori di Bigtable.

I backup di Bigtable consentono di salvare una copia dello schema e dei dati di una tabella per poi ripristinarli dal backup a una nuova tabella in un secondo momento. Puoi creare backup manualmente o abilitare backup automatico per consentire a Bigtable di creare backup giornalieri. Puoi anche creare una copia di un backup.

Prima di leggere questa pagina, dovresti acquisire familiarità con la panoramica di Bigtable e la gestione delle tabelle.

Funzionalità

  • Completamente integrato: i backup sono gestiti interamente dal servizio Bigtable, senza la necessità di importazione o esportazione.
  • Incrementale: un backup condivide lo spazio di archiviazione fisico con la tabella di origine e altri backup della tabella.
  • Conveniente: l'utilizzo dei backup di Bigtable consente di evitare i costi associati all'esportazione, all'archiviazione e all'importazione dei dati utilizzando altri servizi.
  • Scadenza automatica: ogni backup ha una data di scadenza definita dall'utente che può essere fino a 90 giorni dopo la creazione del backup. Puoi archiviare una copia di un backup per un massimo di 30 giorni.
  • Opzioni di ripristino flessibili: puoi eseguire il ripristino da un backup in una tabella in un'istanza diversa da cui è stato creato il backup.
  • Backup automatico: abilita il backup automatico per consentire a Bigtable di creare backup giornalieri.

Casi d'uso

I backup sono utili per i seguenti casi d'uso:

  • Continuità aziendale
  • Conformità normativa
  • Test e sviluppo
  • Ripristino di emergenza

Considera i seguenti scenari di ripristino di emergenza:

Obiettivo Strategia di backup Strategia di ripristino
Protezione dall'errore umano: vuoi avere sempre a disposizione un backup recente dei dati in caso di eliminazione o danneggiamento accidentale. Determina la pianificazione di creazione dei backup più adatta alle tue esigenze aziendali, ad esempio ogni giorno. Facoltativamente, crea copie periodiche dei backup e archiviale in un progetto o in una regione diversi per aumentare l'isolamento e la protezione. Per una protezione ancora maggiore, archivia le copie di backup in un progetto o in un'istanza con autorizzazioni di accesso limitato. Ripristina il backup o la copia in una nuova tabella, quindi reindirizza le richieste alla nuova tabella.
Non disponibilità della zona: devi assicurarti che, nell'improbabile caso in cui una zona Google Cloud diventi non disponibile, i tuoi dati siano ancora disponibili. Crea backup con regolarità, ad esempio ogni giorno. Quindi, crea periodicamente una copia del backup più recente e archiviala su uno o più cluster in zone diverse (facoltativamente in un'istanza o un progetto diversi). Se la zona in cui il cluster di gestione non è disponibile, esegui il ripristino dalla copia di backup remoto in una nuova tabella, quindi reindirizza le richieste alla nuova tabella.
Danneggiamento dei dati: utilizza un backup per recuperare alcuni dati di una tabella, ad esempio quando parte della tabella di origine è danneggiata. Crea periodicamente backup dei tuoi dati. Ripristina dal backup a una nuova tabella nella nuova istanza. Quindi scrivi un'applicazione utilizzando una libreria client Bigtable o Dataflow che legge dalla nuova tabella e poi scrive i dati nella tabella di origine. Dopo aver copiato i dati nella tabella originale, elimina la nuova tabella.

Utilizzo dei backup di Bigtable

Per i backup di Bigtable sono disponibili le seguenti azioni. In tutti i casi, il progetto, l'istanza e il cluster di destinazione devono già esistere. Non puoi creare queste risorse come parte di un'operazione di backup. Non puoi creare una copia di una copia di backup.

Action (Azione) Opzioni destinazione
Crea backup
  • Qualsiasi cluster nella stessa istanza della tabella di origine
Ripristina da un backup in una nuova tabella
  • Qualsiasi istanza
  • Qualsiasi regione Bigtable
  • Qualsiasi progetto
Copiare un backup
  • Qualsiasi istanza
  • Qualsiasi regione Bigtable
  • Qualsiasi progetto

Consulta Gestione dei backup per istruzioni dettagliate su queste azioni e su operazioni come l'aggiornamento e l'eliminazione dei backup.

Utilizza quanto segue per lavorare con i backup di Bigtable:

  • Nella console Google Cloud
  • Google Cloud CLI
  • Le librerie client di Cloud Bigtable

Puoi anche accedere direttamente all'API Cloud Bigtable Admin, ma ti consigliamo vivamente di farlo solo se non puoi utilizzare una libreria client di Cloud Bigtable che effettua chiamate di backup all'API.

Come funzionano i backup di Bigtable

La creazione di un backup implica la comprensione dell'archiviazione e della conservazione dei backup in Bigtable.

Spazio di archiviazione dei backup

Un backup della tabella può essere creato manualmente oppure abilitare il backup automatico per consentire a Bigtable di eseguire i backup giornalieri. Il backup di una tabella viene archiviato su un cluster in un'istanza. In caso di backup manuali, il backup della tabella viene archiviato in un cluster nell'istanza selezionata. Quando il backup automatico è abilitato, un backup della tabella viene archiviato in ogni cluster nell'istanza.

Il backup di una tabella include tutti i dati che erano presenti nella tabella al momento della creazione del backup nel cluster in cui viene creato. Un backup non è mai più grande delle dimensioni della tabella di origine al momento della creazione.

I backup di Bigtable sono incrementali. La quantità di spazio di archiviazione utilizzata da un backup dipende dalle dimensioni della tabella e dalla misura in cui può condividere l'archiviazione dei dati non modificati con la tabella originale o altri backup della stessa tabella. Per questo motivo, le dimensioni di un backup dipendono dalla quantità di dati divergenti dal backup precedente.

Puoi creare fino a 150 backup per tabella per cluster.

Puoi eliminare una tabella che contiene un backup. Per proteggere i tuoi backup, non puoi eliminare un cluster contenente un backup e non puoi eliminare un'istanza che contiene uno o più backup in un cluster.

Un backup esiste ancora dopo il ripristino in una nuova tabella. Puoi eliminarlo o lasciarlo scadere quando non ti serve più. Lo spazio di archiviazione del backup non conta ai fini del limite di archiviazione dei nodi per un progetto.

I dati nei backup sono criptati.

Conservazione

Puoi specificare un periodo di conservazione fino a 90 giorni per un backup. Se crei una copia di un backup, il periodo di conservazione massimo per la copia è di 30 giorni dalla data di creazione della copia.

Per le tabelle in cui è abilitato il backup automatico, il periodo di conservazione predefinito è di 3 giorni. Puoi modificare il periodo di conservazione per un backup fino a un massimo di 90 giorni dalla data di creazione del backup.

Archiviazione post-ripristino

Il costo di archiviazione per una nuova tabella ripristinata da un backup è uguale a quello di qualsiasi tabella.

Una tabella ripristinata da un backup potrebbe non consumare la stessa quantità di spazio di archiviazione della tabella originale e le dimensioni potrebbero diminuire dopo il ripristino. La differenza di dimensione dipende da quanto recentemente si è verificata la compazione sul cluster di origine e su quello di destinazione.

Poiché la compattazione avviene su base continuativa, è possibile che avvenga non appena viene creata la tabella. Tuttavia, la compattazione può richiedere fino a una settimana.

Una nuova tabella ripristinata da un backup non eredita i criteri di garbage collection della tabella di origine. Configura i criteri di garbage collection nella nuova tabella prima di iniziare a scrivere nuovi dati nella tabella. Per ulteriori informazioni, consulta Configurare la garbage collection.

Costi

Se si utilizzano i backup si applicano i costi di rete standard. Non viene addebitato alcun costo per le operazioni di backup, incluse la creazione, la copia o il ripristino da un backup.

Costi di archiviazione

Per archiviare un backup o una copia di quest'ultimo, ti viene addebitata la tariffa di archiviazione di backup standard per la regione in cui si trova il cluster che contiene la copia di backup o di backup.

Un backup è una copia logica completa di una tabella. Dietro le quinte, Bigtable ottimizza l'utilizzo dello spazio di archiviazione per il backup. Questa ottimizzazione significa che un backup è incrementale: condivide l'archiviazione fisica con la tabella originale o con altri backup della tabella, se possibile. A causa delle ottimizzazioni dello spazio di archiviazione integrate di Bigtable, a volte il costo per l'archiviazione di un backup o di una copia di backup potrebbe essere inferiore a quello di una copia fisica completa del backup della tabella.

Nelle istanze replicate in cui è abilitato il backup automatico, i costi di archiviazione potrebbero essere più elevati perché i backup vengono creati ogni giorno su ciascun cluster.

Costi della copia di un backup

Quando crei la copia di un backup in una regione diversa da quella del backup di origine, ti vengono addebitate le tariffe di rete standard per il costo della copia dei dati nel cluster di destinazione. Non ti viene addebitato il traffico di rete quando crei una copia nella stessa regione del backup di origine.

Costi durante il ripristino

Quando ripristini una nuova tabella da un backup, ti viene addebitato il costo di rete della replica. Se la nuova tabella si trova in un'istanza che utilizza la replica, ti viene addebitato un costo di replica una tantum per i dati da copiare in tutti i cluster nell'istanza.

Se esegui il ripristino su un'istanza diversa da quella in cui è stato creato il backup e l'istanza del backup e quella di destinazione non hanno almeno un cluster nella stessa regione, ti viene addebitato un costo una tantum per la copia iniziale dei dati nel cluster di destinazione alle tariffe di rete standard.

CMEK

Quando crei un backup in un cluster protetto da una chiave di crittografia gestita dal cliente (CMEK), il backup è bloccato sulla versione principale della chiave CMEK del cluster al momento dell'esecuzione. Una volta creato il backup, non è possibile modificarne la chiave e la versione, anche se la chiave KMS viene ruotata.

Quando esegui il ripristino da un backup, la versione della chiave su cui il backup è bloccato deve essere abilitata affinché il processo di decriptazione del backup abbia esito positivo. La nuova tabella è protetta con la versione primaria più recente della chiave CMEK per ogni cluster nell'istanza di destinazione. Se vuoi eseguire il ripristino da un backup protetto da CMEK su un'istanza diversa, anche l'istanza di destinazione deve essere protetta da CMEK, ma non deve avere la stessa configurazione CMEK dell'istanza di origine.

Considerazioni sulla replica

In questa sezione vengono descritti concetti aggiuntivi da comprendere per il backup e il ripristino di una tabella in un'istanza che utilizza la replica.

Replica e backup

Quando esegui manualmente il backup di una tabella in un'istanza replicata, scegli il cluster in cui creare e archiviare il backup. Per le tabelle in cui è abilitato il backup automatico, viene eseguito un backup giornaliero su ogni cluster nell'istanza.

Non è necessario interrompere la scrittura nel cluster che contiene il backup, ma è importante capire come vengono gestite le scritture replicate nel cluster.

Un backup è una copia della tabella nel suo stato nel cluster in cui è archiviato, al momento della creazione del backup. I dati della tabella che non sono ancora stati replicati da un altro cluster nell'istanza non sono inclusi nel backup.

Ogni backup ha un'ora di inizio e di fine. Le scritture inviate al cluster poco prima o durante l'operazione di backup potrebbero non essere incluse nel backup. Due fattori contribuiscono a questa incertezza:

  • Potrebbe essere inviata una scrittura a una sezione della tabella che il backup ha già copiato.
  • Una scrittura in un altro cluster potrebbe non essere stata replicata nel cluster che contiene il backup.

In altre parole, è possibile che alcune scritture con un timestamp precedente all'ora del backup non vengano incluse nel backup. Questo vale anche per i backup creati quando è abilitato il backup automatico. I backup di un'istanza non sono copie esatte l'una dell'altra, perché i tempi di backup possono variare da cluster a cluster.

Se questa incoerenza non è accettabile per i tuoi requisiti aziendali, puoi utilizzare un token di coerenza con le richieste di scrittura per assicurarti che tutte le operazioni di scrittura replicate siano incluse in un backup.

Replica e ripristino

Quando ripristini un backup in una nuova tabella, la replica da e verso gli altri cluster dell'istanza viene avviata immediatamente dopo il completamento dell'operazione di ripristino nel cluster di destinazione.

Prestazioni

Quando crei backup, segui le best practice riportate di seguito per assicurarti che le prestazioni rimangano ottimali.

Prestazioni durante il backup

La creazione di un backup di solito richiede meno di un minuto, anche se può richiedere fino a un'ora. In circostanze normali, la creazione di backup non influisce sulle prestazioni di pubblicazione.

Per prestazioni ottimali, non creare un backup di una singola tabella più di una volta ogni cinque minuti. Creare backup con maggiore frequenza può portare a un aumento osservabile della latenza di gestione.

Prestazioni durante il ripristino

Il ripristino da un backup a una tabella in un'istanza a cluster singolo richiede alcuni minuti. Nelle istanze replicate, il ripristino richiede più tempo perché i dati devono essere copiati in tutti i cluster. Bigtable sceglie sempre la route più efficiente per copiare i dati.

Se esegui il ripristino su un'istanza diversa da quella in cui è stato creato il backup, l'operazione di ripristino richiede più tempo rispetto a quando esegui il ripristino nella stessa istanza. Questo è particolarmente vero se l'istanza di destinazione non ha un cluster nella stessa zona di quello in cui è stato creato il backup.

Il ripristino di una tabella più grande richiede più tempo rispetto a una tabella più piccola.

Se hai un'istanza SSD, potresti inizialmente riscontrare una latenza di lettura più elevata, anche dopo il completamento di un ripristino, mentre la tabella è ottimizzata. Puoi controllare lo stato in qualsiasi momento durante l'operazione di ripristino per vedere se l'ottimizzazione è ancora in corso.

Se esegui il ripristino in un'istanza diversa da quella in cui è stato creato il backup, l'istanza di destinazione può utilizzare l'archiviazione HDD o SSD. Non è necessario utilizzare lo stesso tipo di archiviazione dell'istanza di origine.

Controllo dell'accesso

Le autorizzazioni IAM controllano l'accesso alle operazioni di backup e ripristino. Le autorizzazioni di backup sono a livello di istanza e si applicano a tutti i backup nell'istanza.

L'account che utilizzi per creare il backup di una tabella deve avere l'autorizzazione per leggere la tabella e creare backup nell'istanza in cui si trova la tabella (istanza di origine).

L'account che utilizzi per copiare un backup deve disporre dell'autorizzazione per leggere il backup di origine e per creare un backup nell'istanza e nel progetto di destinazione.

L'account che utilizzi per ripristinare una nuova tabella da un backup deve disporre dell'autorizzazione per creare una tabella nell'istanza in cui stai eseguendo il ripristino.

Action (Azione) Autorizzazione IAM richiesta
Crea backup bigtable.tables.readRows, bigtable.backups.create
Richiedi un backup bigtable.backups.get
Elenco dei backup bigtable.backups.list
Eliminare un backup bigtable.backups.delete
Aggiorna un backup bigtable.backups.update
Copiare un backup bigtable.backups.read, bigtable.backups.create
Ripristina da un backup in una nuova tabella bigtable.tables.create, bigtable.backups.restore
Recupera un'operazione bigtable.instances.get
Elenca operazioni bigtable.instances.get

best practice

Prima di creare una strategia di backup, è necessario tenere presenti le best practice riportate di seguito.

Creazione dei backup

  • Non eseguire il backup di una tabella più di una volta ogni cinque minuti.
  • Quando esegui il backup di una tabella che utilizza la replica, scegli il cluster per archiviare il backup dopo aver considerato i seguenti fattori:
    • Costo. Un cluster nell'istanza potrebbe trovarsi in una regione con costi inferiori rispetto agli altri.
    • Vicinanza al server delle applicazioni. Ti consigliamo di archiviare il backup il più vicino possibile all'applicazione di pubblicazione.
    • Utilizzo spazio di archiviazione. Ti serve spazio di archiviazione sufficiente per conservare i backup man mano che si accumulano. A seconda del carico di lavoro, potresti avere cluster di dimensioni diverse o con utilizzo del disco diverso. Questo può influire sul cluster che scegli.
  • Se devi assicurarti che tutte le scritture replicate siano incluse in un backup quando esegui il backup di una tabella in un'istanza che utilizza la replica, utilizza un token di coerenza con le richieste di scrittura.

Ripristino dai backup

  • Pianifica in anticipo il nome da assegnare alla nuova tabella se devi eseguire il ripristino da un backup. La cosa fondamentale è essere preparati in anticipo in modo da non dover decidere quando si ha a che fare con un problema.
  • Se ripristini una tabella per un motivo diverso dall'eliminazione accidentale, assicurati che tutte le letture e le scritture vengano spostate nella nuova tabella prima di eliminare la tabella originale.
  • Se prevedi di eseguire il ripristino in un'istanza diversa, crea l'istanza di destinazione prima di avviare l'operazione di ripristino del backup.

Quote e limiti

Le richieste di backup e ripristino e lo spazio di archiviazione di backup sono soggetti a quote e limiti di Bigtable.

Limitazioni

Le seguenti limitazioni si applicano ai backup di Bigtable:

Generali

  • Non puoi leggere direttamente da un backup.
  • Un backup è la versione di una tabella in un singolo cluster in un momento specifico. I backup non rappresentano uno stato coerente. Lo stesso vale anche per i backup della stessa tabella in cluster diversi.
  • Non puoi eseguire il backup di più di una tabella in una singola operazione.
  • Non puoi esportare, copiare o spostare un backup di Bigtable in un altro servizio, come Cloud Storage.
  • I backup di Bigtable contengono solo dati di Bigtable e non sono integrati o correlati ai backup per altri servizi Google.

Ripristino

  • Non puoi ripristinare da un backup a una tabella esistente.
  • Puoi eseguire il ripristino solo su un'istanza già esistente. Bigtable non crea una nuova istanza durante il ripristino da un backup. Se l'istanza di destinazione specificata in una richiesta di ripristino non esiste, l'operazione di ripristino non va a buon fine.
  • Se esegui il ripristino da un backup su una tabella in un cluster SSD e poi elimini la tabella appena ripristinata, l'eliminazione della tabella potrebbe richiedere un po' di tempo perché Bigtable attende il completamento dell'ottimizzazione della tabella.

Copia in corso...

  • Non puoi creare una copia di un backup che avvenga entro 24 ore dalla scadenza.
  • Non puoi creare una copia di una copia di backup.

CMEK

  • Un backup protetto da CMEK deve essere ripristinato in una nuova tabella in un'istanza protetta da CMEK.
  • Quando crei una copia di un backup protetto da CMEK, anche il cluster di destinazione deve essere protetto da CMEK.

Passaggi successivi