Supprimer des modèles

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

  • Utiliser Cloud Console
  • Utiliser la commande bq de l'outil de ligne de commande bq rm ou la commande bq query
  • Appeler 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 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 de l'ensemble de données, consultez la page Rôles et autorisations de base de la documentation BigQuery.

Supprimer un modèle

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

Console

Vous pouvez supprimer un modèle dans Cloud Console à 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. Dans 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 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 :

  • 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, 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
}

Java

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

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

Étapes suivantes