Mettre à jour les propriétés des ensembles de données

Ce document explique comment mettre à jour les propriétés d'un ensemble de données dans BigQuery. Après avoir créé un ensemble de données, vous pouvez mettre à jour les propriétés suivantes :

Avant de commencer

Attribuez aux utilisateurs des rôles IAM (Identity and Access Management) incluant les autorisations nécessaires pour effectuer l'ensemble des tâches du présent document.

Autorisations requises

Pour mettre à jour les propriétés d'un ensemble de données, vous devez disposer des autorisations IAM suivantes :

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (obligatoire uniquement lors de la mise à jour des contrôles d'accès à un ensemble de données dans la console Google Cloud )

Le rôle IAM prédéfini roles/bigquery.dataOwner inclut les autorisations dont vous avez besoin pour mettre à jour les propriétés d'un ensemble de données.

En outre, si vous disposez de l'autorisation bigquery.datasets.create, vous pouvez mettre à jour les propriétés des ensembles de données que vous créez.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Mettre à jour les descriptions des ensembles de données

Vous pouvez mettre à jour la description d'un ensemble de données comme suit :

  • Utiliser la console Google Cloud .
  • Utiliser la commande bq update de l'outil de ligne de commande bq
  • Appeler la méthode API datasets.patch
  • En utilisant les bibliothèques clientes

Pour mettre à jour la description d'un ensemble de données, procédez comme suit.

Console

  1. Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.

  2. Développez l'option Actions puis cliquez sur Ouvrir.

  3. Dans le panneau Détails, cliquez sur Modifier les détails pour modifier le texte de description.

    Dans la boîte de dialogue Modifier les détails qui s'affiche, procédez comme suit :

    1. Dans le champ Description, saisissez une description ou modifiez la description existante.
    2. Pour enregistrer la nouvelle description, cliquez sur Enregistrer.

SQL

Pour mettre à jour la description d'un ensemble de données, utilisez l'instruction ALTER SCHEMA SET OPTIONS pour définir l'option description.

L'exemple suivant définit la description d'un ensemble de données nommé mydataset :

  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 :

     ALTER SCHEMA mydataset
     SET OPTIONS (
         description = 'Description of mydataset');
     

  3. Cliquez sur Exécuter.

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

bq

Exécutez la commande bq update avec l'option --description. Si vous mettez à jour un ensemble de données dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : project_id:dataset.

bq update \
--description "string" \
project_id:dataset

Remplacez l'élément suivant :

  • string : texte qui décrit l'ensemble de données entre guillemets.
  • project_id : ID de votre projet.
  • dataset : nom de l'ensemble de données que vous mettez à jour.

Exemples :

Saisissez la commande suivante pour remplacer la description de mydataset par "Description of mydataset". mydataset se trouve dans votre projet par défaut.

bq update --description "Description of mydataset" mydataset

Saisissez la commande suivante pour remplacer la description de mydataset par "Description of mydataset". L'ensemble de données se trouve dans myotherproject, et non dans votre projet par défaut.

bq update \
--description "Description of mydataset" \
myotherproject:mydataset

API

Appelez datasets.patch, puis mettez à jour la propriété description de la ressource d'ensemble de données. Étant donné que la méthode datasets.update remplace l'intégralité de la ressource d'ensemble de données, la méthode datasets.patch est préférable.

Go

Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Go.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// updateDatasetDescription demonstrates how the Description metadata of a dataset can
// be read and modified.
func updateDatasetDescription(projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{
		Description: "Updated Description.",
	}
	if _, err = ds.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

Créez une instance Dataset.Builder à partir d'une instance Dataset existante à l'aide de la méthode Dataset.toBuilder(). Configurez l'objet pour la génération de l'ensemble de données. Générez l'ensemble de données mis à jour avec la méthode Dataset.Builder.build(), puis appelez la méthode Dataset.update() pour envoyer la mise à jour à l'API.
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;

public class UpdateDatasetDescription {

  public static void runUpdateDatasetDescription() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String newDescription = "this is the new dataset description";
    updateDatasetDescription(datasetName, newDescription);
  }

  public static void updateDatasetDescription(String datasetName, String newDescription) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      Dataset dataset = bigquery.getDataset(datasetName);
      bigquery.update(dataset.toBuilder().setDescription(newDescription).build());
      System.out.println("Dataset description updated successfully to " + newDescription);
    } catch (BigQueryException e) {
      System.out.println("Dataset description was not updated \n" + e.toString());
    }
  }
}

