Atualize os metadados do modelo

Esta página mostra-lhe como atualizar os metadados do modelo do BigQuery ML. Pode atualizar os metadados do modelo:

  • Usar a Trusted Cloud consola.
  • Usando o comando bq update na ferramenta de linhas de comando bq.
  • Chamar o método da API models.patch diretamente ou através das bibliotecas cliente.

É possível atualizar os seguintes metadados do modelo:

  • Descrição: pode ser atualizado através da Trusted Cloud consola, da ferramenta de linhas de comando bq, da API ou das bibliotecas de cliente.
  • Etiquetas: podem ser atualizadas através da Trusted Cloud consola, da ferramenta de linhas de comando bq, da API ou das bibliotecas de cliente.
  • Hora de validade: pode ser atualizada através da ferramenta bq, da API ou das bibliotecas cliente.

Autorizações necessárias

Para atualizar os metadados do modelo, tem de ter a função WRITER atribuída no conjunto de dados ou uma função de gestão de identidade e de acesso (IAM) ao nível do projeto que inclua autorizações bigquery.models.updateMetadata. Se lhe forem concedidas bigquery.models.updateMetadata autorizações ao nível do projeto, pode atualizar os metadados dos 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.updateMetadata:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • 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.

Atualize a descrição de um modelo

A descrição de um modelo é uma string de texto que é usada para identificar o modelo.

Para atualizar a descrição de um modelo:

Consola

  1. Na Trusted Cloud consola, aceda à página do BigQuery.

    Aceda à página do BigQuery

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

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

  4. Clique no separador Detalhes.

  5. Para atualizar a descrição do modelo, clique em Editar .

  6. Na caixa de diálogo Editar detalhes, atualize a descrição e, de seguida, clique em Guardar.

bq

Para atualizar a descrição de um modelo, execute o comando bq update com a flag --model ou -m e a flag --description.

Se estiver a atualizar um modelo num projeto que não seja o seu projeto predefinido, adicione o ID do projeto ao conjunto de dados no seguinte formato: [PROJECT_ID]:[DATASET].

bq update --model --description "[STRING]" PROJECT_ID:DATASET.MODEL

Substitua o seguinte:

  • STRING é a string de texto que descreve o seu modelo entre aspas.
  • 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:

Model 'myproject.mydataset.mymodel' successfully updated.

Pode confirmar as alterações emitindo o comando bq show. Para mais informações, consulte o artigo Obtenha metadados do modelo.

Exemplos:

Introduza o seguinte comando para atualizar a descrição de mymodel em mydataset no seu projeto predefinido.

bq update --model --description "My updated description" \
mydataset.mymodel

Introduza o seguinte comando para atualizar a descrição de mymodel em mydataset em myotherproject.

bq update --model --description "My updated description" \
myotherproject:mydataset.mymodel

API

Para atualizar a descrição de um modelo através da API, chame o método models.patch e forneça o projectId, o datasetId e o modelId. Para modificar a descrição, adicione ou atualize a propriedade "description" do recurso model.

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.

Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN environment como s3nsapis.fr.

