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 la Google Cloud console, en interrogeant la
INFORMATION_SCHEMA.TABLE_SNAPSHOTS
table, en exécutant la bq ls
commande ou en appelant l'tables.list
API. 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.dataUserbigquery.dataViewerbigquery.dataEditorbigquery.dataOwnerbigquery.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
Dans la Google Cloud console, accédez à la page BigQuery.
Dans le volet de gauche, cliquez sur Explorateur:

Si le volet de gauche ne s'affiche pas, cliquez sur Développer le volet de gauche pour l'ouvrir.
Dans le volet Explorateur, développez le projet, cliquez sur Ensembles de données, puis sélectionnez l'ensemble de données contenant les instantanés de table que vous souhaitez répertorier.
Cliquez sur Présentation > Tables. Pour trouver des instantanés dans la liste, recherchez la valeur
SNAPSHOTdans la colonne Type.
SQL
Interrogez la
INFORMATION_SCHEMA.TABLE_SNAPSHOTS vue :
Dans la Google Cloud console, accédez à la page BigQuery.
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.
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 :
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
- Obtenir des informations sur un instantané de table
- Mettre à jour la description, la date d'expiration ou la règle d'accès d'un instantané de table
- Supprimer un instantané de table