La plantilla Conversión de formato de archivo es un flujo de procesamiento por lotes que convierte archivos almacenados en Cloud Storage de un formato admitido a otro.
Se admiten las siguientes conversiones de formato:
- De CSV a Avro
- De CSV a Parquet
- De Avro a Parquet
- De Parquet a Avro
Requisitos del flujo de procesamiento
- El segmento de Cloud Storage de salida debe existir antes de ejecutar el flujo de procesamiento.
Parámetros de plantilla
Parámetro | Descripción |
---|---|
inputFileFormat |
El formato del archivo de entrada. Debe ser uno de los siguientes: [csv, avro, parquet] . |
outputFileFormat |
El formato del archivo de salida. Debe ser uno de los siguientes: [avro, parquet] . |
inputFileSpec |
Patrón de ruta de Cloud Storage para los archivos de entrada. Por ejemplo, gs://bucket-name/path/*.csv |
outputBucket |
La carpeta de Cloud Storage en la que se escribirán los archivos de salida. Esta ruta debe terminar con una barra.
Por ejemplo, gs://bucket-name/output/ |
schema |
Ruta de Cloud Storage al archivo de esquema de Avro. Por ejemplo, gs://bucket-name/schema/my-schema.avsc |
containsHeaders |
(Opcional) Los archivos CSV de entrada contienen un registro de encabezado (true/false). El valor predeterminado es false . Solo es necesario al leer archivos CSV. |
csvFormat |
(Opcional) Especificación del formato CSV que se usará para analizar los registros. El valor predeterminado es Default .
Consulta más información sobre el formato CSV de Apache Commons. |
delimiter |
(Opcional) Delimitador de campos que usan los archivos CSV de entrada. |
outputFilePrefix |
(Opcional) El prefijo del archivo de salida. El valor predeterminado es output . |
numShards |
(Opcional) Número de particiones del archivo de salida. |
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 Convert file formats 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 flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/File_Format_Conversion \ --parameters \ inputFileFormat=INPUT_FORMAT,\ outputFileFormat=OUTPUT_FORMAT,\ inputFileSpec=INPUT_FILES,\ schema=SCHEMA,\ outputBucket=OUTPUT_FOLDER
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 elijasREGION_NAME
: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo,us-central1
VERSION
: la versión de la plantilla que quieres usarPuedes 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/
INPUT_FORMAT
: el formato de archivo del archivo de entrada. Debe ser uno de los siguientes:[csv, avro, parquet]
.OUTPUT_FORMAT
: el formato de archivo de los archivos de salida. Debe ser uno de los siguientes:[avro, parquet]
INPUT_FILES
: el patrón de ruta de los archivos de entradaOUTPUT_FOLDER
: tu carpeta de Cloud Storage para los archivos de salidaSCHEMA
: la ruta al archivo de esquema Avro
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/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputFileFormat": "INPUT_FORMAT", "outputFileFormat": "OUTPUT_FORMAT", "inputFileSpec": "INPUT_FILES", "schema": "SCHEMA", "outputBucket": "OUTPUT_FOLDER" }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/File_Format_Conversion", } }
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 elijasLOCATION
: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo,us-central1
VERSION
: la versión de la plantilla que quieres usarPuedes 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/
INPUT_FORMAT
: el formato de archivo del archivo de entrada. Debe ser uno de los siguientes:[csv, avro, parquet]
.OUTPUT_FORMAT
: el formato de archivo de los archivos de salida. Debe ser uno de los siguientes:[avro, parquet]
INPUT_FILES
: el patrón de ruta de los archivos de entradaOUTPUT_FOLDER
: tu carpeta de Cloud Storage para los archivos de salidaSCHEMA
: la ruta al archivo de esquema Avro
Siguientes pasos
- Consulta información sobre las plantillas de Dataflow.
- Consulta la lista de plantillas proporcionadas por Google.