Borrar modelos

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

  • Usa la consola de Google Cloud
  • 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 el rol WRITER en el conjunto de datos o un rol de Identity and Access Management (IAM) a nivel de proyecto que incluya los 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 los roles de IAM y los permisos en BigQuery ML, consulta Control de acceso.

Borra un modelo

Para borrar un modelo, haz lo siguiente:

Consola

Puedes borrar un modelo en la consola de Google Cloud 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 la consola de Google Cloud, 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 la consola de Google Cloud, 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. Para obtener más información, consulta Enumera 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 GoogleSQL.

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.

Comienza a usarlo

Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.


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?