Recupero metadati modello

Questa pagina mostra come ottenere informazioni o metadati sui modelli BigQuery ML. Per recuperare i metadati del modello:

  • Utilizzo della console Google Cloud
  • Utilizzo del comando bq show CLI
  • Chiamare il metodo dell'API models.get direttamente o utilizzando le librerie client

Autorizzazioni obbligatorie

Per ottenere i metadati del modello, devi disporre del ruolo READER nel set di dati oppure devi disporre di un ruolo IAM (Identity and Access Management) a livello di progetto che include le autorizzazioni bigquery.models.getMetadata. Se ti sono state concesse autorizzazioni bigquery.models.getMetadata a livello di progetto, puoi recuperare i metadati dei modelli in qualsiasi set di dati del progetto. I seguenti ruoli IAM predefiniti a livello di progetto includono le autorizzazioni bigquery.models.getMetadata:

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

Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery ML, consulta Controllo dell'accesso.

Recupero metadati modello

Per recuperare i metadati dei modelli:

Console

  1. Nel riquadro Explorer, espandi il progetto e poi un set di dati.

  2. Espandi la cartella Modelli nel set di dati, poi fai clic sul nome di un modello per selezionarlo.

  3. Fai clic sulla scheda Dettagli. Questa scheda mostra i metadati del modello, tra cui descrizione, etichette, tipo di modello e opzioni di addestramento.

bq

Esegui il comando bq show con il flag --model o -m per visualizzare i metadati del modello. Il flag --format può essere utilizzato per controllare l'output.

Per visualizzare solo le colonne di caratteristiche del modello, utilizza il flag --schema con il flag --model. Quando utilizzi il flag --schema, --format deve essere impostato su json o prettyjson.

Se ricevi informazioni su un modello in un progetto diverso dal progetto predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: [PROJECT_ID]:[DATASET].

bq show --model --format=prettyjson PROJECT_ID:DATASET.MODEL

Sostituisci quanto segue:

  • PROJECT_ID è l'ID progetto.
  • DATASET è il nome del set di dati.
  • MODEL è il nome del modello.

L'output del comando è simile al seguente quando viene utilizzato il flag --format=pretty. Per visualizzare tutti i dettagli, utilizza il formato --format=prettyjson. L'output di esempio mostra i metadati di un modello di regressione logistica.

+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+
|      Id      |     Model Type      |   Feature Columns   |       Label Columns       | Labels |  Creation Time  | Expiration Time |
+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+
| sample_model | LOGISTIC_REGRESSION | |- column1: string  | |- label_column: int64    |        | 03 May 23:14:42 |                 |
|              |                     | |- column2: bool    |                           |        |                 |                 |
|              |                     | |- column3: string  |                           |        |                 |                 |
|              |                     | |- column4: int64   |                           |        |                 |                 |
+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+

Esempi:

Inserisci il seguente comando per visualizzare tutte le informazioni su mymodel in mydataset. mydataset si trova nel tuo progetto predefinito.

bq show --model --format=prettyjson mydataset.mymodel

Inserisci il seguente comando per visualizzare tutte le informazioni su mymodel in mydataset. mydataset si trova in myotherproject, non nel progetto predefinito.

bq show --model --format=prettyjson myotherproject:mydataset.mymodel

Inserisci il seguente comando per visualizzare solo le colonne delle funzionalità per mymodel in mydataset. mydataset si trova in myotherproject, non nel tuo progetto predefinito.

bq show --model --schema --format=prettyjson \
myotherproject:mydataset.mymodel

API

Per ottenere i metadati del modello utilizzando l'API, chiama il metodo models.get e fornisci projectId, datasetId e modelId.

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
)

// printModelInfo demonstrates fetching metadata about a BigQuery ML model and printing some of
// it to an io.Writer.
func printModelInfo(w io.Writer, 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()

	meta, err := client.Dataset(datasetID).Model(modelID).Metadata(ctx)
	if err != nil {
		return fmt.Errorf("couldn't retrieve metadata: %w", err)
	}
	fmt.Fprintf(w, "Got model '%q' with friendly name '%q'\n", modelID, meta.Name)
	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Model;
import com.google.cloud.bigquery.ModelId;

public class GetModel {

  public static void runGetModel() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String modelName = "MY_MODEL_ID";
    getModel(datasetName, modelName);
  }

  public static void getModel(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();

      ModelId modelId = ModelId.of(datasetName, modelName);
      Model model = bigquery.getModel(modelId);
      System.out.println("Model: " + model.getDescription());

      System.out.println("Successfully retrieved model");
    } catch (BigQueryException e) {
      System.out.println("Cannot retrieve model \n" + e.toString());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.

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

async function getModel() {
  // Retrieves model named "my_existing_model" in "my_dataset".

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

  const dataset = bigquery.dataset(datasetId);
  const [model] = await dataset.model(modelId).get();

  console.log('Model:');
  console.log(model.metadata.modelReference);
}

Python

Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.

Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.


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'

model = client.get_model(model_id)  # Make an API request.

full_model_id = "{}.{}.{}".format(model.project, model.dataset_id, model.model_id)
friendly_name = model.friendly_name
print(
    "Got model '{}' with friendly_name '{}'.".format(full_model_id, friendly_name)
)

Passaggi successivi