Node.js

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Node.js.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateDatasetDescription() {
  // Updates a dataset's description.

  // Retreive current dataset metadata
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();

  // Set new dataset description
  const description = 'New dataset description.';
  metadata.description = description;

  const [apiResponse] = await dataset.setMetadata(metadata);
  const newDescription = apiResponse.description;

  console.log(`${datasetId} description: ${newDescription}`);
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

Configurez la propriété Dataset.description, puis appelez Client.update_dataset() pour envoyer la mise à jour à l'API.

from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = 'your-project.your_dataset'

dataset = client.get_dataset(dataset_id)  # Make an API request.
dataset.description = "Updated description."
dataset = client.update_dataset(dataset, ["description"])  # Make an API request.

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
    "Updated dataset '{}' with description '{}'.".format(
        full_dataset_id, dataset.description
    )
)

Mettre à jour les délais d'expiration des tables par défaut

Vous pouvez mettre à jour le délai d'expiration de table par défaut d'un ensemble de données comme suit :

  • Utiliser la console Google Cloud .
  • Utiliser la commande bq update de l'outil de ligne de commande bq
  • Appeler la méthode API datasets.patch
  • Utiliser les bibliothèques clientes

Vous pouvez définir un délai d'expiration de la table par défaut au niveau de l'ensemble de données ou définir le délai d'expiration d'une table lors de sa création. Si vous définissez le délai d'expiration lorsque vous créez la table, le délai par défaut est ignoré. Si vous ne définissez pas de délai d'expiration de table par défaut au niveau de l'ensemble de données et que vous ne définissez pas de délai d'expiration lorsque vous créez la table, celle-ci n'expire jamais et vous devez la supprimer manuellement. Lorsqu'une table expire, elle est supprimée avec toutes les données qu'elle contient.

Lorsque vous mettez à jour le délai d'expiration de table par défaut pour un ensemble de données, prenez en compte les points suivants.

  • Si vous remplacez la valeur Never (Jamais) par un délai d'expiration défini, toutes les tables qui existent déjà dans l'ensemble de données n'expireront que si le délai d'expiration a été défini sur la table au moment de sa création.
  • Si vous modifiez la valeur du délai d'expiration par défaut, toutes les tables existantes expireront conformément au délai d'expiration de table d'origine. Le nouveau délai d'expiration de table est appliqué à toutes les nouvelles tables créées dans l'ensemble de données, sauf si vous spécifiez un autre délai d'expiration lors de la création d'une table.

La valeur du délai d'expiration par défaut de table est exprimée différemment selon l'endroit où elle est définie. Parmi les méthodes ci-dessous, utilisez celle qui vous donne le niveau de précision adéquat.

  • Dans la console Google Cloud , le délai d'expiration est exprimé en jours.
  • Dans l'outil de ligne de commande bq, le délai d'expiration est exprimé en secondes.
  • Dans l'API, le délai d'expiration est exprimé en millisecondes.

Pour mettre à jour le délai d'expiration par défaut d'un ensemble de données, procédez comme suit.

Console

  1. Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.

  2. Développez l'option Actions puis cliquez sur Ouvrir.

  3. Sur la page Détails, cliquez sur l'icône en forme de crayon à côté de l'onglet Informations sur l'ensemble de données pour modifier le délai d'expiration.

  4. Dans la boîte de dialogue Informations sur l'ensemble de données, dans la section Expiration de la table par défaut, saisissez une valeur pour le paramètre Nombre de jours après la création de la table.

  5. Cliquez sur Enregistrer.

SQL

Pour mettre à jour le délai d'expiration de table par défaut, utilisez l'instruction ALTER SCHEMA SET OPTIONS pour définir l'option default_table_expiration_days.

L'exemple suivant met à jour le délai d'expiration par défaut de la table pour un ensemble de données nommé mydataset.

  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 :

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_table_expiration_days = 3.75);
     

  3. Cliquez sur Exécuter.

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

bq

Pour mettre à jour le délai d'expiration par défaut des tables nouvellement créées dans un ensemble de données, saisissez la commande bq update avec l'option --default_table_expiration. Si vous mettez à jour un ensemble de données dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : project_id:dataset.

