Ripristinare gli snapshot delle tabelle
Questo documento descrive come creare una tabella scrivibile da uno snapshot della tabella utilizzando la console Google Cloud , una query CREATE TABLE CLONE
, un comando bq cp
o l'API jobs.insert
.
È destinato agli utenti che hanno familiarità con gli
snapshot delle tabelle.
Autorizzazioni e ruoli
Questa sezione descrive le autorizzazioni Identity and Access Management (IAM) necessarie per creare una tabella scrivibile da uno snapshot della tabella e i ruoli IAM predefiniti che concedono queste autorizzazioni.
Autorizzazioni
Per creare una tabella scrivibile da uno snapshot della tabella, sono necessarie le seguenti autorizzazioni:
Autorizzazione | Risorsa |
---|---|
Tutti i seguenti elementi:bigquery.tables.get bigquery.tables.getData bigquery.tables.restoreSnapshot |
Lo snapshot della tabella che vuoi copiare in una tabella modificabile. |
bigquery.tables.create
|
Il set di dati che contiene la tabella di destinazione. |
Ruoli
I ruoli BigQuery predefiniti che forniscono le autorizzazioni richieste sono i seguenti:
Role | Risorsa |
---|---|
Uno dei seguenti:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
Lo snapshot della tabella che vuoi copiare in una tabella modificabile. |
Uno dei seguenti:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
Il set di dati che contiene la tabella di destinazione. |
Ripristinare uno snapshot della tabella
Per creare una tabella scrivibile da uno snapshot, specifica lo snapshot della tabella che vuoi copiare e la tabella di destinazione. La tabella di destinazione può essere una nuova tabella oppure puoi sovrascrivere una tabella esistente con lo snapshot della tabella.
Ripristinare in una nuova tabella
Puoi ripristinare uno snapshot della tabella in una nuova tabella utilizzando una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su
Explorer:Se non vedi il riquadro a sinistra, fai clic su
Espandi riquadro a sinistra per aprirlo.Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e poi sul set di dati che contiene lo snapshot della tabella da cui vuoi eseguire il ripristino.
Fai clic su Panoramica > Tabelle, quindi fai clic sul nome dello snapshot della tabella.
Nel riquadro dello snapshot della tabella visualizzato, fai clic su Aggiorna Ripristina.
Nel riquadro Ripristina snapshot visualizzato, inserisci le informazioni su Progetto, Set di dati e Tabella per la nuova tabella.
Fai clic su Salva.
SQL
Utilizza l'istruzione DDL CREATE TABLE CLONE
:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.NEW_TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Sostituisci quanto segue:
TABLE_PROJECT_ID
: l'ID progetto del progetto in cui creare la nuova tabella.TABLE_DATASET_NAME
: il nome del set di dati in cui creare la nuova tabella.NEW_TABLE_NAME
: il nome della nuova tabella.SNAPSHOT_PROJECT_ID
: l'ID progetto del progetto che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_DATASET_NAME
: il nome del set di dati che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_NAME
: il nome dello snapshot da cui stai eseguendo il ripristino.
Fai clic su
Esegui.
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
bq
Inserisci il seguente comando in Cloud Shell:
bq cp \ --restore \ --no_clobber \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.NEW_TABLE_NAME
Sostituisci quanto segue:
SNAPSHOT_PROJECT_ID
: l'ID progetto del progetto che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_DATASET_NAME
: il nome del set di dati che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_NAME
: il nome dello snapshot da cui stai eseguendo il ripristino.TABLE_PROJECT_ID
: l'ID progetto del progetto in cui creare la nuova tabella.TABLE_DATASET_NAME
: il nome del set di dati in cui creare la nuova tabella.NEW_TABLE_NAME
: il nome della nuova tabella.
Il flag --no_clobber
indica al comando di non riuscire se la tabella di destinazione
esiste già.
API
Chiama il
metodo jobs.insert
con i seguenti parametri:
Parametro | Valore |
---|---|
projectId |
L'ID progetto del progetto da fatturare per questa operazione. |
Corpo della richiesta | { "configuration": { "copy": { "sourceTables": [ { "projectId": "SNAPSHOT_PROJECT_ID", "datasetId": "SNAPSHOT_DATASET_NAME", "tableId": "SNAPSHOT_NAME" } ], "destinationTable": { "projectId": "TABLE_PROJECT_ID", "datasetId": "TABLE_DATASET_NAME", "tableId": "NEW_TABLE_NAME" }, "operationType": "RESTORE", "writeDisposition": "WRITE_EMPTY" } } } |
Sostituisci quanto segue:
SNAPSHOT_PROJECT_ID
: l'ID progetto del progetto che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_DATASET_NAME
: il nome del set di dati che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_NAME
: il nome dello snapshot da cui stai eseguendo il ripristino.TABLE_PROJECT_ID
: l'ID progetto del progetto in cui creare la nuova tabella.TABLE_DATASET_NAME
: il nome del set di dati in cui creare la nuova tabella.NEW_TABLE_NAME
: il nome della nuova tabella.
Se non viene specificata una scadenza, la tabella di destinazione scade dopo il tempo di scadenza predefinito della tabella per il set di dati che contiene la tabella di destinazione.
Sovrascrivere una tabella esistente
Puoi sovrascrivere una tabella esistente con uno snapshot della tabella utilizzando una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su
Explorer:Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e poi sul set di dati che contiene lo snapshot della tabella da cui vuoi eseguire il ripristino.
Fai clic su Panoramica > Tabelle, quindi fai clic sul nome dello snapshot della tabella.
Nel riquadro dello snapshot della tabella visualizzato, fai clic su Ripristina.
Nel riquadro Ripristina snapshot visualizzato, inserisci le informazioni su Progetto, Set di dati e Tabella per la tabella esistente.
Seleziona Sovrascrivi la tabella se esiste.
Fai clic su Salva.
SQL
Utilizza l'istruzione DDL CREATE TABLE CLONE
:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE OR REPLACE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Sostituisci quanto segue:
TABLE_PROJECT_ID
: l'ID progetto del progetto in cui creare la nuova tabella.TABLE_DATASET_NAME
: il nome del set di dati che contiene la tabella che stai sovrascrivendo.TABLE_NAME
: il nome della tabella che stai sovrascrivendo.SNAPSHOT_PROJECT_ID
: l'ID progetto del progetto che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_DATASET_NAME
: il nome del set di dati che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_NAME
: il nome dello snapshot da cui stai eseguendo il ripristino.
Fai clic su
Esegui.
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
bq
Inserisci il seguente comando in Cloud Shell:
bq cp \ --restore \ --force \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.TABLE_NAME
Sostituisci quanto segue:
SNAPSHOT_PROJECT_ID
: l'ID progetto del progetto che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_DATASET_NAME
: il nome del set di dati che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_NAME
: il nome dello snapshot da cui stai eseguendo il ripristino.TABLE_PROJECT_ID
: l'ID progetto del progetto in cui creare la nuova tabella.TABLE_DATASET_NAME
: il nome del set di dati che contiene la tabella che stai sovrascrivendo.TABLE_NAME
: il nome della tabella che stai sovrascrivendo.
API
Chiama il
metodo jobs.insert
con i seguenti parametri:
Parametro | Valore |
---|---|
projectId |
L'ID progetto del progetto da fatturare per questa operazione. |
Corpo della richiesta | { "configuration": { "copy": { "sourceTables": [ { "projectId": "SNAPSHOT_PROJECT_ID", "datasetId": "SNAPSHOT_DATASET_NAME", "tableId": "SNAPSHOT_NAME" } ], "destinationTable": { "projectId": "TABLE_PROJECT_ID", "datasetId": "TABLE_DATASET_NAME", "tableId": "TABLE_NAME" }, "operationType": "RESTORE", "writeDisposition": "WRITE_TRUNCATE" } } } |
Sostituisci quanto segue:
SNAPSHOT_PROJECT_ID
: l'ID progetto del progetto che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_DATASET_NAME
: il nome del set di dati che contiene lo snapshot da cui stai eseguendo il ripristino.SNAPSHOT_NAME
: il nome dello snapshot da cui stai eseguendo il ripristino.TABLE_PROJECT_ID
: l'ID progetto del progetto in cui creare la nuova tabella.TABLE_DATASET_NAME
: il nome del set di dati che contiene la tabella che stai sovrascrivendo.TABLE_NAME
: il nome della tabella che stai sovrascrivendo.
Se non viene specificata una scadenza, la tabella di destinazione scade dopo il tempo di scadenza predefinito della tabella per il set di dati che contiene la tabella di destinazione.