Obtenha metadados do modelo

Esta página mostra-lhe como obter informações ou metadados sobre os modelos do BigQuery ML. Pode obter metadados do modelo:

  • Usar a Google Cloud consola
  • Usar o comando da CLI bq show
  • Chamar o método da API models.get diretamente ou através das bibliotecas de cliente

Autorizações necessárias

Para obter metadados do modelo, tem de lhe ser atribuída a função READER no conjunto de dados ou tem de lhe ser atribuída uma função de gestão de identidade e de acesso (IAM) ao nível do projeto que inclua autorizações bigquery.models.getMetadata. Se lhe forem concedidas bigquery.models.getMetadata autorizações ao nível do projeto, pode obter metadados sobre modelos em qualquer conjunto de dados no projeto. As seguintes funções de IAM predefinidas ao nível do projeto incluem autorizações bigquery.models.getMetadata:

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

Para mais informações sobre as funções e as autorizações do IAM no BigQuery ML, consulte o artigo Controlo de acesso.

Obtenha metadados do modelo

Para obter metadados sobre modelos:

Consola

  1. No painel Explorador, expanda o seu projeto e, em seguida, expanda um conjunto de dados.

  2. Expanda a pasta Modelos no conjunto de dados e, de seguida, clique no nome de um modelo para selecionar o modelo.

  3. Clique no separador Detalhes. Este separador apresenta os metadados do modelo, incluindo a descrição, as etiquetas, o tipo de modelo e as opções de preparação.

bq

Emita o comando bq show com a flag --model ou -m para apresentar os metadados do modelo. A flag --format pode ser usada para controlar a saída.

Para ver apenas as colunas de caraterísticas do seu modelo, use a flag --schema com a flag --model. Quando usa a flag --schema, --format tem de ser definido como json ou prettyjson.

Se estiver a receber informações sobre um modelo num projeto diferente do seu projeto predefinido, adicione o ID do projeto ao conjunto de dados no seguinte formato: [PROJECT_ID]:[DATASET].

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

Substitua o seguinte:

  • PROJECT_ID é o ID do seu projeto.
  • DATASET é o nome do conjunto de dados.
  • MODEL é o nome do modelo.

O resultado do comando tem o seguinte aspeto quando a flag --format=pretty é usada. Para ver os detalhes completos, use o formato --format=prettyjson. O exemplo de saída mostra metadados para um modelo de regressão logística.

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

Exemplos:

Introduza o seguinte comando para apresentar todas as informações sobre mymodel em mydataset. mydataset está no seu projeto predefinido.

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

Introduza o seguinte comando para apresentar todas as informações sobre mymodel em mydataset. O recurso mydataset está em myotherproject e não no seu projeto predefinido.

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

Introduza o seguinte comando para apresentar apenas as colunas de caraterísticas para mymodel em mydataset. mydataset está em myotherproject e não no seu projeto predefinido.

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

API

Para obter metadados do modelo através da API, chame o método models.get e forneça projectId, datasetId e modelId.

Go

Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Go BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação 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.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

Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Node.js BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação 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'

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

O que se segue?