Restaurar capturas de tablas
En este documento se describe cómo crear una tabla en la que se puedan escribir datos a partir de una instantánea de tabla mediante la consola Google Cloud , una consulta CREATE TABLE CLONE
, un comando bq cp
o la API jobs.insert
.
Está dirigido a usuarios que conocen las capturas de tablas.
Permisos y roles
En esta sección se describen los permisos de gestión de identidades y accesos (IAM) que necesitas para crear una tabla en la que se pueda escribir a partir de una instantánea de una tabla, así como los roles de IAM predefinidos que conceden esos permisos.
Permisos
Para crear una tabla en la que se puedan escribir datos a partir de una captura de tabla, necesitas los siguientes permisos:
Permiso | Recurso |
---|---|
Todas las siguientes:bigquery.tables.get bigquery.tables.getData bigquery.tables.restoreSnapshot |
La instantánea de la tabla que quieras copiar en una tabla editable. |
bigquery.tables.create
|
El conjunto de datos que contiene la tabla de destino. |
Roles
Los roles predefinidos de BigQuery que proporcionan los permisos necesarios son los siguientes:
Role | Recurso |
---|---|
Cualquiera de las siguientes:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
La instantánea de la tabla que quieras copiar en una tabla editable. |
Cualquiera de las siguientes:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
El conjunto de datos que contiene la tabla de destino. |
Restaurar una captura de tabla
Para crear una tabla en la que se puedan escribir datos a partir de una instantánea, especifica la instantánea de la tabla que quieras copiar y la tabla de destino. La tabla de destino puede ser una tabla nueva o puedes sobrescribir una tabla que ya tengas con la instantánea de la tabla.
Restaurar en una tabla nueva
Puedes restaurar una instantánea de una tabla en una tabla nueva con una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, despliega los nodos de proyecto y de conjunto de datos de la instantánea de tabla que quieras restaurar.
Haga clic en el nombre de la instantánea de la tabla.
En el panel de la instantánea de la tabla que aparece, haz clic en Restaurar.
En el panel Restaurar instantánea que aparece, introduce la información de Proyecto, Conjunto de datos y Tabla de la nueva tabla.
Haz clic en Guardar.
SQL
Usa la CREATE TABLE CLONE
declaración de DDL:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.NEW_TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Haz los cambios siguientes:
TABLE_PROJECT_ID
: el ID del proyecto en el que se creará la tabla.TABLE_DATASET_NAME
: el nombre del conjunto de datos en el que se creará la tabla.NEW_TABLE_NAME
: el nombre de la nueva tabla.SNAPSHOT_PROJECT_ID
: el ID del proyecto que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_DATASET_NAME
: el nombre del conjunto de datos que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_NAME
: el nombre de la captura desde la que vas a restaurar.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Introduce el siguiente comando en Cloud Shell:
bq cp \ --restore \ --no_clobber \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.NEW_TABLE_NAME
Haz los cambios siguientes:
SNAPSHOT_PROJECT_ID
: el ID del proyecto que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_DATASET_NAME
: el nombre del conjunto de datos que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_NAME
: el nombre de la captura desde la que vas a restaurar.TABLE_PROJECT_ID
: el ID del proyecto en el que se creará la tabla.TABLE_DATASET_NAME
: el nombre del conjunto de datos en el que se creará la tabla.NEW_TABLE_NAME
: el nombre de la nueva tabla.
La marca --no_clobber
indica al comando que debe fallar si la tabla de destino ya existe.
API
Llama al método jobs.insert
con los siguientes parámetros:
Parámetro | Valor |
---|---|
projectId |
El ID del proyecto al que se le facturará esta operación. |
Cuerpo de la solicitud | { "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" } } } |
Haz los cambios siguientes:
SNAPSHOT_PROJECT_ID
: el ID del proyecto que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_DATASET_NAME
: el nombre del conjunto de datos que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_NAME
: el nombre de la captura desde la que vas a restaurar.TABLE_PROJECT_ID
: el ID del proyecto en el que se creará la tabla.TABLE_DATASET_NAME
: el nombre del conjunto de datos en el que se creará la tabla.NEW_TABLE_NAME
: el nombre de la nueva tabla.
Si no se especifica una fecha de vencimiento, la tabla de destino caducará después del tiempo de vencimiento predeterminado de la tabla del conjunto de datos que contiene la tabla de destino.
Sobrescribir una tabla
Puede sobrescribir una tabla con una instantánea de tabla mediante una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, despliega los nodos de proyecto y de conjunto de datos de la instantánea de tabla que quieras restaurar.
Haga clic en el nombre de la instantánea de la tabla.
En el panel de la instantánea de la tabla que aparece, haz clic en Restaurar.
En el panel Restaurar instantánea que aparece, introduce la información de Proyecto, Conjunto de datos y Tabla de la tabla.
Selecciona Sobrescribir tabla si existe.
Haz clic en Guardar.
SQL
Usa la CREATE TABLE CLONE
declaración de DDL:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE OR REPLACE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Haz los cambios siguientes:
TABLE_PROJECT_ID
: el ID del proyecto en el que se creará la tabla.TABLE_DATASET_NAME
: el nombre del conjunto de datos que contiene la tabla que vas a sobrescribir.TABLE_NAME
: el nombre de la tabla que vas a sobrescribir.SNAPSHOT_PROJECT_ID
: el ID del proyecto que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_DATASET_NAME
: el nombre del conjunto de datos que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_NAME
: el nombre de la captura desde la que vas a restaurar.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Introduce el siguiente comando en Cloud Shell:
bq cp \ --restore \ --force \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.TABLE_NAME
Haz los cambios siguientes:
SNAPSHOT_PROJECT_ID
: el ID del proyecto que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_DATASET_NAME
: el nombre del conjunto de datos que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_NAME
: el nombre de la captura desde la que vas a restaurar.TABLE_PROJECT_ID
: el ID del proyecto en el que se creará la tabla.TABLE_DATASET_NAME
: el nombre del conjunto de datos que contiene la tabla que vas a sobrescribir.TABLE_NAME
: el nombre de la tabla que vas a sobrescribir.
API
Llama al método jobs.insert
con los siguientes parámetros:
Parámetro | Valor |
---|---|
projectId |
El ID del proyecto al que se le facturará esta operación. |
Cuerpo de la solicitud | { "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" } } } |
Haz los cambios siguientes:
SNAPSHOT_PROJECT_ID
: el ID del proyecto que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_DATASET_NAME
: el nombre del conjunto de datos que contiene la instantánea a partir de la que vas a restaurar.SNAPSHOT_NAME
: el nombre de la captura desde la que vas a restaurar.TABLE_PROJECT_ID
: el ID del proyecto en el que se creará la tabla.TABLE_DATASET_NAME
: el nombre del conjunto de datos que contiene la tabla que vas a sobrescribir.TABLE_NAME
: el nombre de la tabla que vas a sobrescribir.
Si no se especifica una fecha de vencimiento, la tabla de destino caducará después del tiempo de vencimiento predeterminado de la tabla del conjunto de datos que contiene la tabla de destino.