Plantilla de Pub/Sub a archivos Avro en Cloud Storage

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

  1. Ve a la página Crear un trabajo a partir de una plantilla de Dataflow.
  2. Ir a Crear un trabajo a partir de una plantilla
  3. En el campo Nombre del trabajo, ingresa un nombre de trabajo único.
  4. 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.

  5. En el menú desplegable Plantilla de Dataflow, selecciona the Pub/Sub to Avro Files on Cloud Storage template.
  6. En los campos de parámetros proporcionados, ingresa los valores de tus parámetros.
  7. 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 elijas
  • REGION_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 elijas
  • LOCATION: 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?