Mostrar capturas de tablas

En este documento se describe cómo obtener una lista de las copias de seguridad de una tabla de un conjunto de datos de BigQuery en la consola de Google Cloud , consultando la tabla INFORMATION_SCHEMA.TABLE_SNAPSHOTS, usando el comando bq ls o llamando a la API tables.list. También se describe cómo enumerar todas las copias de una tabla base específica consultando la tabla INFORMATION_SCHEMA.TABLE_SNAPSHOTS. Este documento está dirigido a usuarios que conocen las tablas y las instantáneas de tablas de BigQuery.

Permisos y roles

En esta sección se describen los permisos de gestión de identidades y accesos (IAM) que necesitas para enumerar las copias de seguridad de tablas de un conjunto de datos y los roles de IAM predefinidos que conceden esos permisos. Los permisos y los roles para enumerar las copias de una tabla son los mismos que los necesarios para enumerar otros tipos de tablas.

Permisos

Para mostrar las capturas de tablas de un conjunto de datos, necesitas el siguiente permiso:

Permiso Recurso
bigquery.tables.list El conjunto de datos que contiene las capturas de la tabla.

Roles

Los roles predefinidos de BigQuery que proporcionan el permiso necesario son los siguientes:

Role Recurso
Cualquiera de las siguientes:

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
El conjunto de datos que contiene las capturas de la tabla.

Mostrar las capturas de tablas de un conjunto de datos

Obtener una lista de capturas de tablas en un conjunto de datos es similar a obtener una lista de otros tipos de tablas. Las capturas de tabla tienen el tipo SNAPSHOT.

Puedes enumerar las copias de la tabla mediante una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, despliega los nodos del proyecto y del conjunto de datos del que quieras obtener una lista de las copias de la tabla.

  3. Puedes identificar las capturas de tablas de un conjunto de datos por su icono.

    Icono de captura de tabla

SQL

Consulta la vista INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene las copias de seguridad que quieres enumerar.
    • DATASET_NAME: el nombre del conjunto de datos que contiene las copias de seguridad que quieres enumerar.

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

El resultado es similar al siguiente:

+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| table_catalog | table_schema   | table_name       | base_table_catalog | base_table_schema | base_table_name | snapshot_time               |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| myproject     | mydataset      | mysnapshot       | basetableproject   | basetabledataset           | basetable           | 2021-04-16 14:05:27.519 UTC |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+

bq

Introduce el siguiente comando en Cloud Shell:

Ir a Cloud Shell

bq ls \
PROJECT_ID:DATASET_NAME

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene las copias de seguridad que quieres enumerar.
  • DATASET_NAME: el nombre del conjunto de datos que contiene las copias de seguridad que quieres enumerar.

El resultado es similar al siguiente:

+-------------------------+--------+---------------------+-------------------+
|         tableId         |  Type  |       Labels        | Time Partitioning |
+-------------------------+--------+---------------------+-------------------+
| mysnapshot              |SNAPSHOT|                     |                   |
+-------------------------+--------+---------------------+-------------------+

API

Llama al método tables.list con los siguientes parámetros:

Parámetro Valor
projectId El ID del proyecto que contiene las copias de seguridad que quieres enumerar.
datasetId El nombre del conjunto de datos que contiene las copias de seguridad que quieres enumerar.

Mostrar las capturas de una tabla base especificada

Para enumerar las instantáneas de una tabla base específica, consulta la vista INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

SELECT
  *
FROM
  PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS
WHERE
  base_table_name = 'books';
  

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene las copias de seguridad que quieres enumerar.
  • DATASET_NAME: el nombre del conjunto de datos que contiene las copias de seguridad que quieres enumerar.

Siguientes pasos