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
Parametri obbligatori
- inputTopic : l'argomento Pub/Sub a cui eseguire la sottoscrizione per l'utilizzo dei messaggi. Il nome dell'argomento deve essere nel formato projects/<ID_PROGETTO>/topics/<NOME_ARGOMENTO>.
- outputDirectory : la directory di output in cui sono archiviati i file Avro di output. Deve contenere il simbolo / alla fine. Ad esempio: gs://example-bucket/example-directory/.
- avroTempDirectory : la directory per i file Avro temporanei. Deve contenere il simbolo / alla fine. Ad esempio: gs://example-bucket/example-directory/.
Parametri facoltativi
- outputFilenamePrefix : il prefisso del nome file di output per i file Avro. Il valore predefinito è: output.
- outputFilenameSuffix : il suffisso del nome file di output per i file Avro. Il valore predefinito è vuoto.
- outputShardTemplate : il modello di shard definisce la parte dinamica di ogni file visualizzato in finestre. Per impostazione predefinita, la pipeline utilizza un singolo shard per l'output nel file system all'interno di ogni finestra. Di conseguenza, tutti i dati vengono restituiti in un unico file per finestra. Il valore predefinito di
outputShardTemplate
èto W-P-SS-of-NN
, doveW
è l'intervallo di date della finestra,P
è le informazioni relative al riquadro,S
è il numero di shard eN
è il numero di shard. Nel caso di un solo file, la parteSS-of-NN
dioutputShardTemplate
è00-of-01
. - yearPattern : il pattern per la formattazione dell'anno. Devono essere uno o più tra
y
oY
. Il caso non fa alcuna differenza nel corso dell'anno. Se vuoi, puoi mandare a capo il pattern con caratteri non alfanumerici o con il carattere di directory ("/"). Il valore predefinito èYYYY
. - monthPattern : il pattern per la formattazione del mese. Deve contenere uno o più caratteri inclusi in
M
. Se vuoi, puoi mandare a capo il pattern con caratteri non alfanumerici o con il carattere di directory ("/"). Il valore predefinito èMM
. - dayPattern : pattern per la formattazione del giorno. Deve essere uno o più
d
per il giorno del mese oD
per il giorno dell'anno. Se vuoi, puoi mandare a capo il pattern con caratteri non alfanumerici o con il carattere di directory ("/"). Il valore predefinito èdd
. - hourPattern : il pattern per la formattazione dell'ora. Deve contenere uno o più caratteri inclusi in
H
. Se vuoi, puoi mandare a capo il pattern con caratteri non alfanumerici o con il carattere di directory ("/"). Il valore predefinito èHH
. - minutePattern : sequenza per la formattazione dei minuti. Deve contenere uno o più caratteri inclusi in
m
. Se vuoi, puoi mandare a capo il pattern con caratteri non alfanumerici o con il carattere di directory ("/"). Il valore predefinito èmm
.
Esegui il modello
Console
- Vai alla pagina Crea job da modello di Dataflow. Vai a Crea job da modello
- Nel campo Nome job, inserisci un nome univoco per il job.
- (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.
- Nel menu a discesa Modello Dataflow, seleziona the Pub/Sub to Avro Files on Cloud Storage template.
- Nei campi dei parametri forniti, inserisci i valori dei parametri.
- 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 sceltaREGION_NAME
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
VERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare la versione più recente del modello, disponibile nella cartella padre senza data del bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, come
2023-09-12-00_RC00
, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella padre con data all'interno del bucket: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: la posizione per la gestione temporanea dei file locali (ad esempio,gs://your-bucket/staging
)TOPIC_NAME
: nome dell'argomento Pub/SubBUCKET_NAME
: il nome del bucket Cloud StorageFILENAME_PREFIX
: il prefisso preferito del nome file di outputFILENAME_SUFFIX
: il suffisso preferito del nome file di outputSHARD_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 DataflowJOB_NAME
: un nome job univoco a tua sceltaLOCATION
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
VERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare la versione più recente del modello, disponibile nella cartella padre senza data del bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, come
2023-09-12-00_RC00
, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella padre con data all'interno del bucket: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: la posizione per la gestione temporanea dei file locali (ad esempio,gs://your-bucket/staging
)TOPIC_NAME
: nome dell'argomento Pub/SubBUCKET_NAME
: il nome del bucket Cloud StorageFILENAME_PREFIX
: il prefisso preferito del nome file di outputFILENAME_SUFFIX
: il suffisso preferito del nome file di outputSHARD_TEMPLATE
: il modello di shard di output preferito
Passaggi successivi
- Scopri di più sui modelli Dataflow.
- Consulta l'elenco dei modelli forniti da Google.