Esegui il deployment delle pipeline Dataflow

Questo documento fornisce una panoramica del deployment della pipeline ed evidenzia alcune delle operazioni che puoi eseguire su una pipeline di cui hai eseguito il deployment.

Esegui la pipeline.

Dopo aver creato e testa della tua pipeline Apache Beam, esegui la pipeline. Puoi eseguire la pipeline in locale, esegui il test e il debug della tua pipeline Apache Beam o su Dataflow, uno strumento disponibile per l'esecuzione di pipeline Apache Beam.

Esegui in locale

Esegui la pipeline in locale.

Java

Il seguente codice di esempio, tratto dalla guida introduttiva, mostra come eseguire la pipeline WordCount in locale. Per scoprire di più, scopri come eseguire la pipeline Java localmente.

Nel terminale, esegui questo comando:

  mvn compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--output=counts"
  

Python

Il codice di esempio seguente, tratto dalla guida rapida, mostra come eseguire WordCount della pipeline in locale. Per scoprire di più, scopri come eseguire la pipeline Python localmente.

Nel terminale, esegui il seguente comando:

python -m apache_beam.examples.wordcount \ --output outputs

Vai

Il codice di esempio seguente, tratto dalla guida rapida, mostra come eseguire WordCount della pipeline in locale. Per saperne di più, scopri come eseguire la pipeline Go in locale.

Nel terminale, esegui questo comando:

    go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output outputs
  

Scopri come eseguire la pipeline localmente, sulla tua macchina, utilizzando il runner diretto.

Esegui su Dataflow

Eseguire la pipeline su Dataflow.

Java

Il codice di esempio seguente, tratto dalla guida rapida, mostra come eseguire WordCount su Dataflow. Per saperne di più, scopri come eseguire la pipeline Java su Dataflow.

Nel terminale, esegui questo comando (dalla directory word-count-beam):

  mvn -Pdataflow-runner compile exec:java \
    -Dexec.mainClass=org.apache.beam.examples.WordCount \
    -Dexec.args="--project=PROJECT_ID \
    --gcpTempLocation=gs://BUCKET_NAME/temp/ \
    --output=gs://BUCKET_NAME/output \
    --runner=DataflowRunner \
    --region=REGION"
    

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • BUCKET_NAME: il nome del tuo bucket Cloud Storage
  • REGION: una regione Dataflow, come us-central1

Python

Il codice di esempio seguente, tratto dalla guida rapida, mostra come eseguire WordCount su Dataflow. Per scoprire di più, scopri come eseguire la pipeline Python su Dataflow.

Nel terminale, esegui questo comando:

python -m apache_beam.examples.wordcount \
    --region DATAFLOW_REGION \
    --input gs://dataflow-samples/shakespeare/kinglear.txt \
    --output gs://STORAGE_BUCKET/results/outputs \
    --runner DataflowRunner \
    --project PROJECT_ID \
    --temp_location gs://STORAGE_BUCKET/tmp/

Sostituisci quanto segue:

  • DATAFLOW_REGION: il valore regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio europe-west1

    Il flag --region sostituisce la regione predefinita che è impostato nel server dei metadati, nel client locale o nell'ambiente come la codifica one-hot delle variabili categoriche.

  • STORAGE_BUCKET: il valore Nome Cloud Storage che hai copiato prima
  • PROJECT_ID: l'ID del progetto Google Cloud che hai copiato in precedenza

Vai

Il codice di esempio seguente, tratto dalla guida rapida, mostra come eseguire WordCount su Dataflow. Per scoprire di più, scopri come eseguire la pipeline Go su Dataflow.

Nel terminale, esegui questo comando:

  posix-terminal go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \
    --output gs://STORAGE_BUCKET/results/outputs \
    --runner dataflow \
    --project PROJECT_ID \
    --region DATAFLOW_REGION \
    --staging_location gs://STORAGE_BUCKET/binaries/
  

Sostituisci quanto segue:

  • STORAGE_BUCKET: il nome del bucket Cloud Storage.
  • PROJECT_ID: l'ID del progetto Google Cloud.
  • DATAFLOW_REGION: la regione in cui vuoi eseguire il deployment del job Dataflow. Ad esempio: europe-west1. Per un elenco delle località disponibili, vedi Località di Dataflow. Tieni presente che il flag --region sostituisce la regione predefinita impostata nei metadati del server, del client locale o delle variabili di ambiente.

Scopri come eseguire la tua pipeline sul servizio Dataflow, utilizzando il runner Dataflow.

Quando esegui la tua pipeline su Dataflow, Dataflow trasforma le tue il codice della pipeline Apache Beam in un job Dataflow. Dataflow gestisce completamente per te i servizi Google Cloud, come Compute Engine e Cloud Storage, per eseguire il job Dataflow e avvia e arresta automaticamente le risorse necessarie. Puoi scoprire di più su come Dataflow trasforma il tuo codice Apache Beam in un job Dataflow in Ciclo di vita della pipeline.

Convalida della pipeline

Quando esegui la pipeline su Dataflow, prima del lancio del job, Dataflow esegue test di convalida sulla pipeline. Quando un test di convalida rileva problemi con la pipeline, Dataflow non riesce a inviare il job in anticipo. Nella log dei job, Dataflow include messaggi con il testo seguente. Ogni messaggio include anche dettagli sui risultati della convalida e istruzioni per risolvere il problema.

