Listar snapshots da tabela

Veja neste documento como conseguir uma lista de snapshots de tabelas em um conjunto de dados do BigQuery no Console do Google Cloud, consultando a tabela INFORMATION_SCHEMA.TABLE_SNAPSHOTS, usando o comando bq ls ou chamando a API tables.list. Ele também explica como listar todos os snapshots de uma tabela base específica consultando a tabela INFORMATION_SCHEMA.TABLE_SNAPSHOTS. Este documento se destina a usuários que já conhecem tabelas e snapshots de tabelas do BigQuery.

Permissões e papéis

Nesta seção, descrevemos as permissões do Identity and Access Management (IAM) necessárias para listar os snapshots da tabela em um conjunto de dados e os papéis predefinidos do IAM que concedem essas permissões. As permissões e os papéis para listar snapshots da tabela são os mesmos que as permissões e os papéis necessários para listar outros tipos de tabelas.

Permissões

Para listar os snapshots da tabela em um conjunto de dados, você precisa da seguinte permissão:

Permissão Recurso
bigquery.tables.list O conjunto de dados que contém os snapshots da tabela.

Papéis

Os papéis predefinidos do BigQuery que fornecem a permissão necessária são os seguintes:

Papel Recurso
Qualquer um dos seguintes:

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
O conjunto de dados que contém os snapshots da tabela.

Listar os snapshots da tabela em um conjunto de dados

O recebimento de uma lista de snapshots da tabela em um conjunto de dados é semelhante à listagem de outros tipos de tabelas. Os snapshots da tabela têm o tipo SNAPSHOT.

É possível listar os snapshots da tabela usando uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda os nós do projeto e do conjunto de dados com os snapshots de tabela que você quer listar.

  3. É possível identificar os snapshots de tabela no conjunto de dados pelo ícone.

    Ícone do snapshot da tabela

SQL

Consulte a visualização INFORMATION_SCHEMA.TABLE_SNAPSHOTS.

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;

    Substitua:

    • PROJECT_ID: o ID do projeto que contém os snapshots que você quer listar.
    • DATASET_NAME: o nome do conjunto de dados que contém os snapshots que você quer listar.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.

O resultado será semelhante a este:

+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| 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

Digite o seguinte comando no Cloud Shell:

Acesse o Cloud Shell

bq ls \
PROJECT_ID:DATASET_NAME

Substitua:

  • PROJECT_ID: o ID do projeto que contém os snapshots que você quer listar.
  • DATASET_NAME: o nome do conjunto de dados que contém os snapshots que você quer listar.

A resposta será semelhante a:

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

API

Chame o método tables.list com os seguintes parâmetros:

Parâmetro Valor
projectId O ID do projeto que contém os snapshots que você quer listar.
datasetId O nome do conjunto de dados que contém os snapshots que você quer listar.

Listar os snapshots de uma tabela base especificada

É possível listar os snapshots de uma tabela base especificada consultando a visualização INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

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

Substitua:

  • PROJECT_ID: o ID do projeto que contém os snapshots que você quer listar.
  • DATASET_NAME: o nome do conjunto de dados que contém os snapshots que você quer listar.

A seguir