Elenco modelli

Panoramica

Questa pagina mostra come elencare i modelli BigQuery ML in un set di dati. Puoi elencare i modelli BigQuery ML per:

  • Utilizzo della console Google Cloud.
  • Utilizzo del comando bq ls nello strumento a riga di comando bq.
  • Chiamata a models.list API di Google direttamente o utilizzando le librerie client.

Autorizzazioni obbligatorie

Per elencare i modelli in un set di dati, devi avere l'assegnazione READER nel set di dati oppure ti deve essere assegnato un ruolo Identity and Access Management (IAM) a livello di progetto che include le autorizzazioni bigquery.models.list. Se ti viene concesso bigquery.models.list autorizzazioni a livello di progetto, puoi elencare i modelli in a qualsiasi set di dati nel progetto. I seguenti ruoli IAM predefiniti a livello di progetto includi bigquery.models.list autorizzazioni:

  • bigquery.dataViewer
  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.metadataViewer
  • bigquery.user
  • bigquery.admin

Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery ML, consulta Controllo dell'accesso. Per ulteriori informazioni informazioni sui ruoli a livello di set di dati, vedi Ruoli di base per i set di dati.

Elenco modelli

Per elencare i modelli in un set di dati:

Console

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

    Vai alla pagina di BigQuery

  2. Nella sezione Risorse del pannello di navigazione, fai clic sul tuo progetto. .

  3. Man mano che espandi ciascun set di dati in un progetto, i modelli vengono elencati insieme con le altre risorse BigQuery nei set di dati. I modelli sono indicato dall'icona del modello: icona modello .

bq

Esegui il comando bq ls con il flag --models o -m. La --format per controllare l'output. Se stai elencando modelli in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: [PROJECT_ID]:[DATASET].

bq ls -m --format=pretty [PROJECT_ID]:[DATASET]

Dove:

  • [PROJECT_ID] è l'ID progetto.
  • [DATASET] è il nome del set di dati.

L'output comando è simile al seguente quando il flag --format=pretty . --format=pretty produce un output di tabella formattata. Model Type mostra il tipo di modello, ad esempio KMEANS.

+-------------------------+------------+--------+-----------------+
|           Id            | Model Type | Labels |  Creation Time  |
+-------------------------+------------+--------+-----------------+
| mymodel                 | KMEANS     |        | 03 May 03:02:27 |
+-------------------------+------------+--------+-----------------+

Esempi:

Inserisci il comando seguente per elencare i modelli nel set di dati mydataset nel tuo progetto predefinito.

bq ls --models --format=pretty mydataset

Inserisci il comando seguente per elencare i modelli nel set di dati mydataset in myotherproject. Questo comando utilizza la scorciatoia -m per elencare i modelli.

bq ls -m --format=pretty myotherproject:mydataset

API

Per elencare i modelli utilizzando l'API, chiama la funzione models.list e fornire i projectId e datasetId.

Vai

Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
	"google.golang.org/api/iterator"
)

// listModels demonstrates iterating through the collection of ML models in a dataset
// and printing a basic identifier of the model.
func listModels(w io.Writer, projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %w", err)
	}
	defer client.Close()

	fmt.Fprintf(w, "Models contained in dataset %q\n", datasetID)
	it := client.Dataset(datasetID).Models(ctx)
	for {
		m, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Model: %s\n", m.FullyQualifiedName())
	}
	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

import com.google.api.gax.paging.Page;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQuery.ModelListOption;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Model;

public class ListModels {

  public static void runListModels() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    listModels(datasetName);
  }

  public static void listModels(String datasetName) {
    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();

      Page<Model> models = bigquery.listModels(datasetName, ModelListOption.pageSize(100));
      if (models == null) {
        System.out.println("Dataset does not contain any models.");
        return;
      }
      models
          .iterateAll()
          .forEach(model -> System.out.printf("Success! Model ID: %s", model.getModelId()));
    } catch (BigQueryException e) {
      System.out.println("Models not listed in dataset due to error: \n" + e.toString());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.


// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function listModels() {
  // Lists all existing models in the dataset.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_dataset";

  const dataset = bigquery.dataset(datasetId);

  dataset.getModels().then(data => {
    const models = data[0];
    console.log('Models:');
    models.forEach(model => console.log(model.metadata));
  });
}

Python

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.


from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset that contains
#                  the models you are listing.
# dataset_id = 'your-project.your_dataset'

models = client.list_models(dataset_id)  # Make an API request.

print("Models contained in '{}':".format(dataset_id))
for model in models:
    full_model_id = "{}.{}.{}".format(
        model.project, model.dataset_id, model.model_id
    )
    friendly_name = model.friendly_name
    print("{}: friendly_name='{}'".format(full_model_id, friendly_name))

Passaggi successivi