La plantilla de Pub/Sub a archivos de Avro en Cloud Storage es una canalización de transmisión que lee datos de un tema de Pub/Sub y escribe archivos de Avro en el bucket de Cloud Storage especificado.
Requisitos de la canalización
- El tema de entrada de Pub/Sub debe existir antes de la ejecución de la canalización.
Parámetros de la plantilla
Parámetros obligatorios
- inputTopic: Tema de Pub/Sub desde el que se leerá la entrada, con el formato “projects/your-project-id/topics/your-topic-name”.
- outputDirectory: La ruta de acceso y el prefijo del nombre de archivo para escribir los archivos de salida. Debe terminar con una barra. El formato de fecha y hora se usa a fin de analizar la ruta del directorio para los formateadores de fecha y hora.
- avroTempDirectory: Directorio para los archivos Avro temporales
Parámetros opcionales
- outputFilenamePrefix: El prefijo para colocar en cada archivo con ventanas. La configuración predeterminada es: output.
- outputFilenameSuffix: El sufijo para colocar en cada archivo con ventanas. Por lo general, son extensiones de archivo como .txt o .csv. La configuración predeterminada es vacía.
- outputShardTemplate: Define la parte única o dinámica de cada archivo con ventanas. Recomendado: Usa el valor predeterminado (WP-SS-of-NN). En el entorno de ejecución, “W” se reemplaza por el período de la ventana y “P” se reemplaza por la información del panel. Las secuencias repetidas de letras “S” o “N” se reemplazan por el número de fragmentación y la cantidad de fragmentaciones respectivamente. La canalización supone un solo resultado de archivo y producirá el texto “00-of-01” de forma predeterminada.
- yearPattern: El patrón para dar formato al año. Debe ser una o más “y” o “Y”. Las mayúsculas y minúsculas no marcan diferencia en el año. De manera opcional, el patrón se puede unir con caracteres que no sean alfanuméricos ni el carácter de directorio (“/”). La configuración predeterminada es “AAAA”.
- monthPattern: El patrón para dar formato al mes. Debe ser uno o más caracteres de "M". De manera opcional, el patrón se puede unir con caracteres que no sean alfanuméricos o el carácter de directorio (“/”). La configuración predeterminada es “MM”.
- dayPattern: El patrón para dar formato al día. Debe ser uno o más valores de "d" para el día del mes o "D" para el día del año. Las mayúsculas y minúsculas no marcan diferencia en el año. De manera opcional, el patrón se puede unir con caracteres que no sean alfanuméricos ni el carácter de directorio (“/”). La configuración predeterminada es “dd”.
- hourPattern: El patrón para dar formato a la hora. Debe ser uno o más caracteres de "H". De manera opcional, el patrón se puede unir con caracteres que no sean alfanuméricos o el carácter de directorio (“/”). La configuración predeterminada es “HH”.
- minutePattern: El patrón para dar formato al minuto. Debe ser uno o más caracteres de "m". De manera opcional, el patrón se puede unir con caracteres que no sean alfanuméricos o el carácter de directorio (“/”). La configuración predeterminada es “mm”.
Ejecuta la plantilla
Consola
- Ve a la página Crear un trabajo a partir de una plantilla de Dataflow. Ir a Crear un trabajo a partir de una plantilla
- En el campo Nombre del trabajo, ingresa un nombre de trabajo único.
- Opcional: Para Extremo regional, selecciona un valor del menú desplegable. La región predeterminada es
us-central1
.Para obtener una lista de regiones en las que puedes ejecutar un trabajo de Dataflow, consulta Ubicaciones de Dataflow.
- En el menú desplegable Plantilla de Dataflow, selecciona the Pub/Sub to Avro Files on Cloud Storage template.
- En los campos de parámetros proporcionados, ingresa los valores de tus parámetros.
- Haga 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_PubSub_to_Avro \ --region REGION_NAME \ --staging-location STAGING_LOCATION \ --parameters \ inputTopic=projects/PROJECT_ID/topics/TOPIC_NAME,\ outputDirectory=gs://BUCKET_NAME/output/,\ outputFilenamePrefix=FILENAME_PREFIX,\ outputFilenameSuffix=FILENAME_SUFFIX,\ outputShardTemplate=SHARD_TEMPLATE,\ avroTempDirectory=gs://BUCKET_NAME/temp/
Reemplaza lo siguiente:
JOB_NAME
: Es el nombre del trabajo que elijasREGION_NAME
: La región en la que deseas implementar tu trabajo de Dataflow, por ejemplo,us-central1
VERSION
: Es la versión de la plantilla que deseas usar.Puedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta superior non-dated en el bucket 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 puede encontrar anidada en la carpeta superior con fecha correspondiente en el bucket gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: la ubicación para los archivos locales de etapa de pruebas (por ejemplo,gs://your-bucket/staging
).TOPIC_NAME
: Es el nombre del tema de Pub/Sub.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage.FILENAME_PREFIX
: Es el prefijo del nombre de archivo de salida que prefieras.FILENAME_SUFFIX
: Es el sufijo del nombre de archivo de salida que prefieras.SHARD_TEMPLATE
: Es la plantilla de fragmentación de salida que prefieras.
API
Para ejecutar la plantilla con la API de REST, envía una solicitud HTTP POST. Para obtener más información de la API y sus permisos 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_PubSub_to_Avro { "jobName": "JOB_NAME", "environment": { "ipConfiguration": "WORKER_IP_UNSPECIFIED", "additionalExperiments": [] }, "parameters": { "inputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME", "outputDirectory": "gs://BUCKET_NAME/output/", "avroTempDirectory": "gs://BUCKET_NAME/temp/", "outputFilenamePrefix": "FILENAME_PREFIX", "outputFilenameSuffix": "FILENAME_SUFFIX", "outputShardTemplate": "SHARD_TEMPLATE" } }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto de Google Cloud en el que deseas ejecutar el trabajo de Dataflow.JOB_NAME
: Es el nombre del trabajo que elijasLOCATION
: La región en la que deseas implementar tu trabajo de Dataflow, por ejemplo,us-central1
VERSION
: Es la versión de la plantilla que deseas usar.Puedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta superior non-dated en el bucket 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 puede encontrar anidada en la carpeta superior con fecha correspondiente en el bucket gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: la ubicación para los archivos locales de etapa de pruebas (por ejemplo,gs://your-bucket/staging
).TOPIC_NAME
: Es el nombre del tema de Pub/Sub.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage.FILENAME_PREFIX
: Es el prefijo del nombre de archivo de salida que prefieras.FILENAME_SUFFIX
: Es el sufijo del nombre de archivo de salida que prefieras.SHARD_TEMPLATE
: Es la plantilla de fragmentación de salida que prefieras.
¿Qué sigue?
- Obtén información sobre las plantillas de Dataflow.
- Consulta la lista de plantillas que proporciona Google.