Restaure instantâneos de tabelas

Este documento descreve como criar uma tabela gravável a partir de uma imagem instantânea da tabela através da consola Google Cloud , de uma consulta CREATE TABLE CLONE, de um comando bq cp ou da API jobs.insert. Destina-se a utilizadores familiarizados com as capturas instantâneas de tabelas.

Autorizações e funções

Esta secção descreve as autorizações da Identity and Access Management (IAM) de que precisa para criar uma tabela gravável a partir de uma cópia instantânea da tabela, e as funções de IAM predefinidas que concedem essas autorizações.

Autorizações

Para criar uma tabela gravável a partir de uma captura instantânea de tabela, precisa das seguintes autorizações:

Autorização Recurso
Todas as seguintes opções:

bigquery.tables.get
bigquery.tables.getData
bigquery.tables.restoreSnapshot
A imagem instantânea da tabela que quer copiar para uma tabela gravável.
bigquery.tables.create O conjunto de dados que contém a tabela de destino.

Funções

As funções predefinidas do BigQuery que fornecem as autorizações necessárias são as seguintes:

Role Recurso
Qualquer uma das seguintes opções:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
A imagem instantânea da tabela que quer copiar para uma tabela gravável.
Qualquer uma das seguintes opções:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
O conjunto de dados que contém a tabela de destino.

Restaure um instantâneo de tabela

Para criar uma tabela gravável a partir de uma imagem instantânea, especifique a imagem instantânea da tabela que quer copiar e a tabela de destino. A tabela de destino pode ser uma nova tabela ou pode substituir uma tabela existente pela imagem instantânea da tabela.

Restaurar para uma nova tabela

Pode restaurar uma imagem instantânea de uma tabela numa nova tabela através de uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No painel Explorador, expanda os nós do projeto e do conjunto de dados da cópia instantânea da tabela a partir da qual quer fazer o restauro.

  3. Clique no nome da captura instantânea da tabela.

  4. No painel de instantâneo da tabela apresentado, clique em Restaurar.

    Restaure a tabela a partir de um instantâneo

  5. No painel Restaurar instantâneo apresentado, introduza as informações de Projeto, Conjunto de dados e Tabela para a nova tabela.

  6. Clique em Guardar.

SQL

Use a CREATE TABLE CLONE declaração DDL:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

    CREATE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.NEW_TABLE_NAME
    CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;

    Substitua o seguinte:

    • TABLE_PROJECT_ID: o ID do projeto do projeto no qual criar a nova tabela.
    • TABLE_DATASET_NAME: o nome do conjunto de dados no qual criar a nova tabela.
    • NEW_TABLE_NAME: o nome da nova tabela.
    • SNAPSHOT_PROJECT_ID: o ID do projeto do projeto que contém a captura instantânea a partir da qual está a fazer o restauro.
    • SNAPSHOT_DATASET_NAME: o nome do conjunto de dados que contém a imagem instantânea a partir da qual está a fazer o restauro.
    • SNAPSHOT_NAME: o nome do instantâneo a partir do qual está a fazer o restauro.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Introduza o seguinte comando no Cloud Shell:

Aceda ao Cloud Shell

bq cp \
--restore \
--no_clobber \
SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \
TABLE_PROJECT_ID:TABLE_DATASET_NAME.NEW_TABLE_NAME

Substitua o seguinte:

  • SNAPSHOT_PROJECT_ID: o ID do projeto do projeto que contém a captura instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_DATASET_NAME: o nome do conjunto de dados que contém a imagem instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_NAME: o nome do instantâneo a partir do qual está a fazer o restauro.
  • TABLE_PROJECT_ID: o ID do projeto do projeto no qual criar a nova tabela.
  • TABLE_DATASET_NAME: o nome do conjunto de dados no qual criar a nova tabela.
  • NEW_TABLE_NAME: o nome da nova tabela.

A flag --no_clobber indica ao comando que deve falhar se a tabela de destino já existir.

API

Chame o método jobs.insert com os seguintes parâmetros:

