Il modello di testo Argomento Pub/Sub o Sottoscrizione a Cloud Storage è una pipeline di inserimento flussi che legge i record da Pub/Sub e li salva come 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. (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 viene fornito questo parametro, non utilizzareinputSubscription
. (ad es. projects/your-project-id/topics/your-topic-name). - inputSubscription : la sottoscrizione Pub/Sub da cui leggere l'input. Il nome dell'abbonamento utilizza il formato
projects/<PROJECT_ID>/subscription/<SUBSCRIPTION_NAME>
. Se viene fornito questo parametro, non utilizzareinputTopic
. (ad esempio projects/your-project-id/subscriptions/your-subscription-name). - userTempLocation : la directory fornita dall'utente in cui verranno visualizzati i file temporanei. Deve terminare con una barra.
- outputFilenamePrefix : il prefisso da inserire in ogni file a finestra. (esempio: output-). Valore predefinito: output.
- outputFilenameSuffix : il suffisso da inserire in ogni file a finestra, in genere un'estensione di file come
.txt
o.csv
. (ad es. .txt). Il valore 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 nel file system all'interno di ogni finestra. Ciò significa che tutti i dati vengono visualizzati in un unico file per finestra. Il valore predefinito di
outputShardTemplate
èW-P-SS-of-NN
, doveW
è l'intervallo di date della finestra,P
sono 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 maggiore di shard comporta una maggiore velocità effettiva per la scrittura in Cloud Storage, ma un costo potenzialmente più elevato per l'aggregazione dei dati 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 al throughput della pipeline. Ad esempio, un throughput più elevato potrebbe richiedere dimensioni delle finestre più piccole in modo che i dati possano essere memorizzati nella memoria. Il valore predefinito è 5 minuti, con un minimo di 1 secondo. I formati consentiti sono: [int]s (per secondi, ad esempio 5s), [int]m (per minuti, ad esempio 12m), [int]h (per ore, ad esempio 2h). (ad es. 5 m).
- yearPattern : pattern per la formattazione dell'anno. Deve essere uno o più di "y" o "Y". La richiesta non fa differenza nell'anno. Il pattern può essere opzionalmente racchiuso tra caratteri non alfanumerici o tra il carattere della directory ("/"). Il valore predefinito è "AAAA".
- monthPattern : pattern per la formattazione del mese. Deve essere costituito da uno o più caratteri "M". Il pattern può essere opzionalmente racchiuso tra caratteri non alfanumerici o dal carattere della directory ("/"). Il valore predefinito è "MM".
- dayPattern : pattern 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 richiesta non fa differenza nell'anno. Il pattern può essere opzionalmente racchiuso tra caratteri non alfanumerici o tra il carattere della directory ("/"). Il valore predefinito è "dd".
- hourPattern : pattern per la formattazione dell'ora. Deve essere costituito da uno o più caratteri "H". Il pattern può essere opzionalmente racchiuso tra caratteri non alfanumerici o dal carattere della directory ("/"). Il valore predefinito è "HH".
- minutePattern : pattern per la formattazione del minuto. Deve essere costituito da uno o più caratteri "m". Il pattern può essere opzionalmente racchiuso tra 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. La regione predefinita è
us-central1
.Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta Località di Dataflow.
- Nel menu a discesa Modello di flusso di dati, seleziona the Pub/Sub Topic or Subscription to Text 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 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 di 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 principale senza data del 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 POST HTTP. Per ulteriori informazioni 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/Cloud_PubSub_to_GCS_Text_Flex", } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google Cloud in cui vuoi eseguire il job DataflowJOB_NAME
: un nome di 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 principale senza data del 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.