Modelo de TFRecords do BigQuery para o Cloud Storage

O modelo de TFRecords do BigQuery para o Cloud Storage é um pipeline que lê dados de uma consulta do BigQuery e escreve-os num contentor do Cloud Storage no formato TFRecord. Pode especificar as divisões percentuais de preparação, testes e validação. Por predefinição, a divisão é de 1 ou 100% para o conjunto de preparação e de 0 ou 0% para os conjuntos de testes e validação. Ao definir a divisão do conjunto de dados, a soma dos dados de preparação, teste e validação tem de ser igual a 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 do pipeline

  • O conjunto de dados e a tabela do BigQuery têm de existir.
  • O contentor do Cloud Storage de saída tem de existir antes da execução do pipeline. Os subdiretórios de preparação, testes e validação não têm de existir previamente e são gerados automaticamente.

Parâmetros de modelos

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 do caminho do Cloud Storage de nível superior a usar ao escrever os ficheiros TFRecord de preparação, teste e validação. Os subdiretórios para os ficheiros TFRecord de preparação, teste e validação resultantes são gerados automaticamente a partir de outputDirectory. Por exemplo, gs://mybucket/output.

Parâmetros opcionais

  • readIdColumn: nome da coluna do BigQuery que armazena o identificador exclusivo da linha.
  • invalidOutputPath: caminho do Cloud Storage onde escrever linhas do BigQuery que não podem ser convertidas em entidades de destino. Por exemplo, gs://your-bucket/your-path.
  • outputSuffix: o sufixo do ficheiro para os ficheiros TFRecord de preparação, teste e validação que são escritos. O valor predefinido é .tfrecord.
  • trainingPercentage: a percentagem de dados de consultas atribuídos a ficheiros TFRecord de preparação. O valor predefinido é 1 ou 100%.
  • testingPercentage: a percentagem de dados de consulta atribuídos a testes de ficheiros TFRecord. O valor predefinido é 0 ou 0%.
  • validationPercentage: a percentagem de dados de consultas atribuídos a ficheiros TFRecord de validação. O valor predefinido é 0 ou 0%.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione the BigQuery to TFRecords template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na shell ou no terminal, execute o modelo:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/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 o seguinte:

  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • READ_QUERY: a consulta do BigQuery a executar
  • OUTPUT_DIRECTORY: o prefixo do caminho do Cloud Storage para conjuntos de dados de saída
  • TRAINING_PERCENTAGE: a divisão percentual decimal para o conjunto de dados de preparação
  • TESTING_PERCENTAGE: a divisão percentual decimal para o conjunto de dados de teste
  • VALIDATION_PERCENTAGE: a divisão percentual decimal para o conjunto de dados de validação
  • OUTPUT_FILENAME_SUFFIX: o sufixo do ficheiro TensorFlow Record de saída preferencial

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos de autorização, consulte projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/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 o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • READ_QUERY: a consulta do BigQuery a executar
  • OUTPUT_DIRECTORY: o prefixo do caminho do Cloud Storage para conjuntos de dados de saída
  • TRAINING_PERCENTAGE: a divisão percentual decimal para o conjunto de dados de preparação
  • TESTING_PERCENTAGE: a divisão percentual decimal para o conjunto de dados de teste
  • VALIDATION_PERCENTAGE: a divisão percentual decimal para o conjunto de dados de validação
  • OUTPUT_FILENAME_SUFFIX: o sufixo do ficheiro TensorFlow Record de saída preferencial

O que se segue?