Il modello Argomento o sottoscrizione Pub/Sub a testo di Cloud Storage è una pipeline di inserimento flussi che legge i record da Pub/Sub e li salva sotto forma di serie di file di Cloud Storage in formato testo. Il modello può essere utilizzato come mezzo rapido per salvare dati contenuti in Pub/Sub per uso futuro. Per impostazione predefinita, il modello genera un nuovo file ogni 5 minuti.
Requisiti della pipeline
- L'argomento o la sottoscrizione Pub/Sub deve esistere prima dell'esecuzione.
- I messaggi pubblicati nell'argomento devono essere in formato testo.
- I messaggi pubblicati nell'argomento non devono contenere caratteri di fine riga. Tieni presente che ogni messaggio Pub/Sub viene salvato come singola riga nel file di output.
Parametri del modello
Parametri obbligatori
- outputDirectory: il percorso e il prefisso del nome file in cui scrivere i file di output. Questo valore deve terminare con una barra. Ad esempio,
gs://your-bucket/your-path/.
Parametri facoltativi
- inputTopic: l'argomento Pub/Sub dal quale leggere l'input. Se questo parametro viene fornito, non utilizzare
inputSubscription. Ad esempio,projects/<PROJECT_ID>/topics/<TOPIC_NAME>. - inputSubscription: la sottoscrizione Pub/Sub dalla quale leggere l'input. Se questo parametro viene fornito, non utilizzare
inputTopic. Ad esempio,projects/<PROJECT_ID>/subscription/<SUBSCRIPTION_NAME>. - userTempLocation: la directory fornita dall'utente in cui generare i file temporanei. Deve terminare con una barra.
- outputFilenamePrefix: il prefisso da inserire in ogni file con finestra. Ad esempio,
output-. Il valore predefinito è: output. - outputFilenameSuffix: il suffisso da inserire in ogni file con finestra, in genere un'estensione di file come
.txto.csv. Ad esempio,.txt. Il valore predefinito è vuoto. - outputShardTemplate: il modello di shard definisce la parte dinamica di ogni file con finestra. Per impostazione predefinita, la pipeline utilizza un singolo shard per l'output nel file system all'interno di ogni finestra. Ciò significa che tutti i dati vengono generati in un singolo file per finestra. Il valore predefinito di
outputShardTemplateèW-P-SS-of-NN, doveWè l'intervallo di date della finestra,Psono le informazioni sul riquadro,Sè il numero di shard eNè il numero di shard. Nel caso di un singolo file, la parteSS-of-NNdioutputShardTemplateè00-of-01. - numShards: il numero massimo di shard di output prodotti durante la scrittura. Un numero maggiore di shard significa una velocità effettiva più elevata per la scrittura in Cloud Storage, ma potenzialmente un costo di aggregazione dei dati più elevato tra gli shard durante l'elaborazione dei file di output di Cloud Storage. Il valore predefinito è: 0.
- windowDuration: la durata della finestra è l'intervallo in cui i dati vengono scritti nella directory di output. Configura la durata in base alla velocità effettiva della pipeline. Ad esempio, una velocità effettiva più elevata potrebbe richiedere dimensioni delle finestre più piccole in modo che i dati rientrino nella memoria. Il valore predefinito è
5m(5 minuti), con un minimo di1s(1 secondo). I formati consentiti sono:[int]s(per i secondi, ad esempio5s),[int]m(per i minuti, ad esempio12m),[int]h(per le ore, ad esempio2h). Ad esempio,5m. - yearPattern: modello per la formattazione dell'anno. Deve essere uno o più di
yoY. La distinzione tra maiuscole e minuscole non fa differenza nell'anno. Il modello può essere racchiuso facoltativamente da caratteri che non sono alfanumerici o il carattere di directory (/). Il valore predefinito èYYYY. - monthPattern: modello per la formattazione del mese. Deve essere uno o più caratteri
M. Il modello può essere racchiuso facoltativamente da caratteri che non sono alfanumerici o il carattere di directory (/). Il valore predefinito èMM. - dayPattern: modello per la formattazione del giorno. Deve essere uno o più di
dper il giorno del mese oDper il giorno dell'anno. La distinzione tra maiuscole e minuscole non fa differenza nell'anno. Il modello può essere racchiuso facoltativamente da caratteri che non sono alfanumerici o il carattere di directory (/). Il valore predefinito èdd. - hourPattern: modello per la formattazione dell'ora. Deve essere uno o più caratteri
H. Il modello può essere racchiuso facoltativamente da caratteri che non sono alfanumerici o il carattere di directory (/). Il valore predefinito èHH. - minutePattern: modello per la formattazione del minuto. Deve essere uno o più caratteri
m. Il modello può essere racchiuso facoltativamente da caratteri che non sono alfanumerici o 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 job univoco.
- (Facoltativo) Per Endpoint regionale, seleziona un valore dal menu a discesa. La regione predefinita è
us-central1.Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta Località di Dataflow.
- Dal menu a discesa Modello Dataflow, seleziona il modello Argomento o sottoscrizione Pub/Sub a file di testo su Cloud Storage.
- Inserisci i valori dei parametri nei campi dei parametri forniti.
- Fai clic su Esegui job.
gcloud
Esegui il modello nella shell o nel terminale:
gcloud dataflow flex-template run JOB_NAME \ --project=YOUR_PROJECT_ID \ --region REGION_NAME \ --template-file-gcs-location gs://dataflow-templates-REGION_NAME/VERSION/flex/ \ --parameters \ inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME,\ outputDirectory=gs://BUCKET_NAME/output/,\ outputFilenamePrefix=output-,\ outputFilenameSuffix=.txt
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-central1VERSION: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latestper utilizzare la versione più recente del modello, disponibile nella cartella principale non datata nel bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella principale datata nel bucket: gs://dataflow-templates-REGION_NAME/
SUBSCRIPTION_NAME: il nome della sottoscrizione Pub/SubBUCKET_NAME: il nome del bucket Cloud Storage
API
Per eseguire il modello utilizzando l'API REST, invia una richiesta HTTP POST. Per saperne di più sull'
API e sui relativi ambiti di autorizzazione, consulta
projects.templates.launch.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputSubscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME" "outputDirectory": "gs://BUCKET_NAME/output/", "outputFilenamePrefix": "output-", "outputFilenameSuffix": ".txt", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/", } }
Sostituisci quanto segue:
PROJECT_ID: l'ID progetto in cui vuoi eseguire il job Dataflow Google CloudJOB_NAME: un nome job univoco a tua sceltaLOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1VERSION: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latestper utilizzare la versione più recente del modello, disponibile nella cartella principale non datata nel bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella principale datata nel bucket: gs://dataflow-templates-REGION_NAME/
SUBSCRIPTION_NAME: il nome della sottoscrizione Pub/SubBUCKET_NAME: il nome del bucket Cloud Storage
Passaggi successivi
- Scopri di più sui modelli Dataflow.
- Consulta l'elenco dei modelli forniti da Google.