Gerenciar modelos

Nesta página, você verá como gerenciar, copiar e renomear modelos de ML do BigQuery ML.

Funções exigidas

Para receber as permissões necessárias para ler e criar modelos do BigQuery, peça ao administrador para conceder a você o papel do IAM Editor de dados do BigQuery (roles/bigquery.dataEditor) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para ler e criar modelos do BigQuery. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para ler e criar modelos do BigQuery:

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

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Renomear modelos

Não é possível alterar o nome de um modelo atual. Caso precise fazer essa alteração, siga as etapas para copiar o modelo. Quando for especificar o destino na operação de cópia, use o novo nome.

Copiar modelos

É possível copiar um ou mais modelos de um conjunto de dados de origem para um conjunto de dados de destino do seguinte modo:

  • Usando o Console do Google Cloud.
  • Use o comando bq cp da ferramenta de linha de comando bq.
  • Com o método de API jobs.insert diretamente, configurando um job de cópia ou usando as bibliotecas de cliente

Limitações ao copiar um modelo

Os jobs de cópia dos modelos estão sujeitos às limitações abaixo:

  • Quando você faz uma cópia, o nome do modelo de destino precisa seguir as mesmas convenções de nomenclatura de quando você cria um modelo.
  • As cópias do modelo estão sujeitas aos limites do BigQuery em jobs de cópia.
  • Não é possível copiar um modelo usando o console do Google Cloud.
  • Não é possível copiar modelos de origens diversas com um único comando.
  • No momento, cópias de modelos usando a CLI não são compatíveis com a sinalização --destination_kms_key.

Copiar um modelo

É possível copiar um modelo das seguintes formas:

  • use o comando bq cp da ferramenta de linha de comando;
  • Com o método de API jobs.insert, configurando um job de cópia ou usando as bibliotecas de cliente

Veja como copiar um modelo:

Console

O console do Google Cloud não oferece suporte à cópia de modelos.

bq

Emita o comando bq cp. Sinalizações opcionais:

  • -f ou --force substitui um modelo atual no conjunto de dados de destino e não solicita confirmação.
  • -n ou --no_clobber retorna 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 estiver especificada, o comportamento padrão é perguntar se você quer substituir o modelo de destino.

Se o conjunto de dados de origem ou de destino estiver em um projeto diferente do padrão, adicione o ID do projeto aos nomes dos conjuntos de dados no seguinte formato: PROJECT_ID:DATASET.

Forneça a flag --location e defina o valor para seu local.

bq --location=LOCATION cp -f -n PROJECT_ID:DATASET.SOURCE_MODEL PROJECT_ID:DATASET.DESTINATION_MODEL

Substitua:

  • LOCATION: o nome do seu local. A sinalização --location é opcional. Por exemplo, se você estiver usando o BigQuery na região de Tóquio, defina o valor da sinalização como asia-northeast1. É possível definir um valor padrão para a unidade usando o arquivo .bigqueryrc. Para uma lista completa de locais, consulte Locais do BigQuery.
  • PROJECT_ID: o ID do projeto.
  • DATASET: o nome do conjunto de dados de origem ou de destino.
  • SOURCE_MODEL: o modelo que você está copiando.
  • DESTINATION_MODEL: o nome do modelo no conjunto de dados de destino.

Exemplos:

Digite o comando a seguir para copiar mydataset.mymodel para mydataset2. Os dois conjuntos de dados estão no projeto padrão e foram criados no local multirregional US.

bq --location=US cp mydataset.mymodel mydataset2.mymodel

Digite o comando a seguir para copiar mydataset.mymodel e substituir um modelo de destino por outro com o mesmo nome. O conjunto de dados de origem está no projeto padrão. O conjunto de dados de destino está em myotherproject. O atalho -f é usado para substituir o modelo de destino sem um prompt. mydataset e myotherdataset foram criados no local multirregional US.

bq --location=US cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel

Digite o comando a seguir para copiar mydataset.mymodel e retornar um erro se o conjunto de dados de destino tiver um modelo com o mesmo nome. O conjunto de dados de origem está no projeto padrão. O conjunto de dados de destino está em myotherproject. O atalho -n é usado para evitar que um modelo seja substituído por outro com o mesmo nome. Os dois conjuntos de dados foram criados no local multirregional US.

bq --location=US cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel

Digite o comando a seguir para copiar mydataset.mymodel para mydataset2 e renomear o modelo mymodel2. Os dois conjuntos de dados estão no projeto padrão. Os dois conjuntos de dados foram criados na região asia-northeast1.

bq --location=asia-northeast1 cp mydataset.mymodel mydataset2.mymodel2

API

Para copiar um modelo usando a API, chame o método bigquery.jobs.insert e configure um job copy. Especifique seu local na location propriedade jobReference da seção do recurso do job.

Especifique os valores a seguir na configuração do job:

"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
    },

Em que:

  • sourceTable: dá informações sobre o modelo que deve ser copiado.
  • destinationTable: dá informações sobre o novo modelo.
  • createDisposition: especifica se o modelo precisa ser criado, caso ainda não exista.
  • writeDisposition: especifica se deve substituir um modelo atual.

Criptografar modelos

Para mais informações sobre como usar uma chave de criptografia gerenciada pelo cliente (CMEK) para criptografar um modelo, consulte Usar CMEK para proteger modelos do BigQuery ML.

A seguir