Faça a gestão de modelos

Este documento mostra como gerir modelos do BigQuery ML, incluindo copiar e mudar o nome de modelos.

Funções necessárias

Para obter as autorizações de que precisa para ler e criar modelos do BigQuery, peça ao seu administrador para lhe conceder a função do IAM de editor de dados do BigQuery (roles/bigquery.dataEditor) no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para ler e criar modelos do BigQuery. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para ler e criar modelos do BigQuery:

  • Para ler informações de modelos: bigquery.models.getData
  • Para criar modelos: bigquery.models.create

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Mude o nome dos modelos

Não pode alterar o nome de um modelo existente. Se precisar de alterar o nome do modelo, siga os passos para copiar o modelo. Quando especificar o destino na operação de cópia, use o novo nome do modelo.

Copie modelos

Pode copiar um ou mais modelos de um conjunto de dados de origem para um conjunto de dados de destino das seguintes formas:

  • Usar a Trusted Cloud consola.
  • Usando o comando bq cp da ferramenta de linhas de comando bq.
  • Chamar diretamente o método da API jobs.insert e configurar uma tarefa de cópia ou usar as bibliotecas cliente.

Limitações na cópia de modelos

As tarefas de cópia de modelos estão sujeitas às seguintes limitações:

  • Quando copia um modelo, o nome do modelo de destino tem de cumprir as mesmas convenções de nomenclatura que quando cria um modelo.
  • As cópias de modelos estão sujeitas aos limites do BigQuery em tarefas de cópia.
  • A cópia de um modelo não é suportada pela Trusted Cloud consola.
  • A cópia de vários modelos de origem num único comando não é suportada.
  • Quando copia um modelo através da CLI, a flag --destination_kms_key não é suportada.

Copie um modelo

Pode copiar um modelo:

  • Usar o comando bq cp da ferramenta de linha de comandos
  • Chamar o método da API jobs.insert e configurar uma tarefa de cópia ou usar as bibliotecas cliente

Para copiar um modelo:

Consola

A Trusted Cloud consola não suporta a cópia de modelos.

bq

Emita o comando bq cp. Sinalizadores opcionais:

  • -f ou --force substitui um modelo existente no conjunto de dados de destino e não lhe pede confirmação.
  • -n ou --no_clobber devolve a seguinte mensagem de erro se o modelo existir no conjunto de dados de destino: '[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping.

    Se -n não for especificado, o comportamento predefinido é pedir-lhe que escolha se quer substituir o modelo de destino.

Se o conjunto de dados de origem ou de destino estiver num projeto diferente do seu projeto predefinido, adicione o ID do projeto aos nomes dos conjuntos de dados no seguinte formato: PROJECT_ID:DATASET.

bq cp -f -n PROJECT_ID:DATASET.SOURCE_MODEL PROJECT_ID:DATASET.DESTINATION_MODEL

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto.
  • DATASET: o nome do conjunto de dados de origem ou de destino.
  • SOURCE_MODEL: o modelo que está a copiar.
  • DESTINATION_MODEL: o nome do modelo no conjunto de dados de destino.

Exemplos:

Introduza o seguinte comando para copiar mydataset.mymodel para mydataset2.

bq cp mydataset.mymodel mydataset2.mymodel

Introduza o seguinte comando para copiar mydataset.mymodel e substituir um modelo de destino com o mesmo nome. O conjunto de dados de origem está no seu projeto predefinido. O conjunto de dados de destino está em myotherproject. O atalho -f é usado para substituir o modelo de destino sem um comando.

bq cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel

Introduza o seguinte comando para copiar mydataset.mymodel e devolver um erro se o conjunto de dados de destino contiver um modelo com o mesmo nome. O conjunto de dados de origem está no seu projeto predefinido. O conjunto de dados de destino está em myotherproject. O atalho -n é usado para evitar a substituição de um modelo com o mesmo nome.

bq cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel

Introduza o seguinte comando para copiar mydataset.mymodel para mydataset2 e para mudar o nome do modelo mymodel2. Ambos os conjuntos de dados estão no seu projeto predefinido. Ambos os conjuntos de dados foram criados na região asia-northeast1.

bq cp mydataset.mymodel mydataset2.mymodel2

API

Para copiar um modelo através da API, chame o método bigquery.jobs.insert e configure uma tarefa copy. Especifique a sua localização na propriedade location na secção jobReference do recurso job.

Tem de especificar os seguintes valores na configuração da tarefa:

"copy": {
      "sourceTable": {       // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "destinationTable": {  // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "createDisposition": string,  // Optional
      "writeDisposition": string,   // Optional
    },

Onde:

  • sourceTable: fornece informações sobre o modelo a ser copiado.
  • destinationTable: fornece informações sobre o novo modelo.
  • createDisposition: especifica se o modelo deve ser criado caso não exista.
  • writeDisposition: especifica se deve substituir um modelo existente.

Encriptar modelos

Para mais informações sobre a utilização de uma chave de encriptação gerida pelo cliente (CMEK) para encriptar um modelo, consulte o artigo Use CMEK to protect BigQuery ML models (Use CMEK para proteger modelos do BigQuery ML).

O que se segue?