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 console Google Cloud , 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 lister 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
Dans la console Google Cloud , accédez à la page BigQuery.
Dans le panneau de gauche, cliquez sur
Explorer :Si le volet de gauche n'apparaît 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 lister.
Cliquez sur Présentation > Tables. Pour trouver des instantanés dans la liste, recherchez la valeur
SNAPSHOT
dans la colonne Type.
SQL
Interrogez la vue INFORMATION_SCHEMA.TABLE_SNAPSHOTS
:
Dans la console Google Cloud , 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