Répertorier les instantanés de table

Ce document explique comment obtenir la liste des instantanés de table d'un ensemble de données BigQuery dans Google Cloud Console, en interrogeant la table INFORMATION_SCHEMA.TABLE_SNAPSHOTS, à l'aide de la commande bq ls, ou en appelant l'API tables.list. Il explique également comment obtenir la liste de tous les instantanés de table d'une table de base spécifiée en interrogeant la table INFORMATION_SCHEMA.TABLE_SNAPSHOTS. Ce document est destiné aux utilisateurs qui connaissent déjà les tables et les instantanés de table BigQuery.

Autorisations et rôles

Cette section décrit les autorisations IAM (Identity and Access Management) dont vous avez besoin pour répertorier les instantanés de table d'un ensemble de données, ainsi que les rôles IAM prédéfinis qui accordent ces autorisations. Les autorisations et les rôles permettant de répertorier les instantanés de table sont identiques à ceux requis pour répertorier d'autres types de tables.

Autorisations

Pour répertorier les instantanés de table dans un ensemble de données, vous devez disposer de l'autorisation suivante :

Autorisation Ressource
bigquery.tables.list Ensemble de données contenant les instantanés de table.

Rôles

Les rôles BigQuery prédéfinis qui fournissent l'autorisation requise sont les suivants :

Rôle Ressource
Au choix :

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Ensemble de données contenant les instantanés de table.

Répertorier les instantanés de table dans un ensemble de données

L'opération permettant d'obtenir la liste des instantanés de table dans un ensemble de données est semblable à celle permettant de répertorier d'autres types de tables. Les instantanés de la table sont de type SNAPSHOT.

Vous pouvez répertorier les instantanés de table en utilisant l'une des options suivantes :

Console

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans le volet Explorateur, développez les nœuds du projet et de l'ensemble de données dont vous souhaitez répertorier les instantanés de table.

  3. Vous pouvez identifier les instantanés de table dans l'ensemble de données à l'aide de leur icône.

    Icône de l'instantané de table

SQL

Interrogez la vue INFORMATION_SCHEMA.TABLE_SNAPSHOTS :

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requête, saisissez l'instruction suivante :

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant les instantanés que vous souhaitez répertorier.
    • DATASET_NAME : nom de l'ensemble de données contenant les instantanés que vous souhaitez répertorier.

  3. Cliquez sur Exécuter.

Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.

Le résultat doit ressembler à ce qui suit.

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

Saisissez la commande suivante dans Cloud Shell :

Accéder à Cloud Shell

bq ls \
PROJECT_ID:DATASET_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant les instantanés que vous souhaitez répertorier.
  • DATASET_NAME : nom de l'ensemble de données contenant les instantanés que vous souhaitez répertorier.

La sortie ressemble à ceci :

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

API

Appelez la méthode tables.list avec les paramètres suivants :

Paramètre Valeur
projectId ID du projet contenant les instantanés que vous souhaitez répertorier.
datasetId Nom de l'ensemble de données contenant les instantanés que vous souhaitez répertorier.

Répertorier les instantanés de table associés à une table de base spécifiée

Vous pouvez regrouper les instantanés d'une table de base spécifiée en interrogeant la vue INFORMATION_SCHEMA.TABLE_SNAPSHOTS :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant les instantanés que vous souhaitez répertorier.
  • DATASET_NAME : nom de l'ensemble de données contenant les instantanés que vous souhaitez répertorier.

Étapes suivantes