Eliminar modelos

En esta página se explica cómo eliminar modelos de BigQuery ML. Para eliminar un modelo, sigue estos pasos:

  • Usar la Google Cloud consola
  • Usar el comando bq rm o bq query de la herramienta de línea de comandos bq
  • Llamar al método de la API models.delete o al método jobs.query
  • Usar las bibliotecas de cliente

Solo puedes eliminar un modelo a la vez. Cuando eliminas un modelo, también se eliminan los datos que contiene.

Para eliminar automáticamente los modelos después de un periodo específico, define el tiempo de vencimiento del modelo cuando lo crees con la herramienta de línea de comandos bq, la API o las bibliotecas cliente. Si no definiste la fecha de vencimiento al crear el modelo, puedes actualizarla.

Limitaciones al eliminar modelos

La eliminación de un modelo está sujeta a las siguientes limitaciones:

  • No puedes eliminar varios modelos al mismo tiempo. Debes eliminarlos uno a uno.
  • No puedes restaurar un modelo eliminado.

Permisos obligatorios

Para eliminar modelos de un conjunto de datos, debes tener asignado el rol WRITER en el conjunto de datos o un rol de gestión de identidades y accesos (IAM) a nivel de proyecto que incluya permisos de bigquery.models.delete. Si tienes bigquery.models.deletepermisos a nivel de proyecto, puedes eliminar modelos de cualquier conjunto de datos del proyecto. Los siguientes roles de gestión de identidades y accesos a nivel de proyecto incluyen los permisos de bigquery.models.delete:

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

Para obtener más información sobre los roles y permisos de gestión de identidades y accesos en BigQuery ML, consulta el artículo sobre el control de acceso.

Eliminar un modelo

Para eliminar un modelo, sigue estos pasos:

Consola

Puedes eliminar un modelo en la Google Cloud consola con la opción Eliminar modelo o ejecutando una consulta que contenga una instrucción DROP MODEL | DROP MODEL IF EXISTS DDL.

Opción 1: usa la opción Eliminar modelo.

  1. En el panel Explorador, expande tu proyecto y, a continuación, un conjunto de datos.

  2. Expanda la carpeta Modelos del conjunto de datos y, a continuación, haga clic en el nombre de un modelo para seleccionarlo.

  3. Haga clic en el icono de opciones del modelo y, a continuación, en Eliminar.

  4. En el cuadro de diálogo Eliminar modelo, escribe delete y, a continuación, haz clic en Eliminar.

Opción 2: Utiliza una instrucción DDL.

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Redactar nueva consulta.

  3. Escribe la instrucción DDL en el área de texto del editor de consultas.

     DROP MODEL mydataset.mymodel

  4. Haz clic en Ejecutar. Cuando se complete la consulta, el modelo se eliminará del panel de navegación.

bq

Para eliminar un modelo con la herramienta de línea de comandos bq, introduce lo siguiente:

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

Si vas a eliminar un modelo de un proyecto que no sea el predeterminado, añade el ID del proyecto al conjunto de datos con el siguiente formato: [PROJECT_ID]:[DATASET].[MODEL].

Opción 1: Introduce el comando bq rm

Cuando usas 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 saltarte la confirmación.

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

Haz los cambios siguientes:

  • PROJECT_ID es el ID del proyecto.
  • DATASET es el nombre del conjunto de datos.
  • MODEL es el nombre del modelo.

El comando rm no genera ninguna salida.

Ejemplos:

Introduce el siguiente comando para eliminar mymodel de mydataset. mydataset está en tu proyecto predeterminado.

bq rm --model mydataset.mymodel

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

bq rm --model myotherproject:mydataset.mymodel

Introduce el siguiente comando para eliminar mymodel de mydataset. mydataset está en tu proyecto predeterminado. El comando usa el acceso directo -f para omitir la confirmación.

bq rm -f --model mydataset.mymodel

Para confirmar que el modelo se ha eliminado, ejecuta el comando bq ls. Para obtener más información, consulta List models (Listar modelos).

Opción 2: Introduce el comando bq query

Para eliminar un modelo mediante el comando bq query, proporciona la instrucción DROP MODEL en el parámetro de consulta y la marca --use_legacy_sql=false para especificar la sintaxis de consulta de GoogleSQL.

Ejemplos:

Introduce el siguiente comando para eliminar mymodel de mydataset. mydataset está en tu proyecto predeterminado.

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

Introduce el siguiente comando para eliminar 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 1: llama al método models.delete

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

Opción 2: Llamar al método jobs.query

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

Go

Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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))

Restaurar un modelo eliminado

No puedes restaurar un modelo eliminado.

Siguientes pasos