Eliminazione dei modelli

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina mostra come eliminare i modelli BigQuery ML. Puoi eliminare un modello nel seguente modo:

  • Utilizzo della console Google Cloud
  • Utilizzo del comando bq rm o del comando bq query dello strumento a riga di comando bq
  • Chiamare il metodo API models.delete o richiamare il metodo jobs.query
  • Utilizzo delle librerie client

Al momento è possibile eliminare un solo modello alla volta. Quando elimini un modello, vengono eliminati anche tutti i dati che contiene.

Per eliminare automaticamente i modelli dopo un periodo di tempo specificato, imposta la data di scadenza del modello quando lo crei utilizzando lo strumento a riga di comando bq, l'API o le librerie client. Se non hai impostato la scadenza al momento della creazione del modello, puoi aggiornare la data di scadenza del modello.

Limitazioni all'eliminazione dei modelli

L'eliminazione di un modello è soggetta alle seguenti limitazioni:

  • Non puoi eliminare più modelli contemporaneamente. Devi eliminarli singolarmente.
  • Non puoi ripristinare un modello eliminato.

Autorizzazioni obbligatorie

Per eliminare i modelli in un set di dati, devi ricevere il ruolo WRITER per il set di dati oppure assegnarti un ruolo IAM a livello di progetto che includa le autorizzazioni bigquery.models.delete. Se ti vengono concesse le autorizzazioni bigquery.models.delete a livello di progetto, puoi eliminare i modelli in qualsiasi set di dati del progetto. I seguenti ruoli IAM a livello di progetto includono le autorizzazioni bigquery.models.delete:

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

Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery ML, consulta la pagina Controllo dell'accesso. Per ulteriori informazioni sui ruoli a livello di set di dati, consulta Autorizzazioni e ruoli di base nella documentazione di BigQuery.

Eliminazione di un modello

Per eliminare un modello, procedi nel seguente modo:

Console

Puoi eliminare un modello nella console Google Cloud utilizzando l'opzione Elimina modello o eseguendo una query che contiene un'istruzione DDL DROP MODEL | DROP MODEL IF EXISTS.

Opzione uno: utilizza l'opzione Elimina modello.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Nella sezione Risorse del pannello di navigazione, espandi il nome del progetto e il nome del set di dati.

  3. Fai clic sul nome del modello. I modelli sono indicati dall'icona del modello: icona del modello.

  4. Sul lato destro della finestra, fai clic su Elimina modello.

  5. Nella finestra di dialogo Elimina modello, digita il nome del modello e fai clic su Elimina.

Opzione due: utilizza un'istruzione DDL.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Crea nuova query.

  3. Digita l'istruzione DDL nell'area di testo Editor query.

     DROP MODEL mydataset.mymodel

  4. Fai clic su Esegui. Al termine della query, il modello viene rimosso dal riquadro di navigazione.

bq

Puoi eliminare un modello utilizzando lo strumento a riga di comando bq inserendo:

  • Comando bq rm con flag --model o -m
  • Comando bq query con l'istruzione DDL come parametro di ricerca

Se elimini un modello in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: [PROJECT_ID]:[DATASET].[MODEL].

Opzione uno: inserisci il comando bq rm

Quando utilizzi il comando bq rm per rimuovere un modello, devi confermare l'azione. Puoi utilizzare la scorciatoia --force flag (o -f) per saltare la conferma.

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

Dove:

  • [PROJECT_ID] è l'ID progetto.
  • [DATASET] è il nome del set di dati.
  • [MODEL] è il nome del modello che stai eliminando.

Il comando rm non produce alcun output.

Esempi:

Inserisci questo comando per eliminare mymodel da mydataset. mydataset è nel tuo progetto predefinito.

bq rm --model mydataset.mymodel

Inserisci questo comando per eliminare mymodel da mydataset. mydataset è in myotherproject, non è il tuo progetto predefinito.

bq rm --model myotherproject:mydataset.mymodel

Inserisci questo comando per eliminare mymodel da mydataset. mydataset è nel tuo progetto predefinito. Il comando utilizza la scorciatoia -f per ignorare la conferma.

bq rm -f --model mydataset.mymodel

Puoi confermare che il modello è stato eliminato eseguendo il comando bq ls. Per ulteriori informazioni, consulta la sezione Elencare i modelli.

Opzione due: inserisci il comando bq query

Per eliminare un modello utilizzando il comando bq query, fornisci l'istruzione DROP MODEL nel parametro di ricerca e il flag --use_legacy_sql=false per specificare la sintassi delle query SQL standard.

Esempi:

Inserisci questo comando per eliminare mymodel da mydataset. mydataset è nel tuo progetto predefinito.

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

Inserisci questo comando per eliminare mymodel da mydataset. mydataset è in myotherproject, non è il tuo progetto predefinito.

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

API

Opzione uno: chiama il metodo models.delete

Per eliminare un modello, chiama il metodo models.delete e fornisci projectId, datasetId e modelId.

Opzione due: chiama il metodo jobs.query

Per eliminare un modello, chiama il metodo jobs.query e fornisci l'istruzione DDL DROP MODEL nella proprietà query del corpo della richiesta.

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: %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

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

Ripristino di un modello eliminato

Al momento non è possibile ripristinare un modello eliminato.

Passaggi successivi