Restaurar snapshots da tabela
Neste documento, você verá como criar uma tabela gravável a partir de um
snapshot de tabela usando o Console do Google Cloud, uma consulta CREATE TABLE CLONE
, um
comando bq cp
ou a API jobs.insert
.
Ele é destinado a usuários familiarizados com
os snapshots da tabela.
Permissões e papéis
Esta seção descreve as permissões de gerenciamento de identidade e acesso (IAM) de que você precisa para criar uma tabela gravável a partir de um snapshot de tabela e os papéis predefinidos do IAM que concedem essas permissões.
Permissões
Para criar uma tabela gravável a partir de um snapshot da tabela, você precisa destas permissões:
Permissão | Recurso |
---|---|
Todas as opções a seguir:bigquery.tables.get bigquery.tables.getData bigquery.tables.restoreSnapshot |
O snapshot da tabela que você quer copiar para uma tabela gravável. |
bigquery.tables.create
|
O conjunto de dados que contém a tabela de destino |
Papéis
Os papéis predefinidos do BigQuery que fornecem as permissões necessárias são os seguintes:
Papel | Recurso |
---|---|
Qualquer um dos seguintes:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
O snapshot da tabela que você quer copiar para uma tabela gravável. |
Qualquer um dos seguintes:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
O conjunto de dados que contém a tabela de destino |
Restaurar um snapshot da tabela
Para criar uma tabela gravável a partir de um snapshot, especifique a tabela que você quer copiar e a tabela de destino. A tabela de destino pode ser uma nova tabela ou é possível substituir uma tabela atual pelo snapshot da tabela.
Restaurar para uma nova tabela
É possível restaurar um snapshot da tabela em uma nova tabela usando uma das seguintes opções:
Console
No Console do Google Cloud, acesse a página BigQuery.
No painel Explorer, expanda os nós do projeto e do conjunto de dados do snapshot da tabela que você quer restaurar.
Clique no nome do snapshot da tabela.
No painel de resumo da tabela exibido, clique em Restaurar.
No painel Restaurar snapshot que é exibido, insira as informações do Projeto, Conjunto de dados e Tabela para a nova tabela.
Clique em Salvar.
SQL
Use a
instrução DDL CREATE TABLE CLONE
:
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.NEW_TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Substitua:
TABLE_PROJECT_ID
: o ID do projeto em que a nova tabela será criada.TABLE_DATASET_NAME
: o nome do conjunto de dados em que a nova tabela será criada.NEW_TABLE_NAME
: o nome da nova tabela.SNAPSHOT_PROJECT_ID
: o ID do projeto que contém o snapshot do qual você está restaurando.SNAPSHOT_DATASET_NAME
: o nome do conjunto de dados que contém o snapshot do qual você está restaurando.SNAPSHOT_NAME
: o nome do snapshot do qual você está restaurando.
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Digite o seguinte comando no 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:
SNAPSHOT_PROJECT_ID
: o ID do projeto que contém o snapshot do qual você está restaurando.SNAPSHOT_DATASET_NAME
: o nome do conjunto de dados que contém o snapshot do qual você está restaurando.SNAPSHOT_NAME
: o nome do snapshot do qual você está restaurando.TABLE_PROJECT_ID
: o ID do projeto em que a nova tabela será criada.TABLE_DATASET_NAME
: o nome do conjunto de dados em que a nova tabela será criada.NEW_TABLE_NAME
: o nome da nova tabela.
A sinalização --no_clobber
instrui a falha do comando 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 ser faturado por esta operação. |
Corpo da solicitação | { "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:
SNAPSHOT_PROJECT_ID
: o ID do projeto que contém o snapshot do qual você está restaurando.SNAPSHOT_DATASET_NAME
: o nome do conjunto de dados que contém o snapshot do qual você está restaurando.SNAPSHOT_NAME
: o nome do snapshot do qual você está restaurando.TABLE_PROJECT_ID
: o ID do projeto em que a nova tabela será criada.TABLE_DATASET_NAME
: o nome do conjunto de dados em que a nova tabela será criada.NEW_TABLE_NAME
: o nome da nova tabela.
Se uma validade não for especificada, a tabela de destino expirará após o prazo de validade padrão da tabela do conjunto de dados que contém a tabela de destino.
Substituir uma tabela atual
É possível substituir uma tabela por um snapshot usando uma das seguintes opções:
Console
No Console do Google Cloud, acesse a página BigQuery.
No painel Explorer, expanda os nós do projeto e do conjunto de dados do snapshot da tabela que você quer restaurar.
Clique no nome do snapshot da tabela.
No painel de resumo da tabela exibido, clique em Restaurar.
No painel Restaurar snapshot que é exibido, insira as informações do Projeto, Conjunto de dados e Tabela para a tabela atual.
Selecione Substituir tabela (se houver).
Clique em Salvar.
SQL
Use a
instrução DDL CREATE TABLE CLONE
:
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE OR REPLACE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Substitua:
TABLE_PROJECT_ID
: o ID do projeto em que a nova tabela será criada.TABLE_DATASET_NAME
: o nome do conjunto de dados que contém a tabela que você está substituindo.TABLE_NAME
: o nome da tabela que você está substituindo.SNAPSHOT_PROJECT_ID
: o ID do projeto que contém o snapshot do qual você está restaurando.SNAPSHOT_DATASET_NAME
: o nome do conjunto de dados que contém o snapshot do qual você está restaurando.SNAPSHOT_NAME
: o nome do snapshot do qual você está restaurando.
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Digite o seguinte comando no Cloud Shell:
bq cp \ --restore \ --force \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.TABLE_NAME
Substitua:
SNAPSHOT_PROJECT_ID
: o ID do projeto que contém o snapshot do qual você está restaurando.SNAPSHOT_DATASET_NAME
: o nome do conjunto de dados que contém o snapshot do qual você está restaurando.SNAPSHOT_NAME
: o nome do snapshot do qual você está restaurando.TABLE_PROJECT_ID
: o ID do projeto em que a nova tabela será criada.TABLE_DATASET_NAME
: o nome do conjunto de dados que contém a tabela que você está substituindo.TABLE_NAME
: o nome da tabela que você está substituindo.
API
Chame o método jobs.insert
com os seguintes parâmetros:
Parâmetro | Valor |
---|---|
projectId |
O ID do projeto a ser faturado por esta operação. |
Corpo da solicitação | { "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:
SNAPSHOT_PROJECT_ID
: o ID do projeto que contém o snapshot do qual você está restaurando.SNAPSHOT_DATASET_NAME
: o nome do conjunto de dados que contém o snapshot do qual você está restaurando.SNAPSHOT_NAME
: o nome do snapshot do qual você está restaurando.TABLE_PROJECT_ID
: o ID do projeto em que a nova tabela será criada.TABLE_DATASET_NAME
: o nome do conjunto de dados que contém a tabela que você está substituindo.TABLE_NAME
: o nome da tabela que você está substituindo.
Se uma validade não for especificada, a tabela de destino expirará após o prazo de validade padrão da tabela do conjunto de dados que contém a tabela de destino.