Il modello di testo per argomento o sottoscrizione Pub/Sub a Cloud Storage è un una pipeline di flusso che legge i record da Pub/Sub e li salva come una serie File di Cloud Storage in formato testo. Il modello può essere utilizzato come metodo rapido per salvare i dati 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 Il 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 da cui leggere l'input. Il nome dell'argomento deve essere nel formato
projects/<PROJECT_ID>/topics/<TOPIC_NAME>
. Se questo parametro viene fornito, non usareinputSubscription
. ad esempio projects/your-project-id/topics/your-topic-name. - inputSubscription : la sottoscrizione Pub/Sub da cui leggere l'input. Il nome della sottoscrizione utilizza il formato
projects/<PROJECT_ID>/subscription/<SUBSCRIPTION_NAME>
. Se questo parametro viene fornito, non usareinputTopic
. ad esempio projects/your-project-id/subscriptions/your-subscription-name). - userTempLocation : la directory fornita dall'utente in cui estrarre i file temporanei. Deve terminare con una barra.
- outputFilenamePrefix : il prefisso da inserire in ogni file nella finestra. (Esempio: output-). Il valore predefinito è: output.
- outputFilenameSuffix : il suffisso da inserire in ciascun file con finestra, in genere un'estensione del file come
.txt
o.csv
. (Esempio: .txt). Il campo predefinito è vuoto. - outputShardTemplate : il modello di shard definisce la parte dinamica di ogni file con finestre. Per impostazione predefinita, la pipeline utilizza un singolo shard per l'output al file system all'interno di ogni finestra. Ciò significa che tutti i dati vengono inseriti in un unico file per finestra. Il valore predefinito di
outputShardTemplate
èW-P-SS-of-NN
, doveW
è l'intervallo di date della finestra,P
è le informazioni del riquadro,S
è il numero di shard eN
è il numero di shard. In caso di un singolo file, la parteSS-of-NN
dioutputShardTemplate
è00-of-01
. - numShards : il numero massimo di shard di output prodotti durante la scrittura. Un numero più elevato di shard significa una maggiore velocità effettiva per la scrittura in Cloud Storage, ma un costo di aggregazione dei dati potenzialmente maggiore negli shard durante l'elaborazione dei file Cloud Storage di output. 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 finestre di dimensioni inferiori affinché i dati rientrino in memoria. Il valore predefinito è 5 m (5 minuti), con un minimo di 1 s (1 secondo). I formati consentiti sono: [int]s (per i secondi, ad esempio 5s), [int]m (per i minuti, ad esempio 12m), [int]h (per le ore, ad esempio 2h). (Esempio: 5 m).
- yearPattern : schema per la formattazione dell'anno. Deve essere uno o più di "y" o "Y". La custodia non fa alcuna differenza durante l'anno. Facoltativamente, il pattern può essere aggregato in caratteri che non sono alfanumerici o il carattere della directory ("/"). Il valore predefinito è "AAAA".
- monthPattern : la sequenza per la formattazione del mese. Deve essere una o più delle "M" . Facoltativamente, il pattern può essere aggregato da caratteri non alfanumerici o dal carattere della directory ("/"). Il valore predefinito è "MM".
- dayPattern : sequenza per la formattazione del giorno. Deve essere uno o più di "d" per il giorno del mese o "D" per il giorno dell'anno. La custodia non fa alcuna differenza durante l'anno. Facoltativamente, il pattern può essere aggregato in caratteri che non sono alfanumerici o il carattere della directory ("/"). Il valore predefinito è "dd".
- hourPattern : sequenza per formattare l'ora. Deve corrispondere a uno o più valori "H" . Facoltativamente, il pattern può essere aggregato da caratteri non alfanumerici o dal carattere della directory ("/"). Il valore predefinito è "HH".
- minutePattern : sequenza per la formattazione dei minuti. Deve essere una o più delle "m" . Facoltativamente, il pattern può essere aggregato da caratteri non alfanumerici o dal carattere della 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. Il valore predefinito
è
us-central1
.Per un elenco di regioni in cui è possibile eseguire un job Dataflow, consulta Località di Dataflow.
- Dal menu a discesa Modello Dataflow, seleziona the Pub/Sub Topic or Subscription to Text Files on Cloud Storage template.
- Inserisci i valori parametro negli appositi campi.
- Fai clic su Esegui job.
gcloud
Nella shell o nel terminale, esegui il modello:
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/Cloud_PubSub_to_GCS_Text_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 di tua sceltaREGION_NAME
: la regione in cui vuoi di 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 in cartella principale non-dated nel bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00
, per utilizzare una versione specifica , che puoi trovare nidificata nella rispettiva cartella principale con data del bucket: gs://dataflow-templates-REGION_NAME/
SUBSCRIPTION_NAME
: nome della sottoscrizione Pub/SubBUCKET_NAME
: il nome del tuo bucket Cloud Storage
API
Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni sul
API e i 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/Cloud_PubSub_to_GCS_Text_Flex", } }
Sostituisci quanto segue:
PROJECT_ID
: L'ID progetto Google Cloud in cui vuoi eseguire il job DataflowJOB_NAME
: un nome job univoco di tua sceltaLOCATION
: la regione in cui vuoi di 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 in cartella principale non-dated nel bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00
, per utilizzare una versione specifica , che puoi trovare nidificata nella rispettiva cartella principale con data del bucket: gs://dataflow-templates-REGION_NAME/
SUBSCRIPTION_NAME
: nome della sottoscrizione Pub/SubBUCKET_NAME
: il nome del tuo bucket Cloud Storage
Passaggi successivi
- Scopri di più sui modelli Dataflow.
- Consulta l'elenco dei modelli forniti da Google.