The preflight pipeline validation failed for job JOB_ID.

I test di convalida eseguiti dipendono dalle risorse e dai servizi usi del job Dataflow.

  • Se l'API Service Usage sia abilitata per il tuo progetto, i test di convalida della pipeline controllano se i servizi necessari per eseguire il job Dataflow siano abilitati.
  • Se l'API Cloud Resource Manager sia abilitata per il tuo progetto, i test di convalida della pipeline controllano le configurazioni a livello di progetto necessarie per eseguire del job Dataflow.

Per ulteriori informazioni sull'abilitazione dei servizi, vedi Attivazione e disattivazione dei servizi.

Per informazioni su come risolvere i problemi di autorizzazione rilevati durante la convalida della pipeline, consulta Convalida della pipeline non riuscita.

Se vuoi eseguire l'override della convalida della pipeline e avviare il job con errori di convalida, usa la seguente pipeline service_option (opzione di servizio):

Java

--dataflowServiceOptions=enable_preflight_validation=false

Python

--dataflow_service_options=enable_preflight_validation=false

Vai

--dataflow_service_options=enable_preflight_validation=false

Imposta opzioni pipeline

Puoi controllare alcuni aspetti di come Dataflow esegue il tuo job impostando opzioni della pipeline nel tuo del codice della pipeline Apache Beam. Ad esempio, puoi utilizzare le opzioni della pipeline per stabilire se le tue viene eseguita su macchine virtuali worker, nel backend del servizio Dataflow o in locale.

Gestisci le dipendenze della pipeline

Molte pipeline Apache Beam possono essere eseguite utilizzando la classe Dataflow predefinita ambienti di runtime. Tuttavia, alcuni casi d'uso di elaborazione dei dati traggono vantaggio dall'utilizzo di librerie o classi aggiuntive. In questi casi, potrebbe essere necessario e gestire le dipendenze della pipeline. Per ulteriori informazioni sulla gestione , vedi le dipendenze Gestire le dipendenze della pipeline in Dataflow.

Monitora il tuo job

Dataflow offre visibilità sui job tramite strumenti come l'interfaccia di monitoraggio di Dataflow e l'interfaccia a riga di comando di Dataflow.

Accedi alle VM worker

Puoi visualizzare le istanze VM per una determinata pipeline utilizzando la console Google Cloud. Da qui, puoi utilizzare SSH per accedere a ogni istanza. Tuttavia, dopo che il job viene completato o non riesce, Dataflow arresta automaticamente ed esegue la pulizia delle istanze VM.

Ottimizzazioni delle offerte di lavoro

Oltre a gestire le risorse Google Cloud, Dataflow esegue esegue e ottimizza automaticamente molti aspetti dell'elaborazione parallela distribuita.

Parallelizzazione e distribuzione

Dataflow esegue automaticamente il partizionamento dei dati e distribuisce il codice worker ai di Compute Engine per l'elaborazione parallela. Per ulteriori informazioni, vedi parallelizzazione e distribuzione.

Combina e combina le ottimizzazioni

Dataflow usa il codice della pipeline per creare un grafico di esecuzione che rappresenta i PCollection e le trasformazioni della pipeline, e ottimizza il grafico per ottenere le prestazioni più efficienti e l'utilizzo delle risorse. Inoltre, Dataflow ottimizza automaticamente le operazioni potenzialmente costose, come i dati aggregazioni. Per ulteriori informazioni, consulta Ottimizzazione della fusione e Combina ottimizzazione.

Funzionalità di ottimizzazione automatica

Il servizio Dataflow include diverse funzionalità che forniscono un aggiustamento immediato dell'allocazione delle risorse e del partizionamento dei dati. Queste funzionalità aiutano Dataflow a eseguire il job nel modo più rapido ed efficiente possibile. Questi includono:

Streaming Engine

Per impostazione predefinita, l'esecutore della pipeline Dataflow esegue i passaggi della pipeline in modalità flusso esclusivamente su macchine virtuali worker, consumando CPU worker, memoria e spazio di archiviazione su Persistent Disk. Streaming Engine di Dataflow trasferisce l'esecuzione delle pipeline dalle VM worker a quelle il backend del servizio Dataflow. Per ulteriori informazioni, vedi Motore di flussi di dati.

Pianificazione flessibile delle risorse di Dataflow

Dataflow FlexRS riduce i costi di elaborazione batch utilizzando tecniche avanzate di pianificazione, Riproduzione casuale di Dataflow e una combinazione di servizi virtuali prerilasciabili, di Compute Engine (VM) e VM normali. Eseguendo in parallelo VM prerilasciabili e VM normali, Dataflow migliora l'esperienza utente se Compute Engine interrompe le istanze VM prerilasciabile durante un evento di sistema. FlexRS contribuisce a garantire che la pipeline continui a progredire e di non perdere i lavori precedenti Prerilascio di Compute Engine delle VM prerilasciabili. Per ulteriori informazioni su FlexRS, vedi L'uso della pianificazione delle risorse flessibile Dataflow.

VM schermata Dataflow

A partire dal 1° giugno 2022, il servizio Dataflow utilizza VM schermata per tutti i worker. Per scoprire di più sulle funzionalità delle Shielded VM, consulta Shielded VM.