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 Explorador, expanda os nós do projeto e do conjunto de dados do conjunto de dados cujas cópias instantâneas de tabelas quer listar.

  3. Pode identificar as imagens instantâneas de tabelas no conjunto de dados pelo respetivo ícone.

    Ícone de instantâneo de tabela

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?