Modello TFRecords da BigQuery a Cloud Storage

Il modello TFRecords 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 è 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 all'1 o al 100% (ad esempio 0,6 + 0,2 + 0,2). Dataflow determina automaticamente il numero ottimale di shard per ogni set di dati di output.

Requisiti della pipeline

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

Parametri del modello

Parametri obbligatori

  • readQuery : una query SQL 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 la scrittura dei file TFRecord per l'addestramento, il test e la convalida. Le sottodirectory dei file TFRecord di addestramento, test e convalida risultanti vengono generate automaticamente da outputDirectory. Ad esempio, gs://mybucket/output/train (ad es. gs://mybucket/output).

Parametri facoltativi

  • readIdColumn : nome della colonna BigQuery in cui è archiviato l'identificatore univoco della riga.
  • invalidOutputPath : percorso di Cloud Storage in cui scrivere 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 delle query assegnati ai file TFRecord di addestramento. Il valore predefinito è 1 o 100%.
  • testingPercentage : la percentuale di dati delle query allocate per testare i file TFRecord. Il valore predefinito è 0 o 0%.
  • validationPercentage : la percentuale di dati delle query assegnati 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 di regioni in cui è possibile eseguire un job Dataflow, consulta Località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the BigQuery to TFRecords template.
  6. Inserisci i valori parametro negli appositi campi.
  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 job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella padre non con data del bucket: gs://dataflow-templates-REGION_NAME/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che è possibile trovare nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates-REGION_NAME/
  • 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 percentuale decimale per il set di dati di addestramento
  • TESTING_PERCENTAGE: la suddivisione percentuale decimale per il set di dati di test
  • VALIDATION_PERCENTAGE: suddivisione percentuale decimale per il set di dati di convalida
  • OUTPUT_FILENAME_SUFFIX: il suffisso del file preferito del record TensorFlow di output

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori 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 job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella padre non con data del bucket: gs://dataflow-templates-REGION_NAME/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che è possibile trovare nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates-REGION_NAME/
  • 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 percentuale decimale per il set di dati di addestramento
  • TESTING_PERCENTAGE: la suddivisione percentuale decimale per il set di dati di test
  • VALIDATION_PERCENTAGE: suddivisione percentuale decimale per il set di dati di convalida
  • OUTPUT_FILENAME_SUFFIX: il suffisso del file preferito del record TensorFlow di output

Passaggi successivi