Plantilla de BigQuery a TFRecords de Cloud Storage

La plantilla de BigQuery a TFRecords de Cloud Storage es una canalización que lee datos de una consulta de BigQuery y los escribe en un segmento de Cloud Storage en formato TFRecord. Puedes especificar los porcentajes de división de los datos de entrenamiento, prueba y validación. De forma predeterminada, la división es 1 (o el 100 %) para el conjunto de entrenamiento y 0 (o el 0 %) para los conjuntos de prueba y validación. Al definir la división del conjunto de datos, la suma de los conjuntos de entrenamiento, prueba y validación debe ser igual a 1 o al 100% (por ejemplo, 0,6 + 0,2 + 0,2). Dataflow determina automáticamente el número óptimo de particiones de cada conjunto de datos de salida.

Requisitos del flujo de procesamiento

  • El conjunto de datos y la tabla de BigQuery deben existir.
  • El segmento de Cloud Storage de salida debe existir antes de ejecutar el flujo de procesamiento. No es necesario que las subcarpetas de entrenamiento, pruebas y validación existan previamente, ya que se generan automáticamente.

Parámetros de plantilla

Parámetros obligatorios

  • readQuery una consulta de SQL de BigQuery que extrae datos de la fuente. Por ejemplo, select * from dataset1.sample_table.
  • outputDirectory prefijo de la ruta de nivel superior de Cloud Storage que se usará al escribir los archivos TFRecord de entrenamiento, prueba y validación. Los subdirectorios de los archivos TFRecord de entrenamiento, prueba y validación resultantes se generan automáticamente a partir de outputDirectory. Por ejemplo, gs://mybucket/output.

Parámetros opcionales

  • readIdColumn nombre de la columna de BigQuery que almacena el identificador único de la fila.
  • invalidOutputPath ruta de Cloud Storage en la que se escribirán las filas de BigQuery que no se puedan convertir en entidades de destino. Por ejemplo, gs://your-bucket/your-path.
  • outputSuffix el sufijo de los archivos TFRecord de entrenamiento, prueba y validación que se escriben. El valor predeterminado es .tfrecord.
  • trainingPercentage el porcentaje de datos de consulta asignado a los archivos TFRecord de entrenamiento. El valor predeterminado es 1 o 100%.
  • testingPercentage porcentaje de datos de consulta asignados a los archivos TFRecord de prueba. El valor predeterminado es 0 o 0%.
  • validationPercentage porcentaje de datos de consulta asignados a archivos TFRecord de validación. El valor predeterminado es 0 o 0%.

Ejecutar la plantilla

Consola

  1. Ve a la página Crear tarea a partir de plantilla de Dataflow.
  2. Ir a Crear tarea a partir de plantilla
  3. En el campo Nombre de la tarea, introduce un nombre único.
  4. Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es us-central1.

    Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de flujo de datos, seleccione the BigQuery to TFRecords template.
  6. En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
  7. Haz clic en Ejecutar trabajo.

gcloud

En tu shell o terminal, ejecuta la plantilla:

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

Haz los cambios siguientes:

  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • READ_QUERY: la consulta de BigQuery que se va a ejecutar.
  • OUTPUT_DIRECTORY: el prefijo de la ruta de Cloud Storage de los conjuntos de datos de salida.
  • TRAINING_PERCENTAGE: la división porcentual decimal del conjunto de datos de entrenamiento.
  • TESTING_PERCENTAGE: la división porcentual decimal del conjunto de datos de prueba
  • VALIDATION_PERCENTAGE: porcentaje decimal de la división del conjunto de datos de validación
  • OUTPUT_FILENAME_SUFFIX: sufijo de archivo TensorFlow Record de salida preferido

API

Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, 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" }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de Dataflow
  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • LOCATION: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • READ_QUERY: la consulta de BigQuery que se va a ejecutar.
  • OUTPUT_DIRECTORY: el prefijo de la ruta de Cloud Storage de los conjuntos de datos de salida.
  • TRAINING_PERCENTAGE: la división porcentual decimal del conjunto de datos de entrenamiento.
  • TESTING_PERCENTAGE: la división porcentual decimal del conjunto de datos de prueba
  • VALIDATION_PERCENTAGE: porcentaje decimal de la división del conjunto de datos de validación
  • OUTPUT_FILENAME_SUFFIX: sufijo de archivo TensorFlow Record de salida preferido

Siguientes pasos