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
Na Google Cloud consola, aceda à página BigQuery.
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.
Clique no nome da captura instantânea da tabela.
No painel de instantâneo da tabela apresentado, clique em Restaurar.
No painel Restaurar instantâneo apresentado, introduza as informações de Projeto, Conjunto de dados e Tabela para a nova tabela.
Clique em Guardar.
SQL
Use a
CREATE TABLE CLONE
declaração DDL:
Na Google Cloud consola, aceda à página BigQuery.
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.
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:
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
Na Google Cloud consola, aceda à página BigQuery.
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.
Clique no nome da captura instantânea da tabela.
No painel de instantâneo da tabela apresentado, clique em Restaurar.
No painel Restaurar instantâneo apresentado, introduza as informações de Projeto, Conjunto de dados e Tabela da tabela existente.
Selecione Substituir tabela se existir.
Clique em Guardar.
SQL
Use a
CREATE TABLE CLONE
declaração DDL:
Na Google Cloud consola, aceda à página BigQuery.
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.
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:
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.