bq update \
--default_table_expiration integer \
project_id:dataset

Remplacez l'élément suivant :

  • integer : durée de vie par défaut (en secondes) des tables nouvellement créées. La valeur minimale est de 3 600 secondes (une heure). Le délai d'expiration correspond à l'heure UTC actuelle plus la valeur entière. Spécifiez 0 pour supprimer le délai d'expiration existant. Toutes les tables créées dans l'ensemble de données sont supprimées integer secondes après leur création. Cette valeur est appliquée si vous ne définissez pas de délai d'expiration pour la table lors de sa création.
  • project_id : ID de votre projet.
  • dataset : nom de l'ensemble de données que vous mettez à jour.

Exemples :

Pour les nouvelles tables créées dans mydataset, saisissez la commande suivante pour définir le délai d'expiration de table par défaut sur deux heures (7 200 secondes) à partir de l'heure actuelle. L'ensemble de données se trouve dans votre projet par défaut.

bq update --default_table_expiration 7200 mydataset

Pour les nouvelles tables créées dans mydataset, saisissez la commande suivante pour définir le délai d'expiration de table par défaut sur deux heures (7 200 secondes) à partir de l'heure actuelle. L'ensemble de données se trouve dans myotherproject, et non dans votre projet par défaut.

bq update --default_table_expiration 7200 myotherproject:mydataset

API

Appelez datasets.patch, puis mettez à jour la propriété defaultTableExpirationMs de la ressource d'ensemble de données. Dans l'API, le délai d'expiration est exprimé en millisecondes. Étant donné que la méthode datasets.update remplace l'intégralité de la ressource d'ensemble de données, la méthode datasets.patch est préférable.

Go

Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Go.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

import (
	"context"
	"fmt"
	"time"

	"cloud.google.com/go/bigquery"
)

// updateDatasetDefaultExpiration demonstrats setting the default expiration of a dataset
// to a specific retention period.
func updateDatasetDefaultExpiration(projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{
		DefaultTableExpiration: 24 * time.Hour,
	}
	if _, err := client.Dataset(datasetID).Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

Créez une instance Dataset.Builder à partir d'une instance Dataset existante à l'aide de la méthode Dataset.toBuilder(). Configurez l'objet pour la génération de l'ensemble de données. Générez l'ensemble de données mis à jour avec la méthode Dataset.Builder.build(), puis appelez la méthode Dataset.update() pour envoyer la mise à jour à l'API.

Configurez le délai d'expiration par défaut avec la méthode Dataset.Builder.setDefaultTableLifetime().

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import java.util.concurrent.TimeUnit;

public class UpdateDatasetExpiration {

  public static void runUpdateDatasetExpiration() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    updateDatasetExpiration(datasetName);
  }

  public static void updateDatasetExpiration(String datasetName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      // Update dataset expiration to one day
      Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS);

      Dataset dataset = bigquery.getDataset(datasetName);
      bigquery.update(dataset.toBuilder().setDefaultTableLifetime(newExpiration).build());
      System.out.println("Dataset description updated successfully to " + newExpiration);
    } catch (BigQueryException e) {
      System.out.println("Dataset expiration was not updated \n" + e.toString());
    }
  }
}

Node.js

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Node.js.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateDatasetExpiration() {
  // Updates the lifetime of all tables in the dataset, in milliseconds.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_dataset";

  // Retreive current dataset metadata
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();

  // Set new dataset metadata
  const expirationTime = 24 * 60 * 60 * 1000;
  metadata.defaultTableExpirationMs = expirationTime.toString();

  const [apiResponse] = await dataset.setMetadata(metadata);
  const newExpirationTime = apiResponse.defaultTableExpirationMs;

  console.log(`${datasetId} expiration: ${newExpirationTime}`);
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

Configurez la propriété Dataset.default_table_expiration_ms, puis appelez Client.update_dataset() pour envoyer la mise à jour à l'API.

from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = 'your-project.your_dataset'

dataset = client.get_dataset(dataset_id)  # Make an API request.
dataset.default_table_expiration_ms = 24 * 60 * 60 * 1000  # In milliseconds.

dataset = client.update_dataset(
    dataset, ["default_table_expiration_ms"]
)  # Make an API request.

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
    "Updated dataset {} with new expiration {}".format(
        full_dataset_id, dataset.default_table_expiration_ms
    )
)

