Mettre à jour les métadonnées d'un instantané de table

Ce document explique comment mettre à jour la description, la date d'expiration ou les règles d'accès d'un instantané de table à l'aide de Google Cloud Console, de la commande bq update ou de l'API tables.patch. Il est destiné aux utilisateurs familiarisés avec les tables et les instantanés de tables dans BigQuery.

Autorisations et rôles

Cette section décrit les autorisations IAM (Identity and Access Management) dont vous avez besoin pour mettre à jour les métadonnées d'un instantané de table, ainsi que les rôles IAM prédéfinis accordant ces autorisations.

Autorisations

Pour mettre à jour les métadonnées d'un instantané de table, vous devez disposer de l'autorisation suivante :

Autorisation Ressource
bigquery.tables.update Instantané 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.dataEditor
bigquery.dataOwner
biguqery.admin
Instantané de table

Limites

Vous pouvez mettre à jour les métadonnées d'un instantané de table, mais vous ne pouvez pas mettre à jour ses données, car celles-ci sont en lecture seule. Pour mettre à jour les données d'un instantané de table, vous devez d'abord restaurer cet instantané vers une table standard, puis mettre à jour les données de la table standard. Pour en savoir plus, consultez la page Restaurer des instantanés de table.

Mettre à jour les métadonnées d'un instantané de table

Vous pouvez modifier la description, l'expiration et les règles d'accès d'un instantané de table de la même manière que vous modifiez les métadonnées d'une table standard. Certains exemples sont fournis dans les sections suivantes.

Mettre à jour la description

Vous pouvez modifier la description d'un instantané 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 de projet et d'ensemble de données de l'instantané de table que vous souhaitez mettre à jour.

  3. Cliquez sur le nom de l'instantané de table.

  4. Dans le volet de l'instantané qui s'affiche, cliquez sur l'onglet Détails, puis sur Modifier les détails.

  5. Dans le champ Description, ajoutez ou mettez à jour la description de l'instantané de table.

  6. Cliquez sur Enregistrer.

bq

Saisissez la commande suivante dans Cloud Shell :

Accéder à Cloud Shell

bq update \
--description="DESCRIPTION" \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Remplacez les éléments suivants :

  • DESCRIPTION : texte décrivant l'instantané. Par exemple, Snapshot after table schema change X..
  • PROJECT_ID : ID du projet qui contient l'ensemble de l'instantané.
  • DATASET_NAME : nom de l'ensemble de données contenant l'instantané.
  • SNAPSHOT_NAME : nom de l'instantané.

API

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

Paramètre Valeur
projectId ID du projet contenant l'instantané.
datasetId Nom de l'ensemble de données contenant l'instantané.
tableId Nom de l'instantané.
Champ description du corps de la requête. Texte décrivant l'instantané. Par exemple, Snapshot after table schema change X.

Préférez la méthode tables.patch à la méthode tables.update, car la méthode tables.update remplace l'intégralité de la ressource Table.

Mettre à jour le délai d'expiration

Vous pouvez modifier le délai d'expiration d'un instantané 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 de projet et d'ensemble de données de l'instantané de table que vous souhaitez mettre à jour.

  3. Cliquez sur le nom de l'instantané de table.

  4. Dans le volet de l'instantané qui s'affiche, cliquez sur l'onglet Détails, puis sur Modifier les détails.

  5. Dans le champ Délai d'expiration, saisissez le nouveau délai d'expiration de l'instantané de la table.

  6. Cliquez sur Enregistrer.

bq

Saisissez la commande suivante dans Cloud Shell :

Accéder à Cloud Shell

bq update \
--expiration=EXPIRATION_TIME \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Remplacez les éléments suivants :

  • EXPIRATION_TIME : nombre de secondes entre l'heure actuelle et l'heure d'expiration.
  • PROJECT_ID : ID du projet qui contient l'ensemble de l'instantané.
  • DATASET_NAME : nom de l'ensemble de données contenant l'instantané.
  • SNAPSHOT_NAME : nom de l'instantané.

API

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

Paramètre Valeur
projectId ID du projet contenant l'instantané.
datasetId Nom de l'ensemble de données contenant l'instantané.
tableId Nom de l'instantané.
Champ expirationTime du corps de la requête. Heure à laquelle l'instantané expire, en millisecondes depuis l'époque.

Préférez la méthode tables.patch à la méthode tables.update, car la méthode tables.update remplace l'intégralité de la ressource Table.

Mettre à jour l'accès

Vous pouvez autoriser un utilisateur à consulter les données d'un instantané 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 de projet et d'ensemble de données de l'instantané de table que vous souhaitez mettre à jour.

  3. Cliquez sur le nom de l'instantané de table.

  4. Dans le volet de l'instantané qui s'affiche, cliquez sur Partager, puis sur Ajouter un compte principal.

  5. Dans le volet Ajouter des comptes principaux qui s'affiche, saisissez l'identifiant du compte principal auquel vous souhaitez accorder l'accès à l'instantané de la table.

  6. Dans la liste déroulante Sélectionner un rôle, sélectionnez BigQuery, puis Lecteur de données BigQuery.

  7. Cliquez sur Enregistrer.

bq

Saisissez la commande suivante dans Cloud Shell :

Accéder à Cloud Shell

bq add-iam-policy-binding \
    --member="user:PRINCIPAL" \
    --role="roles/bigquery.dataViewer" \
    PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Remplacez les éléments suivants :

  • PRINCIPAL : compte principal auquel vous souhaitez accorder à l'accès à l'instantané de la table.
  • PROJECT_ID : ID du projet qui contient l'ensemble de l'instantané.
  • DATASET_NAME : nom de l'ensemble de données contenant l'instantané.
  • SNAPSHOT_NAME : nom de l'instantané.

API

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

Paramètre Valeur
Resource
projects/PROJECT_ID/datasets/DATASET_NAME/tables/SNAPSHOT_NAME
Corps de la requête
{
      "policy": {
        "bindings": [
          {
            "members": [
              "user:PRINCIPAL"
            ],
            "role": "roles/bigquery.dataViewer"
          }
        ]
      }
    }

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet qui contient l'ensemble de l'instantané.
  • DATASET_NAME : nom de l'ensemble de données contenant l'instantané.
  • SNAPSHOT_NAME : nom de l'instantané.
  • PRINCIPAL : compte principal auquel vous souhaitez accorder à l'accès à l'instantané de la table.

Étapes suivantes