Supprimer des modèles

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

  • En utilisant la console Google Cloud
  • En utilisant la commande bq rm ou la commande bq query de l'outil de ligne de commande bq
  • 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 l'outil de ligne de commande bq, de l'API ou des bibliothèques clientes. Si vous n'avez pas défini de délai d'expiration lors de la création du modèle, vous pouvez le 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. Vous devez les supprimer un par un.
  • Vous ne pouvez pas restaurer un modèle supprimé.

Autorisations requises

Pour supprimer des modèles dans un ensemble de données, vous devez disposer du rôle WRITER au niveau de l'ensemble de données, ou d'un rôle Identity and Access Management (IAM) au niveau du projet incluant 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.

Supprimer un modèle

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

Console

Vous pouvez supprimer un modèle dans la console Google Cloud à l'aide de l'option Supprimer un 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. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à 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. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Cliquez sur 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.

bq

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

  • la commande bq rm avec l'option --model ou -m ;
  • la commande bq query avec 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. Vous pouvez utiliser l'option --force flag (ou le raccourci -f) pour ignorer la confirmation.

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, consultez la section Répertorier les modèles.

Option 2 : saisir la commande bq query

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

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

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"
)

// 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: %w", err)
	}
	defer client.Close()

	model := client.Dataset(datasetID).Model(modelID)
	if err := model.Delete(ctx); err != nil {
		return fmt.Errorf("couldn't delete model: %w", 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.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.ModelId;

// Sample to delete a model
public class DeleteModel {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String modelName = "MY_MODEL_NAME";
    deleteModel(datasetName, modelName);
  }

  public static void deleteModel(String datasetName, String modelName) {
    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();
      boolean success = bigquery.delete(ModelId.of(datasetName, modelName));
      if (success) {
        System.out.println("Model deleted successfully");
      } else {
        System.out.println("Model was not found");
      }
    } catch (BigQueryException e) {
      System.out.println("Model was not deleted. \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 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

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.


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, vous ne pouvez pas restaurer de modèle supprimé.

Étapes suivantes