Ripristina 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. È rivolto agli utenti che hanno familiarità con gli snapshot delle tabelle.

Autorizzazioni e ruoli

Questa sezione descrive le autorizzazioni di 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, devi disporre delle seguenti autorizzazioni:

Autorizzazione Risorsa
Tutte le seguenti condizioni:

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:

Role Risorsa
Uno dei seguenti:

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

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

Puoi ripristinare uno snapshot della tabella in una nuova tabella utilizzando una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

    Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati, quindi sul set di dati contenente lo snapshot della tabella da cui vuoi eseguire il ripristino.

  4. Fai clic su Panoramica > Tabelle, quindi sul nome dello snapshot della tabella.

  5. Nel riquadro dello snapshot della tabella visualizzato, fai clic su aggiorna Ripristina.

    Ripristina tabella dallo snapshot

  6. Nel riquadro Ripristina snapshot che viene visualizzato, inserisci le informazioni relative a Progetto, Set di dati e Tabella per la nuova tabella.

  7. Fai clic su Salva.

SQL

Utilizza l'istruzione DDL CREATE TABLE CLONE:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

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

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

bq

Inserisci questo comando in Cloud Shell:

Vai a 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 andare a buon fine 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 a cui addebitare 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 della tabella predefinito per il set di dati che contiene la tabella di destinazione.

Sovrascrivi una tabella esistente

Puoi sovrascrivere una tabella esistente con uno snapshot della tabella utilizzando una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati, quindi sul set di dati contenente lo snapshot della tabella da cui vuoi eseguire il ripristino.

  4. Fai clic su Panoramica > Tabelle, quindi sul nome dello snapshot della tabella.

  5. Nel riquadro dello snapshot della tabella visualizzato, fai clic su Ripristina.

    Ripristina tabella dallo snapshot

  6. Nel riquadro Ripristina snapshot visualizzato, inserisci le informazioni relative a Progetto, Set di dati e Tabella per la tabella esistente.

  7. Seleziona Sovrascrivi la tabella se esiste.

  8. Fai clic su Salva.

SQL

Utilizza l'istruzione DDL CREATE TABLE CLONE:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

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

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

bq

Inserisci questo comando in Cloud Shell:

Vai a 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 a cui addebitare 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 della tabella predefinito per il set di dati che contiene la tabella di destinazione.

Passaggi successivi