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 SQL de BigQuery que extrae datos de la fuente. Por ejemplo,
select * from dataset1.sample_table. - outputDirectory prefijo de 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 porcentaje de datos de consulta asignado a los archivos TFRecord de entrenamiento. El valor predeterminado es
1o100%. - testingPercentage porcentaje de datos de consulta asignados a archivos TFRecord de prueba. El valor predeterminado es
0o0%. - validationPercentage porcentaje de datos de consulta asignados a archivos TFRecord de validación. El valor predeterminado es
0o0%.
Ejecutar la plantilla
Consola
- Ve a la página Crear tarea a partir de plantilla de Dataflow. Ir a Crear tarea a partir de plantilla
- En el campo Nombre de la tarea, introduce un nombre único.
- 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.
- En el menú desplegable Plantilla de flujo de datos, seleccione the BigQuery to TFRecords template.
- En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
- 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 elijasVERSION: la versión de la plantilla que quieres usarPuedes usar los siguientes valores:
latestpara 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-central1READ_QUERY: la consulta de BigQuery que se va a ejecutar.OUTPUT_DIRECTORY: prefijo de la ruta de Cloud Storage de los conjuntos de datos de salidaTRAINING_PERCENTAGE: la división porcentual decimal del conjunto de datos de entrenamientoTESTING_PERCENTAGE: la división porcentual decimal del conjunto de datos de pruebaVALIDATION_PERCENTAGE: porcentaje decimal de la división del conjunto de datos de validaciónOUTPUT_FILENAME_SUFFIX: sufijo preferido del archivo TensorFlow Record de salida
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 DataflowJOB_NAME: un nombre de trabajo único que elijasVERSION: la versión de la plantilla que quieres usarPuedes usar los siguientes valores:
latestpara 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-central1READ_QUERY: la consulta de BigQuery que se va a ejecutar.OUTPUT_DIRECTORY: prefijo de la ruta de Cloud Storage de los conjuntos de datos de salidaTRAINING_PERCENTAGE: la división porcentual decimal del conjunto de datos de entrenamientoTESTING_PERCENTAGE: la división porcentual decimal del conjunto de datos de pruebaVALIDATION_PERCENTAGE: porcentaje decimal de la división del conjunto de datos de validaciónOUTPUT_FILENAME_SUFFIX: sufijo preferido del archivo TensorFlow Record de salida
Siguientes pasos
- Consulta información sobre las plantillas de Dataflow.
- Consulta la lista de plantillas proporcionadas por Google.