Parâmetro Valor
projectId O ID do projeto a faturar para esta operação.
Corpo do pedido
{
  "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"
    }
  }
}

Substitua o seguinte:

  • SNAPSHOT_PROJECT_ID: o ID do projeto do projeto que contém a captura instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_DATASET_NAME: o nome do conjunto de dados que contém a imagem instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_NAME: o nome do instantâneo a partir do qual está a fazer o restauro.
  • TABLE_PROJECT_ID: o ID do projeto do projeto no qual criar a nova tabela.
  • TABLE_DATASET_NAME: o nome do conjunto de dados no qual criar a nova tabela.
  • NEW_TABLE_NAME: o nome da nova tabela.

Se não for especificada uma data de validade, a tabela de destino expira após o tempo de validade predefinido da tabela para o conjunto de dados que contém a tabela de destino.

Substitua uma tabela existente

Pode substituir uma tabela existente por uma captura instantânea da tabela através de uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No painel Explorador, expanda os nós do projeto e do conjunto de dados da cópia instantânea da tabela a partir da qual quer fazer o restauro.

  3. Clique no nome da captura instantânea da tabela.

  4. No painel de instantâneo da tabela apresentado, clique em Restaurar.

    Restaure a tabela a partir de um instantâneo

  5. No painel Restaurar instantâneo apresentado, introduza as informações de Projeto, Conjunto de dados e Tabela da tabela existente.

  6. Selecione Substituir tabela se existir.

  7. Clique em Guardar.

SQL

Use a CREATE TABLE CLONE declaração DDL:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

    CREATE OR REPLACE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.TABLE_NAME
    CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;

    Substitua o seguinte:

    • TABLE_PROJECT_ID: o ID do projeto do projeto no qual criar a nova tabela.
    • TABLE_DATASET_NAME: o nome do conjunto de dados que contém a tabela que está a substituir.
    • TABLE_NAME: o nome da tabela que está a substituir.
    • SNAPSHOT_PROJECT_ID: o ID do projeto do projeto que contém a captura instantânea a partir da qual está a fazer o restauro.
    • SNAPSHOT_DATASET_NAME: o nome do conjunto de dados que contém a imagem instantânea a partir da qual está a fazer o restauro.
    • SNAPSHOT_NAME: o nome do instantâneo a partir do qual está a fazer o restauro.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Introduza o seguinte comando no Cloud Shell:

Aceda ao Cloud Shell

bq cp \
--restore \
--force \
SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \
TABLE_PROJECT_ID:TABLE_DATASET_NAME.TABLE_NAME

Substitua o seguinte:

  • SNAPSHOT_PROJECT_ID: o ID do projeto do projeto que contém a captura instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_DATASET_NAME: o nome do conjunto de dados que contém a imagem instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_NAME: o nome do instantâneo a partir do qual está a fazer o restauro.
  • TABLE_PROJECT_ID: o ID do projeto do projeto no qual criar a nova tabela.
  • TABLE_DATASET_NAME: o nome do conjunto de dados que contém a tabela que está a substituir.
  • TABLE_NAME: o nome da tabela que está a substituir.

API

Chame o método jobs.insert com os seguintes parâmetros:

Parâmetro Valor
projectId O ID do projeto a faturar para esta operação.
Corpo do pedido
{
  "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"
    }
  }
}

Substitua o seguinte:

  • SNAPSHOT_PROJECT_ID: o ID do projeto do projeto que contém a captura instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_DATASET_NAME: o nome do conjunto de dados que contém a imagem instantânea a partir da qual está a fazer o restauro.
  • SNAPSHOT_NAME: o nome do instantâneo a partir do qual está a fazer o restauro.
  • TABLE_PROJECT_ID: o ID do projeto do projeto no qual criar a nova tabela.
  • TABLE_DATASET_NAME: o nome do conjunto de dados que contém a tabela que está a substituir.
  • TABLE_NAME: o nome da tabela que está a substituir.

Se não for especificada uma data de validade, a tabela de destino expira após o tempo de validade predefinido da tabela para o conjunto de dados que contém a tabela de destino.

O que se segue?