Modello TFRecord da BigQuery a Cloud Storage

Il modello TFRecord da BigQuery a Cloud Storage è una pipeline che legge i dati da una query BigQuery e li scrive in un bucket Cloud Storage in formato TFRecord. Puoi specificare le suddivisioni percentuali per addestramento, test e convalida. Per impostazione predefinita, la suddivisione è pari a 1 o 100% per il set di addestramento e 0 o 0% per i set di test e convalida. Quando imposti la suddivisione del set di dati, la somma di addestramento, test e convalida deve essere pari a 1 o al 100% (ad es. 0,6 + 0,2 + 0,2). Dataflow determina automaticamente il numero ottimale di shard per ogni set di dati di output.

Requisiti della pipeline

  • Il set di dati e la tabella BigQuery devono esistere.
  • Il bucket Cloud Storage di output deve esistere prima dell'esecuzione della pipeline. Le sottodirectory di addestramento, test e convalida non devono preesistere e vengono generate automaticamente.

Parametri del modello

Parametri obbligatori

  • readQuery : una query SQL di BigQuery che estrae i dati dall'origine. Ad esempio, seleziona * da dataset1.sample_table.
  • outputDirectory : il prefisso del percorso di Cloud Storage di primo livello da utilizzare per scrivere i file TFRecord di addestramento, test e convalida. Le sottodirectory per i file TFRecord di addestramento, test e convalida risultanti vengono generate automaticamente da outputDirectory. Ad esempio, gs://mybucket/output/train (esempio: gs://mybucket/output).

Parametri facoltativi

  • readIdColumn : il nome della colonna BigQuery che memorizza l'identificatore univoco della riga.
  • invalidOutputPath : percorso di Cloud Storage in cui scrivere le righe BigQuery che non possono essere convertite in entità di destinazione. (ad esempio gs://your-bucket/your-path).
  • outputSuffix : il suffisso dei file TFRecord di addestramento, test e convalida scritti. Il valore predefinito è .tfrecord.
  • trainingPercentage : la percentuale di dati di query allocata ai file TFRecord di addestramento. Il valore predefinito è 1 o 100%.
  • testingPercentage : la percentuale di dati delle query allocati al test dei file TFRecord. Il valore predefinito è 0 o 0%.
  • validationPercentage : la percentuale di dati delle query allocata ai file TFRecord di convalida. Il valore predefinito è 0 o 0%.

Esegui il modello

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. La regione predefinita è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta Località di Dataflow.

  5. Nel menu a discesa Modello di flusso di dati, seleziona the BigQuery to TFRecords template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

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

Sostituisci quanto segue:

  • JOB_NAME: un nome di job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • READ_QUERY: la query BigQuery da eseguire
  • OUTPUT_DIRECTORY: il prefisso del percorso Cloud Storage per i set di dati di output
  • TRAINING_PERCENTAGE: la suddivisione in percentuale decimale per il set di dati di addestramento
  • TESTING_PERCENTAGE: la suddivisione in percentuale decimale per il set di dati di test
  • VALIDATION_PERCENTAGE: la suddivisione in percentuale decimale per il set di dati di convalida
  • OUTPUT_FILENAME_SUFFIX: il suffisso del file di record TensorFlow di output preferito

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni sull'API e sui relativi ambiti di autorizzazione, consulta 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" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome di job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • READ_QUERY: la query BigQuery da eseguire
  • OUTPUT_DIRECTORY: il prefisso del percorso Cloud Storage per i set di dati di output
  • TRAINING_PERCENTAGE: la suddivisione in percentuale decimale per il set di dati di addestramento
  • TESTING_PERCENTAGE: la suddivisione in percentuale decimale per il set di dati di test
  • VALIDATION_PERCENTAGE: la suddivisione in percentuale decimale per il set di dati di convalida
  • OUTPUT_FILENAME_SUFFIX: il suffisso del file di record TensorFlow di output preferito

Passaggi successivi