Enumera instantáneas de tablas

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

Permisos y funciones

En esta sección, se describen los permisos de administración de identidades y accesos (IAM) que necesitas para enumerar las instantáneas de tablas en un conjunto de datos, y las funciones predefinidas de IAM que otorgan esos permisos. Los permisos y las funciones que se usan a fin de enumerar las instantáneas de tablas son iguales a los permisos y las funciones que se necesitan para enumerar otros tipos de tablas.

Permisos

Para enumerar las instantáneas de tablas en un conjunto de datos, necesitas el siguiente permiso:

Permiso Recurso
bigquery.tables.list El conjunto de datos que contiene las instantáneas de tablas.

Funciones

A continuación, se enumeran los roles predefinidos de BigQuery que proporcionan el permiso necesario:

Función Recurso
Cualquiera de los siguientes:

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
El conjunto de datos que contiene las instantáneas de tablas.

Enumera instantáneas de tablas en un conjunto de datos

Obtener una lista de instantáneas de tablas en un conjunto de datos es similar a enumerar otros tipos de tablas. Las instantáneas de tablas tienen el tipo SNAPSHOT.

Puedes enumerar las instantáneas de tablas con una de las siguientes opciones:

Console

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

    Ir a BigQuery

  2. En el panel Explorador, expande los nodos del proyecto y del conjunto de datos cuyas instantáneas de tabla deseas enumerar.

  3. Puedes identificar las instantáneas de la tabla en el conjunto de datos por su ícono.

    ícono de instantánea de tabla

SQL

Consulta la vista INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

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

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente oración:

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto que contiene las instantáneas que deseas enumerar.
    • DATASET_NAME: El nombre del conjunto de datos que contiene las instantáneas que deseas enumerar.

  3. Haz clic en Ejecutar.

Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta 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

Escribe el siguiente comando en Cloud Shell:

Ir a Cloud Shell

bq ls \
PROJECT_ID:DATASET_NAME

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto que contiene las instantáneas que deseas enumerar.
  • DATASET_NAME: El nombre del conjunto de datos que contiene las instantáneas que deseas 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 instantáneas que deseas enumerar.
datasetId El nombre del conjunto de datos que contiene las instantáneas que deseas enumerar.

Enumera instantáneas de tablas de una tabla base especificada

Puedes enumerar las instantáneas de una tabla base específica si consultas la vista INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

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

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto que contiene las instantáneas que deseas enumerar.
  • DATASET_NAME: El nombre del conjunto de datos que contiene las instantáneas que deseas enumerar.

¿Qué sigue?