Mettre à jour les délais d'expiration des partitions par défaut

Vous pouvez mettre à jour le délai d'expiration de partition par défaut d'un ensemble de données comme suit :

  • Utiliser la commande bq update de l'outil de ligne de commande bq
  • Appeler la méthode API datasets.patch
  • Utiliser les bibliothèques clientes

La définition ou la mise à jour du délai d'expiration de partition par défaut d'un ensemble de données n'est actuellement pas possible avec la console Google Cloud .

Vous pouvez définir, au niveau de l'ensemble de données, un délai d'expiration de partition par défaut qui affecte l'ensemble des tables partitionnées nouvellement créées. Vous pouvez également définir un délai d'expiration de partition pour des tables individuelles au moment de leur création. Si vous définissez à la fois un délai d'expiration de partition par défaut au niveau de l'ensemble de données et un délai d'expiration de table par défaut au niveau de l'ensemble de données, les nouvelles tables partitionnées n'auront qu'un délai d'expiration de partition. Si les deux options sont définies, le délai d'expiration de partition par défaut remplace celui appliqué aux tables.

Si vous définissez le délai d'expiration de partition lorsque vous créez la table partitionnée, cette valeur remplace le délai d'expiration de partition par défaut au niveau de l'ensemble de données, s'il existe.

Si vous ne définissez pas de délai d'expiration de partition par défaut au niveau de l'ensemble de données ni de délai d'expiration de partition lors de la création de la table, les partitions n'expirent jamais et vous devez les supprimer manuellement.

Lorsque vous définissez un délai d'expiration de partition par défaut sur un ensemble de données, celui-ci s'applique à toutes les partitions de toutes les tables partitionnées créées dans l'ensemble de données. Lorsque vous définissez le délai d'expiration de partition sur une table, celui-ci s'applique à toutes les partitions créées dans la table spécifiée. Actuellement, vous ne pouvez pas appliquer différents délais d'expiration à différentes partitions de la même table.

Lorsque vous mettez à jour le délai d'expiration de partition par défaut d'un ensemble de données, prenez en compte les points suivants :

  • Si vous remplacez la valeur never (Jamais) par un délai d'expiration défini, toutes les partitions qui existent déjà dans les tables partitionnées de l'ensemble de données n'expireront que si le délai d'expiration de partition a été défini sur la table au moment de sa création.
  • Si vous modifiez la valeur du délai d'expiration de partition par défaut, toutes les partitions des tables partitionnées existantes expirent conformément au délai d'expiration de partition par défaut d'origine. Le nouveau délai d'expiration de partition par défaut est appliqué à toutes les nouvelles tables partitionnées créées dans l'ensemble de données, sauf si vous spécifiez un autre délai d'expiration de partition sur la table au moment de la création de celle-ci.

La valeur du délai d'expiration de partition par défaut est exprimée différemment selon l'endroit où elle est définie. Parmi les méthodes ci-dessous, utilisez celle qui vous donne le niveau de précision adéquat.

  • Dans l'outil de ligne de commande bq, le délai d'expiration est exprimé en secondes.
  • Dans l'API, le délai d'expiration est exprimé en millisecondes.

Pour mettre à jour le délai d'expiration de partition par défaut d'un ensemble de données, procédez comme suit :

Console

La mise à jour du délai d'expiration de partition par défaut d'un ensemble de données n'est actuellement pas possible dans la console Google Cloud .

SQL

Pour mettre à jour le délai d'expiration de la partition par défaut, utilisez l'instruction ALTER SCHEMA SET OPTIONS pour définir l'option default_partition_expiration_days.

L'exemple suivant met à jour le délai d'expiration par défaut de la partition pour un ensemble de données nommé mydataset :

  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 :

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_partition_expiration_days = 3.75);
     

  3. Cliquez sur Exécuter.

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

bq

Pour mettre à jour le délai d'expiration par défaut d'un ensemble de données, saisissez la commande bq update avec l'option --default_partition_expiration. Si vous mettez à jour un ensemble de données dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : project_id:dataset.

bq update \
--default_partition_expiration integer \
project_id:dataset

