Modelo do BigQuery para TFRecords do Cloud Storage

O modelo do BigQuery para TFRecords do Cloud Storage é um pipeline que lê os dados de uma consulta do BigQuery e os grava em um bucket do Cloud Storage no formato TFRecord. É possível especificar as divisões de porcentagem de treinamento, teste e validação. Por padrão, a divisão é 1 ou 100% para o conjunto de treinamento e 0 ou 0% para conjuntos de teste e validação. É importante observar que, ao configurar a divisão do conjunto de dados, a soma de treinamento, teste e validação precisa somar 1 ou 100% (por exemplo, 0,6+0,2+0,2). O Dataflow determina automaticamente o número ideal de fragmentos para cada conjunto de dados de saída.

Requisitos de pipeline

  • O conjunto de dados e a tabela do BigQuery precisam existir.
  • O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline. Observe que os subdiretórios de treinamento, teste e validação não precisam ser pré-existentes e serão gerados automaticamente.

Parâmetros do modelo

Parâmetros obrigatórios

  • readQuery: uma consulta SQL do BigQuery que extrai dados da origem. Por exemplo, select * from dataset1.sample_table.
  • outputDirectory: o prefixo de caminho de nível superior do Cloud Storage a ser usado ao gravar os arquivos TFRecord de treinamento, teste e validação. Subdiretórios para treinamento, teste e validação de arquivos TFRecord resultantes são gerados automaticamente a partir de outputDirectory. Por exemplo, gs://mybucket/output.

Parâmetros opcionais

  • readIdColumn: o nome da coluna do BigQuery que armazena o identificador exclusivo da linha.
  • invalidOutputPath: caminho do Cloud Storage em que as linhas do BigQuery que não podem ser convertidas em entidades de destino são gravadas. Por exemplo, gs://your-bucket/your-path.
  • outputSuffix: o sufixo do arquivo para os arquivos TFRecord de treinamento, teste e validação que são gravados. O valor padrão é .tfrecord.
  • trainingPercentage: a porcentagem de dados de consulta alocados para arquivos TFRecord de treinamento. O valor padrão é 1 ou 100%.
  • testingPercentage: a porcentagem de dados de consulta alocados para arquivos TFRecord de teste. O valor padrão é 0 ou 0%.
  • validationPercentage: a porcentagem de dados de consulta alocados para arquivos TFRecord de validação. O valor padrão é 0 ou 0%.

Executar o modelo

Console

  1. Acesse a página Criar job usando um modelo do Dataflow.
  2. Acesse Criar job usando um modelo
  3. No campo Nome do job, insira um nome exclusivo.
  4. Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é us-central1.

    Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.

  5. No menu suspenso Modelo do Dataflow, selecione o modelo BigQuery para TFRecords.
  6. Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
  7. Cliquem em Executar job.

gcloud

No shell ou no terminal, execute o modelo:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --region REGION_NAME \
    --parameters \
readQuery=READ_QUERY,\
outputDirectory=OUTPUT_DIRECTORY,\
trainingPercentage=TRAINING_PERCENTAGE,\
testingPercentage=TESTING_PERCENTAGE,\
validationPercentage=VALIDATION_PERCENTAGE,\
outputSuffix=OUTPUT_FILENAME_SUFFIX

Substitua:

  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

    • latest para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/
    • o nome da versão, como 2023-09-12-00_RC00, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
  • REGION_NAME: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • READ_QUERY: a consulta do BigQuery a ser executada.
  • OUTPUT_DIRECTORY: o prefixo do caminho do Cloud Storage para conjuntos de dados de saída.
  • TRAINING_PERCENTAGE: a divisão decimal percentual do conjunto de dados de treinamento.
  • TESTING_PERCENTAGE: a divisão decimal do conjunto de dados de teste.
  • VALIDATION_PERCENTAGE: a divisão decimal do conjunto de dados de validação.
  • OUTPUT_FILENAME_SUFFIX: o sufixo do arquivo de saída preferido do TensorFlow Record

API

Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a API e os respectivos escopos de autorização, consulte projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "jobName": "JOB_NAME",
   "parameters": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "environment": { "zone": "us-central1-f" }
}

Substitua:

  • PROJECT_ID: o ID do projeto Google Cloud em que você quer executar o job do Dataflow
  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

    • latest para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/
    • o nome da versão, como 2023-09-12-00_RC00, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
  • LOCATION: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • READ_QUERY: a consulta do BigQuery a ser executada.
  • OUTPUT_DIRECTORY: o prefixo do caminho do Cloud Storage para conjuntos de dados de saída.
  • TRAINING_PERCENTAGE: a divisão decimal percentual do conjunto de dados de treinamento.
  • TESTING_PERCENTAGE: a divisão decimal do conjunto de dados de teste.
  • VALIDATION_PERCENTAGE: a divisão decimal do conjunto de dados de validação.
  • OUTPUT_FILENAME_SUFFIX: o sufixo do arquivo de saída preferido do TensorFlow Record

A seguir