Conservazione dei dati con Time Travel e fail-safe
Questo documento descrive i periodi di conservazione dei dati Time Travel e Fail-Safe per i set di dati. Durante i periodi di time travel e fail-safe, i dati che hai modificato o eliminato in qualsiasi tabella del set di dati continuano a essere archiviati nel caso in cui tu debba recuperarli.
Time travel e conservazione dei dati
Puoi accedere ai dati modificati o eliminati da qualsiasi punto all'interno della finestra di Time Travel, che copre gli ultimi sette giorni per impostazione predefinita. Il time travel ti consente di eseguire query sui dati aggiornati o eliminati, ripristinare una tabella o un dataset eliminato oppure ripristinare una tabella scaduta.
Puoi impostare la durata della finestra di viaggio nel tempo, da un minimo di due giorni a un massimo di sette giorni. Una finestra Time-Travel più lunga è utile nei casi in cui è importante poter recuperare dati aggiornati o eliminati. Un periodo di tempo più breve ti consente di risparmiare sui costi di archiviazione quando utilizzi il modello di fatturazione dell'archiviazione fisica. Questi risparmi non si applicano quando utilizzi il modello di fatturazione dello spazio di archiviazione logico. Per ulteriori informazioni su come il modello di fatturazione dell'archiviazione influisce sui costi, vedi Fatturazione.
Configura la finestra di spostamento cronologico
Imposti la finestra di spostamento cronologico a livello di set di dati o di progetto. Queste impostazioni vengono quindi applicate a tutte le tabelle associate al set di dati o al progetto.
Imposta la finestra di spostamento cronologico a livello di progetto
Per specificare la finestra di spostamento cronologico predefinita a livello di progetto, puoi utilizzare le istruzioni DDL (Data Definition Language). Per scoprire come impostare la finestra temporale a livello di progetto, consulta Gestire le impostazioni di configurazione.
Impostare la finestra di spostamento cronologico a livello di set di dati
Per specificare o modificare la finestra di Time Travel per un set di dati, puoi utilizzare la consoleTrusted Cloud , lo strumento a riga di comando bq o l'API BigQuery.
- Per specificare la finestra di spostamento cronologico predefinita per i nuovi set di dati, consulta Creare set di dati.
- Per modificare o aggiornare la finestra di Time Travel per un set di dati esistente, consulta Aggiornare le finestre di Time Travel.
Quando modifichi una finestra di spostamento nel tempo, se il timestamp specifica un'ora al di fuori della finestra di spostamento nel tempo o precedente alla creazione della tabella, la query non va a buon fine e restituisce un errore simile al seguente:
TableID
was created at time which is before its allowed time travel intervaltimestamp
. Creation time:timestamp
Come funziona il viaggio nel tempo
BigQuery utilizza un formato di archiviazione a colonne. Ciò significa che i dati sono organizzati e archiviati per colonna anziché per riga. Quando hai una tabella con più colonne, i valori di ogni colonna in tutte le righe vengono memorizzati insieme in blocchi di archiviazione.
Quando modifichi una cella in una tabella BigQuery, modifichi un valore specifico all'interno di una riga e di una colonna specifiche. Poiché BigQuery archivia le colonne insieme, la modifica anche di una sola cella all'interno di una colonna in genere richiede la lettura dell'intero blocco di archiviazione contenente i dati della colonna per le righe interessate, l'applicazione della modifica e la scrittura di una nuova versione del blocco di archiviazione.
La funzionalità Time Travel funziona monitorando le versioni dei blocchi di archiviazione che compongono la tabella. Quando aggiorni i dati, BigQuery non si limita a modificare il blocco di archiviazione esistente. ma crea una nuova versione dei blocchi di archiviazione interessati con i dati aggiornati. La versione precedente viene conservata per scopi di cronologia.
BigQuery utilizza dimensioni dei file e blocchi di archiviazione adattivi. Le dimensioni dei blocchi di archiviazione non sono fisse, ma possono variare a seconda di fattori come le dimensioni della tabella e la distribuzione dei dati. La modifica anche di una sola cella in un blocco di archiviazione modifica i dati per quella colonna, potenzialmente interessando molte righe. Pertanto, l'unità di dati di cui viene eseguito il controllo delle versioni e inviata al time travel è spesso l'intero blocco di archiviazione che contiene i dati modificati di quella colonna, non solo una singola cella.
Per questo motivo, la modifica di una cella può comportare l'invio di più dati a Time Travel rispetto alle dimensioni della modifica.
In che modo la finestra di spostamento nel tempo influisce sul recupero di tabelle e set di dati
Una tabella o un set di dati eliminato utilizza la durata della finestra di Time Travel in vigore al momento dell'eliminazione.
Ad esempio, se la durata della finestra di recupero temporaneo è di due giorni e poi aumenti la durata a sette giorni, le tabelle eliminate prima di questa modifica sono ancora recuperabili solo per due giorni. Allo stesso modo, se la durata della finestra di spostamento indietro nel tempo è di cinque giorni e la riduci a tre giorni, le tabelle eliminate prima della modifica sono comunque recuperabili per cinque giorni.
Poiché le finestre di spostamento cronologico sono impostate a livello di set di dati, non puoi modificare la finestra di spostamento cronologico di un set di dati eliminato finché non viene ripristinato.
Se riduci la durata della finestra di Time Travel, elimini una tabella e poi ti rendi conto di aver bisogno di un periodo di recuperabilità più lungo per questi dati, puoi creare uno snapshot della tabella da un punto nel tempo precedente all'eliminazione della tabella. Devi farlo mentre la tabella eliminata è ancora recuperabile. Per saperne di più, vedi Creare uno snapshot di una tabella utilizzando Time Travel.
Spostamento nel tempo e accesso a livello di riga
Se una tabella ha o ha avuto policy di accesso a livello di riga, solo un amministratore della tabella può accedere ai dati storici della tabella.
È richiesta la seguente autorizzazione Identity and Access Management (IAM):
Autorizzazione | Risorsa |
---|---|
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
|
La tabella di cui vengono consultati i dati storici |
Il seguente ruolo BigQuery fornisce l'autorizzazione richiesta:
Role | Risorsa |
---|---|
roles/bigquery.admin
|
La tabella di cui vengono consultati i dati storici |
L'autorizzazione bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
non può essere aggiunta a un ruolo personalizzato.
Esegui questo comando per ottenere l'equivalente del timestamp Unix:
date -d '2023-08-04 16:00:34.456789Z' +%s000
Sostituisci l'ora UNIX
1691164834000
ricevuta dal comando precedente nello strumento a riga di comando bq. Esegui questo comando per ripristinare una copia della tabella eliminatadeletedTableID
in un'altra tabellarestoredTable
, all'interno dello stesso set di datimyDatasetID
:bq cp myProjectID:myDatasetID.deletedTableID@1691164834000 myProjectID:myDatasetID.restoredTable
Fail-safe
BigQuery fornisce un periodo di sicurezza. Durante il periodo di sicurezza, i dati eliminati vengono conservati automaticamente per altri sette giorni dopo il periodo di ripristino temporale, in modo che siano disponibili per il ripristino di emergenza. I dati sono recuperabili a livello di tabella. I dati vengono recuperati per una tabella dal punto nel tempo rappresentato dal timestamp dell'eliminazione della tabella. Il periodo di fail-safe non è configurabile.
Non puoi eseguire query o recuperare direttamente i dati nello spazio di archiviazione fail-safe. Per recuperare i dati dall'archiviazione fail-safe, contatta l'assistenza clienti Google Cloud.
Fatturazione
Se imposti il modello di fatturazione dello spazio di archiviazione in modo che utilizzi i byte fisici, ti vengono fatturati separatamente i byte utilizzati per il time travel e l'archiviazione fail-safe. L'archiviazione Time-Travel e Fail-Safe viene addebitata alla tariffa di archiviazione fisica attiva. Puoi configurare la finestra di spostamento nel tempo per bilanciare i costi di archiviazione con le tue esigenze di conservazione dei dati.
Se imposti il modello di fatturazione dello spazio di archiviazione in modo che utilizzi i byte logici, i costi totali dello spazio di archiviazione per Time Travel e Fail-Safe sono inclusi nella tariffa base addebitata.
La tabella seguente mostra un confronto tra i costi di archiviazione fisica e logica:
Modello di fatturazione | Per cosa paghi? |
---|---|
Spazio di archiviazione fisico (compresso) |
|
Spazio di archiviazione logico (non compresso) (impostazione predefinita) |
|
Se utilizzi lo spazio di archiviazione fisico, puoi visualizzare i byte utilizzati per lo spostamento cronologico e
la modalità sicura esaminando le colonne TIME_TRAVEL_PHYSICAL_BYTES
e
FAIL_SAFE_PHYSICAL_BYTES
nelle visualizzazioni
TABLE_STORAGE
e
TABLE_STORAGE_BY_ORGANIZATION
. Per un esempio di come utilizzare una di queste visualizzazioni per stimare i costi,
consulta
Previsione della fatturazione dell'archiviazione.
I costi di archiviazione si applicano ai dati di Time Travel e fail-safe, ma ti vengono addebitati solo se le tariffe di archiviazione dei dati non si applicano altrove in BigQuery. Si applicano i seguenti dettagli:
- Quando viene creata una tabella, non sono previsti costi per Time Travel o per l'archiviazione fail-safe.
- Se i dati vengono modificati o eliminati, ti viene addebitato il costo di archiviazione dei dati modificati o eliminati salvati tramite Time Travel durante la finestra di Time Travel e il periodo di sicurezza. Questo è simile ai prezzi di archiviazione per gli snapshot e i cloni delle tabelle.
Esempio di conservazione dei dati
La seguente tabella mostra come i dati eliminati o modificati si spostano tra le finestre di conservazione dello spazio di archiviazione. Questo esempio mostra una situazione in cui lo spazio di archiviazione attivo totale è di 200 GiB e 50 GiB vengono eliminati con una finestra di Time Travel di sette giorni:
Giorno 0 | Giorno 1 | Giorno 2 | Giorno 3 | Giorno 4 | Giorno 5 | Giorno 6 | Giorno 7 | Giorno 8 | Giorno 9 | Giorno 10 | Giorno 11 | Giorno 12 | Giorno 13 | Giorno 14 | 15° giorno | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Archiviazione attiva | 200 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 |
Spazio di archiviazione per lo spostamento cronologico | 50 | 50 | 50 | 50 | 50 | 50 | 50 | |||||||||
Archiviazione a prova di errore | 50 | 50 | 50 | 50 | 50 | 50 | 50 |
L'eliminazione dei dati dallo spazio di archiviazione fisico a lungo termine funziona allo stesso modo.
Limitazioni
Il recupero dei dati con Time Travel è soggetto alle seguenti limitazioni:
- Time-Travel fornisce l'accesso ai dati storici solo per la durata della finestra di spostamento cronologico. Per conservare i dati delle tabelle per scopi non di emergenza per un periodo di tempo più lungo rispetto alla finestra di spostamento temporale, utilizza gli snapshot delle tabelle.
- Se una tabella ha o ha avuto in precedenza policy di accesso a livello di riga, lo spostamento temporale può essere utilizzato solo dagli amministratori della tabella. Per saperne di più, consulta Time travel e accesso a livello di riga.
- Il time travel non ripristina i metadati della tabella.
- Lo spostamento nel tempo non è supportato nei seguenti tipi di tabelle:
- Tabelle esterne
- Tabelle temporanee dei risultati delle query memorizzati nella cache
- Tabelle di sessione temporanee
- Tabelle temporanee multi-statement
- Tabelle elencate in Set di dati esterni.
Passaggi successivi
- Scopri come eseguire query e recuperare i dati di Time Travel.
- Scopri di più sugli snapshot delle tabelle.