Borra modelos

En esta página se muestra cómo borrar los modelos de BigQuery ML. Para borrar un modelo, haz lo siguiente:

  • Usa Cloud Console
  • Usa el comando bq rm o bq query de la herramienta de línea de comandos de bq.
  • Llama al método models.delete de la API o al método jobs.query
  • Usa bibliotecas cliente.

Actualmente, solo puedes borrar un modelo a la vez. Cuando borras un modelo, también se borran todos los datos en él.

Para borrar automáticamente los modelos después de un período específico, configura su fecha de vencimiento cuando los crees mediante la herramienta de línea de comandos de bq, la API o las bibliotecas cliente. Si no configuraste el vencimiento cuando creaste el modelo, puedes actualizar la fecha de vencimiento del modelo.

Limitaciones en la acción de borrar modelos

Borrar un modelo está sujeto a las siguientes limitaciones:

  • No puedes borrar varios modelos al mismo tiempo. Debes borrarlos de manera individual.
  • No puedes restablecer un modelo borrado.

Permisos necesarios

Para borrar modelos en un conjunto de datos, se te debe asignar la función WRITER en el conjunto de datos o una función de IAM a nivel de proyecto que incluya permisos bigquery.models.delete. Si se te otorgan permisos bigquery.models.delete a nivel de proyecto, puedes eliminar modelos en cualquier conjunto de datos del proyecto. Las siguientes funciones de IAM a nivel de proyecto incluyen permisos bigquery.models.delete:

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

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery ML, consulta Control de acceso. Para obtener más información sobre las funciones a nivel del conjunto de datos, consulta Funciones y permisos básicos en la documentación de BigQuery.

Borra un modelo

Para borrar un modelo, haz lo siguiente:

Console

Puedes borrar un modelo en Cloud Console con la opción Borrar modelo o mediante la ejecución de una consulta que contenga una declaración DDL DROP MODEL | DROP MODEL IF EXISTS.

Opción uno: usa la opción Borrar modelo.

  1. En Cloud Console, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. En el panel de navegación, en la sección Recursos, expande el nombre de tu proyecto y del conjunto de datos.

  3. Haz clic en el nombre de tu modelo. Los modelos se indican con el ícono del modelo: ícono del modelo.

  4. En el lado derecho de la ventana, haz clic en Borrar modelo.

  5. En el diálogo Borrar modelo, escribe el nombre del modelo y, luego, haz clic en Borrar.

Opción dos: usa una declaración de DDL.

  1. En Cloud Console, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Redactar consulta nueva.

  3. Escribe tu declaración de DDL en el área de texto Editor de consultas.

     DROP MODEL mydataset.mymodel

  4. Haz clic en Ejecutar. Cuando se completa la consulta, se quita el modelo del panel de navegación.

bq

Puedes borrar un modelo con la herramienta de línea de comandos bq si ingresas:

  • Comando bq rm con la marca --model o -m
  • Comando bq query con la sentencia DDL como parámetro de consulta

Si borras un modelo en un proyecto que no sea tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET].[MODEL].

Opción uno: ingresa el comando bq rm

Cuando utilizas el comando bq rm para quitar un modelo, debes confirmar la acción. Puedes usar --force flag (o la combinación de teclas -f) para omitir la confirmación.

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

Aquí:

  • [PROJECT_ID] es el ID del proyecto.
  • [DATASET] es el nombre del conjunto de datos.
  • [MODEL] es el nombre del modelo que estás borrando.

El comando rm no produce salida.

Ejemplos:

Ingresa el siguiente comando para borrar mymodel de mydataset. mydataset está en tu proyecto predeterminado.

bq rm --model mydataset.mymodel

Ingresa el siguiente comando para borrar mymodel de mydataset. mydataset está en myotherproject, no en tu proyecto predeterminado.

bq rm --model myotherproject:mydataset.mymodel

Ingresa el siguiente comando para borrar mymodel de mydataset. mydataset está en tu proyecto predeterminado. El comando usa la combinación de teclas -f para omitir la confirmación.

bq rm -f --model mydataset.mymodel

Puedes confirmar que el modelo se borró si ejecutas el comando bq ls. Si deseas obtener más información, consulta Mostrar una lista de modelos.

Opción dos: ingresa el comando bq query

Para borrar un modelo con el comando bq query, proporciona la declaración DROP MODEL en el parámetro de consulta y proporciona la marca --use_legacy_sql=false para especificar la sintaxis de consulta de SQL estándar.

Ejemplos:

Ingresa el siguiente comando para borrar mymodel de mydataset. mydataset está en tu proyecto predeterminado.

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

Ingresa el siguiente comando para borrar mymodel de mydataset. mydataset está en myotherproject, no en tu proyecto predeterminado.

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

API

Opción uno: llama al método models.delete

Para borrar un modelo, llama al método models.delete y proporciona projectId, datasetId y modelId.

Opción dos: llama al método jobs.query

Para borrar un modelo, llama al método jobs.query y proporciona la declaración de DDL DROP MODEL en la propiedad query del cuerpo de la solicitud.

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

Restablece un modelo borrado

En la actualidad, no puedes restablecer un modelo borrado.

¿Qué sigue?