Da Pub/Sub a file Avro su modello Cloud Storage

I file da Pub/Sub ad Avro nel modello Cloud Storage sono una pipeline in modalità flusso che legge i dati da un argomento Pub/Sub e scrive i file Avro nel bucket Cloud Storage specificato.

Requisiti della pipeline

  • L'argomento Pub/Sub di input deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
inputTopic Argomento Pub/Sub per la sottoscrizione per l'utilizzo dei messaggi. Il nome dell'argomento deve essere nel formato projects/<project-id>/topics/<topic-name>.
outputDirectory Directory di output in cui sono archiviati i file Avro di output. Deve contenere / alla fine. Ad esempio: gs://example-bucket/example-directory/.
avroTempDirectory Directory per i file Avro temporanei. Deve contenere / alla fine. Ad esempio: gs://example-bucket/example-directory/.
outputFilenamePrefix (Facoltativo) Prefisso del nome file di output per i file Avro.
outputFilenameSuffix (Facoltativo) Suffisso del nome del file di output per i file Avro.
outputShardTemplate (Facoltativo) Il modello di shard del file di output. Viene specificato come sequenze ripetute delle lettere S o N. Ad esempio: SSS-NNN. Questi vengono sostituiti, rispettivamente, dal numero di shard o dal numero totale di shard. Se questo parametro non è specificato, il formato predefinito del modello è W-P-SS-of-NN.

Esegui il modello

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. La regione predefinita è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, vedi Località Dataflow.

  5. Nel menu a discesa Modello Dataflow, seleziona the Pub/Sub to Avro Files on Cloud Storage template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

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/

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • STAGING_LOCATION: la posizione per la gestione temporanea dei file locali (ad esempio, gs://your-bucket/staging)
  • TOPIC_NAME: nome dell'argomento Pub/Sub
  • BUCKET_NAME: il nome del bucket Cloud Storage
  • FILENAME_PREFIX: il prefisso preferito del nome file di output
  • FILENAME_SUFFIX: il suffisso preferito del nome file di output
  • SHARD_TEMPLATE: il modello di shard di output preferito

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui relativi ambiti di autorizzazione, 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"
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • STAGING_LOCATION: la posizione per la gestione temporanea dei file locali (ad esempio, gs://your-bucket/staging)
  • TOPIC_NAME: nome dell'argomento Pub/Sub
  • BUCKET_NAME: il nome del bucket Cloud Storage
  • FILENAME_PREFIX: il prefisso preferito del nome file di output
  • FILENAME_SUFFIX: il suffisso preferito del nome file di output
  • SHARD_TEMPLATE: il modello di shard di output preferito

Passaggi successivi