Ripristina snapshot tabella

Questo documento descrive come creare una tabella scrivibile da uno snapshot di tabella utilizzando Google Cloud Console, una query CREATE TABLE CLONE, un comando bq cp o l'API jobs.insert. È destinato agli utenti che hanno familiarità con gli istantanea della tabella.

Autorizzazioni e ruoli

Questa sezione descrive le autorizzazioni IAM (Gestione di identità e accessi) necessarie per creare una tabella scrivibile da uno snapshot della tabella e i ruoli IAM predefiniti che concedono tali autorizzazioni.

Autorizzazioni

Per creare una tabella scrivibile da uno snapshot della tabella, devi disporre delle seguenti autorizzazioni:

Autorizzazione Risorsa
Tutte le seguenti opzioni:

bigquery.tables.get
bigquery.tables.getData
bigquery.tables.restoreSnapshot
Lo snapshot della tabella che vuoi copiare in una tabella scrivibile.
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:

Ruolo Risorsa
Uno qualsiasi dei seguenti elementi:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Lo snapshot della tabella che vuoi copiare in una tabella scrivibile.
Uno qualsiasi dei seguenti elementi:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Il set di dati che contiene la tabella di destinazione.

Ripristina 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.

Ripristina in una nuova tabella

Ad esempio, ripristina lo snapshot della tabella library_backup.books nella nuova tabella library.books_new come segue:

Console

  1. In Cloud Console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi i nodi del progetto e del set di dati dello snapshot della tabella da cui vuoi eseguire il ripristino, in questo caso library_backup.books.

  3. Nel riquadro snapshot tabella, fai clic su Ripristina.

    Ripristina tabella dallo snapshot

  4. Nel riquadro Ripristina snapshot visualizzato, inserisci Progetto, ID set di dati e Nome tabella per la tabella di destinazione.

  5. Per sovrascrivere una tabella esistente con i dati dello snapshot della tabella, seleziona Sovrascrivi la tabella se esiste. Se non selezioni questa opzione e la tabella di destinazione esiste già, viene visualizzato un errore.

  6. Fai clic su Ripristina.

SQL

Esegui la seguente query:

CREATE TABLE library.books_new
  CLONE library_backup.books

bq

Inserisci il seguente comando in Cloud Shell:

Vai a Cloud Shell

bq cp --restore --no_clobber library_backup.books library.books_new

Il flag --no_clobber indica che il comando non funziona se la tabella di destinazione esiste già.

API

Richiama il metodo jobs.insert con i seguenti parametri:

Parametro Valore
projectId myProject
Corpo della richiesta

{
  "configuration": {
    "copy": {
      "sourceTables": [
        {
          "projectId": "myProject",
          "datasetId": "library_backup",
          "tableId": "books"
        }
      ],
      "destinationTable": {
        "projectId": "myProject",
        "datasetId": "library",
        "tableId": "books_new"
      },
      "operationType": "RESTORE",
      "writeDisposition": "WRITE_EMPTY"
    }
  }
}

Se non viene specificata una scadenza, la tabella di destinazione scade dopo la data di scadenza della tabella predefinita per il set di dati che contiene la tabella di destinazione, in questo caso il set di dati library.

Sovrascrivere una tabella esistente

Ripristina lo snapshot della tabella library_backup.books sovrascrivendo la tabella library.books esistente come segue:

Console

  1. In Cloud Console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi i nodi del progetto e del set di dati dello snapshot della tabella da cui vuoi eseguire il ripristino, in questo caso library_backup.books.

  3. Nel riquadro snapshot tabella, fai clic su Ripristina.

    Ripristina tabella dallo snapshot

  4. Nel riquadro Ripristina snapshot visualizzato, inserisci Progetto, ID set di dati e Nome tabella per la tabella da sovrascrivere.

  5. Fai clic su Ripristina.

SQL

Esegui la seguente query:

CREATE OR REPLACE TABLE
  library.books
  CLONE library_backup.books

bq

Inserisci il seguente comando in Cloud Shell:

Vai a Cloud Shell

bq cp --restore --force library_backup.books library.books

API

Richiama il metodo jobs.insert con i seguenti parametri:

Parametro Valore
projectId myProject
Corpo della richiesta

{
  "configuration": {
    "copy": {
      "sourceTables": [
        {
          "projectId": "myProject",
          "datasetId": "library_backup",
          "tableId": "books"
        }
      ],
      "destinationTable": {
        "projectId": "myProject",
        "datasetId": "library",
        "tableId": "books"
      },
      "operationType": "RESTORE",
      "writeDisposition": "WRITE_TRUNCATE"
    }
  }
}

Se non viene specificata alcuna scadenza, la tabella di destinazione scade dopo la data di scadenza predefinita per il set di dati che contiene la tabella. In questo caso, il set di dati library.

Passaggi successivi