import (
	"context"
	"fmt"

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

// updateModelDescription demonstrates fetching BigQuery ML model metadata and updating the
// Description metadata.
func updateModelDescription(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)
	oldMeta, err := model.Metadata(ctx)
	if err != nil {
		return fmt.Errorf("couldn't retrieve model metadata: %w", err)
	}
	update := bigquery.ModelMetadataToUpdate{
		Description: "This model was modified from a Go program",
	}
	if _, err = model.Update(ctx, update, oldMeta.ETag); err != nil {
		return fmt.Errorf("couldn't update model: %w", err)
	}
	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.

Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN environment como s3nsapis.fr.

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;

// Sample to update description on a model
public class UpdateModelDescription {

  public static void runUpdateModelDescription() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String modelName = "MY_MODEL_NAME";
    String newDescription = "A really great model.";
    updateModelDescription(datasetName, modelName, newDescription);
  }

  public static void updateModelDescription(
      String datasetName, String modelName, String newDescription) {
    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();

      Model model = bigquery.getModel(ModelId.of(datasetName, modelName));
      bigquery.update(model.toBuilder().setDescription(newDescription).build());
      System.out.println("Model description updated successfully to " + newDescription);
    } catch (BigQueryException e) {
      System.out.println("Model description was not updated \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.

Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN environment como s3nsapis.fr.

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

async function updateModel() {
  // Updates a model's metadata.

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

  const metadata = {
    description: 'A really great model.',
  };

  const dataset = bigquery.dataset(datasetId);
  const [apiResponse] = await dataset.model(modelId).setMetadata(metadata);
  const newDescription = apiResponse.description;

  console.log(`${modelId} description: ${newDescription}`);
}

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.

Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN environment como s3nsapis.fr.


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.
model.description = "This model was modified from a Python program."
model = client.update_model(model, ["description"])  # Make an API request.

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

Atualize as etiquetas de um modelo

As etiquetas são pares de chave-valor que pode anexar a um recurso. Quando cria recursos do BigQuery ML, as etiquetas são opcionais. Para mais informações, consulte o artigo Adicionar e usar etiquetas.

Para atualizar as etiquetas de um modelo:

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.

  4. Para atualizar as etiquetas do modelo, clique em Editar .

  5. Na caixa de diálogo Editar detalhe, adicione, elimine ou modifique etiquetas e, de seguida, clique em Guardar.

bq

Para atualizar as etiquetas de um modelo, execute o comando bq update com a flag --model ou -m e a flag --set_label. Repita a flag --set_label para adicionar ou atualizar várias etiquetas.

Se estiver a atualizar um modelo num projeto que não seja o seu projeto predefinido, adicione o ID do projeto ao conjunto de dados no seguinte formato: [PROJECT_ID]:[DATASET].

bq update --model --set_label KEY:VALUE \
PROJECT_ID:DATASET.MODEL

Substitua o seguinte:

  • KEY:VALUE corresponde a um par de chave:valor para uma etiqueta que quer adicionar ou atualizar. Se especificar a mesma chave que uma etiqueta existente, o valor da etiqueta existente é atualizado. A chave tem de ser exclusiva.
  • 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.

Model 'myproject.mydataset.mymodel' successfully updated.

Pode confirmar as alterações emitindo o comando bq show. Para mais informações, consulte o artigo Obtenha metadados do modelo.

Exemplos:

Para atualizar a etiqueta department em mymodel, introduza o comando bq update e especifique department como a chave da etiqueta. Por exemplo, para atualizar a etiqueta department:shipping para department:logistics, introduza o seguinte comando. O recurso mydataset está em myotherproject e não no seu projeto predefinido.

bq update --model --set_label department:logistics \
myotherproject:mydataset.mymodel

API

Para atualizar as etiquetas de um modelo através da API, chame o método models.patch e forneça os valores projectId, datasetId e modelId. Para modificar as etiquetas, adicione ou atualize a propriedade "labels" do recurso model.

Atualize o período de validade de um modelo

O tempo de expiração de um modelo é um valor de data/hora que determina quando um modelo é eliminado. Pode definir o prazo de validade de um modelo quando o modelo é criado através da CLI, da API ou das bibliotecas de cliente. Também pode definir ou atualizar a hora de expiração de um modelo após a sua criação. O tempo de expiração de um modelo é frequentemente denominado "tempo de vida" ou TTL.

Se não definir uma hora de validade num modelo, este nunca expira e tem de o eliminar manualmente.

O valor do tempo de expiração é expresso de forma diferente consoante onde o valor é definido. Use o método que lhe dá o nível de detalhe adequado:

  • Na ferramenta de linha de comandos, a validade é expressa em segundos a partir da hora UTC atual. Quando especifica a expiração na linha de comandos, o valor inteiro em segundos é adicionado à data/hora UTC atual.
  • Na API, o prazo de validade é expresso em milissegundos desde a época. Se especificar um valor de expiração inferior à data/hora atual, o modelo expira imediatamente.

Para atualizar o tempo de expiração de um modelo:

Consola

A definição ou a atualização da hora de expiração num modelo não é suportada pela Trusted Cloud consola.

bq

Para atualizar a hora de validade de um modelo, execute o comando bq update com a flag --model ou -m e a flag --expiration.

Se estiver a atualizar um modelo num projeto que não seja o seu projeto predefinido, adicione o ID do projeto ao conjunto de dados no seguinte formato: [PROJECT_ID]:[DATASET].

bq update --model --expiration INTEGER \
PROJECT_ID:DATASET.MODEL

Substitua o seguinte:

  • INTEGER é o tempo de vida (em segundos) do modelo. O valor mínimo é de 3600 segundos (uma hora). O tempo de expiração é avaliado como a hora UTC atual mais o valor inteiro.
  • 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.

Model 'myproject.mydataset.mymodel' successfully updated.

Pode confirmar as alterações emitindo o comando bq show. Para mais informações, consulte o artigo Obtenha metadados do modelo.

Exemplos:

Introduza o seguinte comando para atualizar a hora de validade de mymodel em mydataset para 5 dias (432 000 segundos). mydataset está no seu projeto predefinido.

bq update --model --expiration 432000 mydataset.mymodel

Introduza o seguinte comando para atualizar a hora de validade de mymodel em mydataset para 5 dias (432 000 segundos). mydataset está em myotherproject, não no seu projeto predefinido.

bq update --model --expiration 432000 myotherproject:mydataset.mymodel

API

Para atualizar a expiração de um modelo através da API, chame o método models.patch e forneça os valores projectId, datasetId e modelId. Para modificar a validade, adicione ou atualize a propriedade "expirationTime" para o recurso de modelo. "expirationTime" é expresso em milissegundos desde epoch.

O que se segue?