Remplacez l'élément suivant :

  • integer : durée de vie par défaut (en secondes) des partitions des tables partitionnées nouvellement créées. Aucune valeur minimale n'est définie pour cette option. Spécifiez 0 pour supprimer le délai d'expiration existant. Toutes les partitions des tables partitionnées nouvellement créées sont supprimées integer secondes après la date UTC des partitions. Cette valeur est appliquée si vous ne définissez pas de délai d'expiration de partition sur la table lors de sa création.
  • project_id : ID de votre projet.
  • dataset : nom de l'ensemble de données que vous mettez à jour.

Exemples :

Saisissez la commande suivante pour définir le délai d'expiration de partition par défaut pour les nouvelles tables partitionnées créées dans mydataset sur 26 heures (93 600 secondes). L'ensemble de données se trouve dans votre projet par défaut.

bq update --default_partition_expiration 93600 mydataset

Saisissez la commande suivante pour définir le délai d'expiration de partition par défaut pour les nouvelles tables partitionnées créées dans mydataset sur 26 heures (93 600 secondes). L'ensemble de données se trouve dans myotherproject, et non dans votre projet par défaut.

bq update --default_partition_expiration 93600 myotherproject:mydataset

API

Appelez datasets.patch, puis mettez à jour la propriété defaultPartitionExpirationMs de la ressource d'ensemble de données. Le délai d'expiration est exprimé en millisecondes. Étant donné que la méthode datasets.update remplace l'intégralité de la ressource d'ensemble de données, la méthode datasets.patch est préférable.

Mettre à jour le mode d'arrondi

Vous pouvez mettre à jour le mode d'arrondi par défaut d'un ensemble de données à l'aide de l'instruction LDD ALTER SCHEMA SET OPTIONS. L'exemple suivant met à jour le mode d'arrondi par défaut pour mydataset en ROUND_HALF_EVEN.

ALTER SCHEMA mydataset
SET OPTIONS (
  default_rounding_mode = "ROUND_HALF_EVEN");

Cela définit le mode d'arrondi par défaut pour les nouvelles tables créées dans l'ensemble de données. Cela n'a aucun impact sur les nouvelles colonnes ajoutées aux tables existantes. Cette option est ignorée si vous définissez le mode d'arrondi par défaut sur une table de l'ensemble de données.

Mettre à jour les fenêtres de fonctionnalité temporelle

Vous pouvez mettre à jour la fenêtre de fonctionnalité temporelle d'un ensemble de données comme suit :

  • Utiliser la console Google Cloud .
  • Utilisez l'instruction ALTER SCHEMA SET OPTIONS.
  • Utiliser la commande bq update de l'outil de ligne de commande bq.
  • Appeler la méthode API datasets.patch ou datasets.update La méthode update remplace l'intégralité de la ressource d'ensemble de données, tandis que la méthode patch ne remplace que les champs fournis dans la ressource d'ensemble de données fournie.

Pour plus d'informations sur la fenêtre de fonctionnalité temporelle, consultez la section Configurer la fenêtre de fonctionnalité temporelle.

Pour mettre à jour la fenêtre de fonctionnalité temporelle pour un ensemble de données :

Console

  1. Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.
  2. Développez l'option Actions puis cliquez sur Ouvrir.
  3. Dans le panneau Détails, cliquez sur Modifier les détails.
  4. Développez les Options avancées, puis sélectionnez la fenêtre de fonctionnalité temporelle à utiliser.
  5. Cliquez sur Enregistrer.

SQL

Utilisez l'instruction ALTER SCHEMA SET OPTIONS avec l'option max_time_travel_hours pour spécifier la fenêtre de fonctionnalité temporelle pendant la modification d'un ensemble de données. La valeur max_time_travel_hours doit être un entier exprimé par des multiples de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 jours) et 168 (7 jours).

  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 :

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
      max_time_travel_hours = HOURS);

    Remplacez les éléments suivants :

    • DATASET_NAME : nom de l'ensemble de données que vous mettez à jour.
    • HOURS par la durée de la fenêtre de fonctionnalité temporelle, en heures.

  3. Cliquez sur Exécuter.

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

bq

Exécutez la commande bq update avec l'option --max_time_travel_hours pour spécifier la fenêtre de fonctionnalité temporelle pendant la modification d'un ensemble de données. La valeur --max_time_travel_hours doit être un entier exprimé par des multiples de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 jours) et 168 (7 jours).

