Supprimer des modèles

Cette page explique comment supprimer des modèles BigQuery ML à l'aide des méthodes suivantes :

  • à l'aide de Cloud Console ;
  • en utilisant la commande bq rm de l'outil de ligne de commande ou la commande bq query ;
  • en appelant la méthode models.delete de l'API ou la méthode jobs.query ;
  • utiliser les bibliothèques clientes.

Actuellement, vous ne pouvez supprimer qu'un modèle à la fois. Lorsque vous supprimez un modèle, toutes ses données sont également supprimées.

Pour supprimer automatiquement les modèles après une période spécifiée, définissez la date d'expiration du modèle lorsque vous le créez à l'aide de la CLI, de l'API ou des bibliothèques clientes. Si vous n'avez pas défini la date d'expiration lors de la création du modèle, vous pouvez la mettre à jour.

Limites applicables à la suppression de modèles

La suppression d'un modèle est soumise aux limites suivantes :

  • Vous ne pouvez pas supprimer plusieurs modèles en même temps. Les modèles doivent être supprimés individuellement.
  • La suppression d'un modèle ne peut pas être annulée.

Autorisations requises

Pour supprimer des modèles dans un ensemble de données, vous devez disposer du rôle WRITER sur l'ensemble de données, ou d'un rôle IAM au niveau du projet qui comprend les autorisations bigquery.models.delete. Si vous disposez des autorisations bigquery.models.delete au niveau du projet, vous pouvez supprimer des modèles dans n'importe quel ensemble de données du projet. Les rôles IAM suivants au niveau du projet comprennent les autorisations bigquery.models.delete :

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery ML, consultez la page Contrôle des accès. Pour en savoir plus sur les rôles au niveau des ensembles de données, consultez la section Rôles primitifs pour les ensembles de données dans la documentation BigQuery.

Supprimer un modèle

Pour supprimer un modèle, procédez comme suit :

Console

Vous pouvez supprimer un modèle dans l'interface utilisateur Web BigQuery à l'aide de l'option Supprimer le modèle ou en exécutant une requête contenant une instruction LDD DROP MODEL | DROP MODEL IF EXISTS.

Option 1 : utilisez l'option Supprimer le modèle.

  1. Accédez à l'UI Web de BigQuery dans Cloud Console.

    Accéder à l'UI Web de BigQuery

  2. Dans le panneau de navigation, dans la section Ressources, développez le nom de votre projet et celui de l'ensemble de données.

  3. Cliquez sur le nom de votre modèle. Les modèles sont indiqués par l'icône icône de modèle.

  4. Sur le côté droit de la fenêtre, cliquez sur Supprimer le modèle.

  5. Dans la boîte de dialogue Supprimer le modèle, saisissez le nom du modèle, puis cliquez sur Supprimer.

Option 2 : utilisez une instruction LDD.

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Compose new query (Saisir une nouvelle requête).

  3. Saisissez votre instruction LDD dans la zone de texte de l'éditeur de requête.

     DROP MODEL mydataset.mymodel
     

  4. Cliquez sur Run (Exécuter). Une fois la requête terminée, le modèle est supprimé du volet de navigation.

CLI

Vous pouvez supprimer un modèle à l'aide de l'outil de ligne de commande bq en saisissant :

  • la commande bq rm avec l'option --model ou -m ;
  • la commande bq query en spécifiant l'instruction LDD comme paramètre de requête.

Si vous supprimez un modèle 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].[MODEL].

Option 1 : saisir la commande bq rm

Lorsque vous utilisez la commande bq rm pour supprimer un modèle, vous devez confirmer l'action. L'indicateur --force (ou le raccourci -f) vous permet d'ignorer cette étape.

bq rm -f --model [PROJECT_ID]:[DATASET].[MODEL]

Où :

  • [PROJECT_ID] est l'ID de votre projet.
  • [DATASET] est le nom de l'ensemble de données.
  • [MODEL] est le nom du modèle que vous supprimez.

La commande rm n'affiche aucun résultat.

Exemples :

Saisissez la commande suivante pour supprimer mymodel de mydataset. mydataset se trouve dans votre projet par défaut.

bq rm --model mydataset.mymodel

Saisissez la commande suivante pour supprimer mymodel de mydataset. mydataset se trouve dans myotherproject, et non dans votre projet par défaut.

bq rm --model myotherproject:mydataset.mymodel

Saisissez la commande suivante pour supprimer mymodel de mydataset. mydataset se trouve dans votre projet par défaut. La commande utilise le raccourci -f pour contourner la confirmation.

bq rm -f --model mydataset.mymodel

Vous pouvez confirmer la suppression du modèle à l'aide de la commande bq ls. Pour en savoir plus, reportez-vous à la page Répertorier des modèles.

Option 2 : saisir la commande bq query

Pour supprimer un modèle à l'aide de la commande bq query, indiquez l'instruction DROP MODEL dans le paramètre de requête et l'option --use_legacy_sql=false pour spécifier la syntaxe de requête en SQL standard.

Exemples :

Saisissez la commande suivante pour supprimer mymodel de mydataset. mydataset se trouve dans votre projet par défaut.

bq query --use_legacy_sql=false 'DROP MODEL mydataset.mymodel'

Saisissez la commande suivante pour supprimer mymodel de mydataset. mydataset se trouve dans myotherproject, et non dans votre projet par défaut.

bq query --use_legacy_sql=false \
'DROP MODEL myotherproject:mydataset.mymodel'

API

Option 1 : appeler la méthode models.delete

Pour supprimer un modèle, appelez la méthode models.delete et spécifiez les paramètres projectId, datasetId et modelId.

Option 2 : appeler la méthode jobs.query

Pour supprimer un modèle, appelez la méthode jobs.query et spécifiez l'instruction LDD DROP MODEL dans la propriété query du corps de la requête.

Go

import (
	"context"
	"fmt"

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

// deleteModel demonstrates deletion of BigQuery ML model.
func deleteModel(projectID, datasetID, modelID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// modelID := "mymodel"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	model := client.Dataset(datasetID).Model(modelID)
	if err := model.Delete(ctx); err != nil {
		return fmt.Errorf("Delete: %v", err)
	}
	return nil
}

Node.js

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

async function deleteModel() {
  // Deletes a model named "my_model" from "my_dataset".

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

  const dataset = bigquery.dataset(datasetId);
  const model = dataset.model(modelId);
  await model.delete();

  console.log(`Model ${modelId} deleted.`);
}

Python


from google.cloud import bigquery

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

# TODO(developer): Set model_id to the ID of the model to fetch.
# model_id = 'your-project.your_dataset.your_model'

client.delete_model(model_id)  # Make an API request.

print("Deleted model '{}'.".format(model_id))

Restaurer un modèle supprimé

Actuellement, il n'est pas possible de restaurer un modèle supprimé.

Étapes suivantes