Apresentar instantâneos de tabelas

Este documento descreve como obter uma lista das cópias instantâneas de tabelas num conjunto de dados do BigQuery na consola, consultando a tabela INFORMATION_SCHEMA.TABLE_SNAPSHOTS, usando o comando bq ls ou chamando a API tables.list. Google Cloud Também descreve como listar todas as imagens instantâneas de tabelas de uma tabela de base especificada consultando a tabela INFORMATION_SCHEMA.TABLE_SNAPSHOTS. Este documento destina-se a utilizadores que conhecem as tabelas do BigQuery e os instantes das tabelas.

Autorizações e funções

Esta secção descreve as autorizações de gestão de identidade e acesso (IAM) de que precisa para listar as imagens instantâneas de tabelas num conjunto de dados e as funções de IAM predefinidas que concedem essas autorizações. As autorizações e as funções para as capturas de ecrã da tabela de fichas são as mesmas que as autorizações e as funções necessárias para listar outros tipos de tabelas.

Autorizações

Para listar as imagens instantâneas de tabelas num conjunto de dados, precisa da seguinte autorização:

Autorização Recurso
bigquery.tables.list O conjunto de dados que contém os instantâneos da tabela.

Funções

As funções predefinidas do BigQuery que concedem a autorização necessária são as seguintes:

Role Recurso
Qualquer uma das seguintes opções:

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

Liste as imagens instantâneas de tabelas num conjunto de dados

A obtenção de uma lista de instâncias de tabelas num conjunto de dados é semelhante à listagem de outros tipos de tabelas. As imagens instantâneas da tabela têm o tipo SNAPSHOT.

Pode listar as imagens instantâneas de tabelas através de uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No painel esquerdo, clique em Explorador:

    Botão realçado para o painel do explorador.

    Se não vir o painel do lado esquerdo, clique em Expandir painel do lado esquerdo para o abrir.

  3. No painel Explorador, expanda o projeto, clique em Conjuntos de dados e, de seguida, selecione o conjunto de dados que contém as imagens instantâneas de tabelas que quer listar.

  4. Clique em Vista geral > Tabelas. Para encontrar instantâneos na lista, procure o valor SNAPSHOT na coluna Tipo.

SQL

Consulte a vista INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto do projeto que contém as capturas instantâneas que quer listar.
    • DATASET_NAME: o nome do conjunto de dados que contém as capturas de ecrã que quer listar.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

O resultado tem um aspeto semelhante ao seguinte:

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

Introduza o seguinte comando no Cloud Shell:

Aceda ao Cloud Shell

bq ls \
PROJECT_ID:DATASET_NAME

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto do projeto que contém as capturas instantâneas que quer listar.
  • DATASET_NAME: o nome do conjunto de dados que contém as capturas de ecrã que quer listar.

O resultado tem um aspeto semelhante ao seguinte:

+-------------------------+--------+---------------------+-------------------+
|         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 do projeto que contém as capturas de ecrã que quer listar.
datasetId O nome do conjunto de dados que contém as capturas de ecrã que quer listar.

Apresentar a lista de instantâneos de tabelas de uma tabela de base especificada

Pode listar os resumos da tabela de uma tabela base especificada consultando a vista INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto que contém as capturas de ecrã que quer listar.
  • DATASET_NAME: o nome do conjunto de dados que contém as imagens instantâneas que quer listar.

O que se segue?