bq update \
--dataset=true --max_time_travel_hours=HOURS \
PROJECT_ID:DATASET_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet.
  • DATASET_NAME : nom de l'ensemble de données que vous mettez à jour.
  • HOURS par la durée de la fenêtre de fonctionnalité temporelle, en heures.

API

Appelez la méthode datasets.patch ou datasets.update avec une ressource d'ensemble de données dans laquelle vous avez spécifié une valeur pour le champ maxTimeTravelHours. La valeur maxTimeTravelHours doit être un entier exprimé par des multiples de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 jours) et 168 (7 jours).

Mettre à jour les modèles de facturation du stockage

Vous pouvez modifier le modèle de facturation du stockage d'un ensemble de données. Définissez la valeur storage_billing_model sur PHYSICAL pour utiliser des octets physiques lors du calcul des modifications de l'espace de stockage ou sur LOGICAL pour utiliser des octets logiques. LOGICAL est la valeur par défaut.

Lorsque vous modifiez le modèle de facturation d'un ensemble de données, la prise en compte de la modification prend 24 heures.

Une fois que vous avez modifié le modèle de facturation du stockage d'un ensemble de données, vous devez attendre 14 jours avant de pouvoir modifier à nouveau le modèle de facturation du stockage.

Console

  1. Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.
  2. Développez l'option Actions puis cliquez sur Ouvrir.
  3. Dans le panneau Détails, cliquez sur Modifier les détails.
  4. Développez les Options avancées, puis sélectionnez Activer le modèle de facturation du stockage physique pour utiliser la facturation du stockage physique, ou désélectionnez l'option pour utiliser la facturation du stockage logique.
  5. Cliquez sur Enregistrer.

SQL

Pour mettre à jour le modèle de facturation d'un ensemble de données, utilisez l'instruction ALTER SCHEMA SET OPTIONS et définissez l'option storage_billing_model :

  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 :

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
     storage_billing_model = 'BILLING_MODEL');

    Remplacez les éléments suivants :

    • DATASET_NAME par le nom de l'ensemble de données que vous modifiez.
    • BILLING_MODEL par le type de stockage que vous souhaitez utiliser (LOGICAL ou PHYSICAL).

  3. Cliquez sur Exécuter.

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

Pour mettre à jour le modèle de facturation de l'espace de stockage de tous les ensembles de données d'un projet, utilisez la requête SQL suivante pour chaque région où se trouvent les ensembles de données :

FOR record IN
 (SELECT CONCAT(catalog_name, '.', schema_name) AS dataset_path
 FROM PROJECT_ID.region-REGION.INFORMATION_SCHEMA.SCHEMATA)
DO
 EXECUTE IMMEDIATE
   "ALTER SCHEMA `" || record.dataset_path || "` SET OPTIONS(storage_billing_model = 'BILLING_MODEL')";
END FOR;

Remplacez les éléments suivants :

  • PROJECT_ID par votre ID de projet
  • REGION avec un qualificatif de région
  • BILLING_MODEL par le type de stockage que vous souhaitez utiliser (LOGICAL ou PHYSICAL).

bq

Pour mettre à jour le modèle de facturation d'un ensemble de données, exécutez la commande bq update en définissant l'option --storage_billing_model :

bq update -d --storage_billing_model=BILLING_MODEL PROJECT_ID:DATASET_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet.
  • DATASET_NAME : nom de l'ensemble de données que vous mettez à jour.
  • BILLING_MODEL : type de stockage que vous souhaitez utiliser (LOGICAL ou PHYSICAL)

API

Appelez la méthode datasets.update avec une ressource d'ensemble de données définie, où le champ storageBillingModel est défini.

L'exemple suivant montre comment appeler datasets.update avec curl :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X PUT https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID -d '{"datasetReference": {"projectId": "PROJECT_ID", "datasetId": "DATASET_NAME"}, "storageBillingModel": "BILLING_MODEL"}'

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet.
  • DATASET_NAME : nom de l'ensemble de données que vous mettez à jour.
  • BILLING_MODEL : type de stockage que vous souhaitez utiliser (LOGICAL ou PHYSICAL)

Mettre à jour les contrôles des accès

Pour savoir comment contrôler l'accès aux ensembles de données dans BigQuery, consultez la page Contrôler l'accès aux ensembles de données. Pour en savoir plus sur le chiffrement des données, consultez la page Chiffrement au repos.

Étapes suivantes