1. Introduzione
Google Cloud Dataflow
Ultimo aggiornamento: 26 maggio 2020
Cos'è Dataflow?
Dataflow è un servizio gestito per l'esecuzione di un'ampia varietà di pattern di elaborazione dati. La documentazione su questo sito mostra come eseguire il deployment delle pipeline di elaborazione dei dati in modalità flusso e batch utilizzando Dataflow, comprese le indicazioni per l'utilizzo delle funzionalità dei servizi.
L'SDK Apache Beam è un modello di programmazione open source che consente di sviluppare pipeline sia in batch che in flussi. Crei le tue pipeline con un programma Apache Beam e quindi le esegui sul servizio Dataflow. La documentazione di Apache Beam fornisce informazioni concettuali approfondite e materiale di riferimento per il modello di programmazione Apache Beam, gli SDK e altri runner.
Analisi dei flussi di dati ad alta velocità
Dataflow consente uno sviluppo rapido e semplificato di pipeline di dati in modalità flusso con una latenza dei dati inferiore.
Semplifica operazioni e gestione
Consenti ai team di concentrarsi sulla programmazione anziché sulla gestione dei cluster di server, poiché l'approccio serverless di Dataflow elimina l'overhead operativo dai carichi di lavoro di data engineering.
Ridurre il costo totale di proprietà
Grazie alla scalabilità automatica delle risorse e all'ottimizzazione dei costi per l'elaborazione batch, Dataflow offre una capacità praticamente illimitata per gestire i carichi di lavoro stagionali e picchi senza spendere troppo.
Funzionalità principali
Gestione automatizzata delle risorse e ribilanciamento dinamico del lavoro
Dataflow automatizza il provisioning e la gestione delle risorse di elaborazione per ridurre al minimo la latenza e massimizzare l'utilizzo, in modo da non dover avviare o prenotare le istanze manualmente. Anche il partizionamento del lavoro è automatizzato e ottimizzato per ribilanciare dinamicamente il lavoro in sospeso. Non è necessario andare alla ricerca di "tasti di scelta rapida" o pre-elaborare i dati di input.
Scalabilità automatica orizzontale
La scalabilità automatica orizzontale delle risorse worker per ottimizzare la velocità effettiva si traduce in un migliore rapporto prezzo-prestazioni complessivo.
Prezzi flessibili di pianificazione delle risorse per l'elaborazione batch
Per un'elaborazione flessibile nei tempi di pianificazione dei job, come i job notturni, la pianificazione flessibile delle risorse (FlexRS) offre un prezzo inferiore per l'elaborazione batch. Questi job flessibili vengono inseriti in una coda con la garanzia che verranno recuperati per l'esecuzione entro un lasso di tempo di sei ore.
Che cosa eseguirai in questa fase
In questo codelab, inizierai a utilizzare Dataflow SQL inviando un'istruzione SQL tramite l'interfaccia utente SQL di Dataflow. Esplorerai quindi la pipeline in esecuzione utilizzando l'interfaccia utente di monitoraggio di Dataflow.
Cosa imparerai a fare
- Come inviare un'istruzione SQL come job Dataflow nell'interfaccia utente di Dataflow SQL.
- Come accedere alla pipeline Dataflow.
- Esplorare il grafico Dataflow creato dall'istruzione SQL.
- Esplorare le informazioni di monitoraggio fornite dal grafico.
Che cosa ti serve
- Un progetto Google Cloud con la fatturazione abilitata.
- Google Cloud Dataflow e Google Cloud PubSub abilitati.
2. Preparazione
Assicurati che l'API Dataflow e l'API Cloud Pub/Sub siano abilitate. Puoi verificarlo controllando le API e Servizi.
3. Accesso all'interfaccia utente SQL di Dataflow
L'interfaccia utente di Dataflow SQL è un'impostazione della UI web di BigQuery per la creazione di job SQL Dataflow. Puoi accedere all'interfaccia utente di Dataflow SQL dalla UI web di BigQuery.
- Vai alla UI web di BigQuery.
- Passa al motore Cloud Dataflow.
- Fai clic sul menu a discesa Altro e seleziona Impostazioni query.
- Nel menu Impostazioni query, seleziona Motore Dataflow.
- Nel prompt visualizzato se le API Dataflow e Data Catalog non sono abilitate, fai clic su Abilita API.
- Fai clic su Save (Salva).
Puoi anche accedere all'interfaccia utente di Dataflow SQL dall'interfaccia di monitoraggio di Dataflow.
- Vai all'interfaccia di monitoraggio di Dataflow.
- Fai clic su Crea job da SQL.
4. Esecuzione di un job Dataflow con una query SQL
Scrittura di query SQL Dataflow
Le query SQL di Dataflow utilizzano la sintassi delle query SQL di Dataflow. La sintassi delle query SQL di Dataflow è simile a quella SQL standard di BigQuery. Puoi utilizzare le estensioni di flusso di Dataflow per SQL per aggregare i dati provenienti da origini Dataflow in aggiornamento continuo, come Pub/Sub. Ad esempio, la seguente query conteggia i passeggeri in un flusso Pub/Sub di corse in taxi ogni minuto:
SELECT
TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
ride_status = "pickup"
GROUP BY
TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
Esecuzione delle query SQL di Dataflow
Quando esegui una query SQL di Dataflow, Dataflow trasforma la query in una pipeline Apache Beam ed esegue la pipeline.
Puoi eseguire una query SQL di Dataflow utilizzando la console Cloud o lo strumento a riga di comando gcloud.
Per eseguire una query SQL di Dataflow, utilizza l'interfaccia utente di Dataflow SQL.
- Vai all'interfaccia utente SQL di Dataflow.
- Inserisci la query SQL di Dataflow nell'editor di query qui sopra.
- Fai clic su Crea job Cloud Dataflow per aprire un riquadro di opzioni del job.
- (Facoltativo) Fai clic su Mostra parametri facoltativi e sfoglia l'elenco.
- Nella sezione Destinazione del riquadro, seleziona BigQuery come tipo di output.
- Seleziona un ID set di dati e crea il nome "passengers_per_min" per la tabella
- Fai clic su Crea.
Per ulteriori informazioni su come eseguire query sui dati e scrivere i risultati delle query SQL di Dataflow, consulta Utilizzare Dataflow SQL.
5. Esplorazione del job nell'interfaccia utente di monitoraggio di Dataflow
Quando esegui la pipeline utilizzando il servizio gestito Dataflow, puoi visualizzare quel job e qualsiasi altro utilizzando l'interfaccia utente di monitoraggio basata sul web di Dataflow. L'interfaccia di monitoraggio ti consente di visualizzare e interagire con i tuoi job Dataflow.
Puoi accedere all'interfaccia di monitoraggio di Dataflow utilizzando la console Google Cloud. L'interfaccia di monitoraggio può mostrare:
- Un elenco di tutti i job Dataflow attualmente in esecuzione e quelli eseguiti in precedenza negli ultimi 30 giorni.
- Una rappresentazione grafica di ciascuna pipeline.
- Dettagli su stato, esecuzione e versione dell'SDK del job.
- Link a informazioni sui servizi Google Cloud che eseguono la tua pipeline, come Compute Engine e Cloud Storage.
- Eventuali errori o avvisi che si verificano durante un job.
Puoi visualizzare i grafici sul monitoraggio dei job nell'interfaccia di monitoraggio di Dataflow. Questi grafici mostrano le metriche per la durata di un job della pipeline e includono le seguenti informazioni:
- Visibilità a livello di passaggio per aiutare a identificare i passaggi che potrebbero causare il ritardo della pipeline.
- Informazioni statistiche che possono far emergere comportamenti anomali.
- Metriche I/O che possono aiutare a identificare i colli di bottiglia nelle origini e nei sink.
Accesso all'interfaccia di monitoraggio di Dataflow
Per accedere all'interfaccia di monitoraggio di Dataflow, segui questi passaggi:
- Vai alla console Cloud:
- Selezionare il tuo progetto Google Cloud.
- Fai clic sul menu nell'angolo in alto a sinistra.
- Vai alla sezione Big data e fai clic su Dataflow.
Viene visualizzato un elenco di job Dataflow insieme al relativo stato.
Un elenco di job Dataflow nella console Cloud con job in stato In esecuzione, Non riuscito e Riuscito.
Un job può avere i seguenti stati:
- —: l'interfaccia utente di monitoraggio non ha ancora ricevuto uno stato dal servizio Dataflow.
- In esecuzione: il job è attualmente in esecuzione.
- Non avviato: il job è stato creato, ma il sistema ha bisogno di un po' di tempo per prepararsi prima del lancio.
- In coda: un job FlexRS è in coda.
- Annullamento...: il job è in fase di annullamento.
- Annullato: il processo che è stato annullato dall'utente.
- Svuotamento in corso...: il job è in fase di svuotamento.
- Svuotato: l'utente ha svuotato il job.
- Aggiornamento in corso...: il job è in fase di aggiornamento.
- Aggiornato: l'utente ha aggiornato il job.
- Riuscito: il job è stato completato correttamente.
- Non riuscito: il completamento del job non è riuscito.
Cerca il job con "dfsql" della qualifica e fai clic sul suo nome.
La pagina Dettagli job, che contiene quanto segue:
- Grafico del job: la rappresentazione visiva della pipeline
- Metriche del job: metriche relative all'esecuzione del job
- Riquadro informazioni job: informazioni descrittive sulla pipeline
- Log dei job: log generati dal servizio Dataflow a livello di job.
- Log dei worker: log generati dal servizio Dataflow a livello di worker
- Report sugli errori relativi ai job: grafici che mostrano dove si sono verificati gli errori lungo la sequenza temporale scelta e un conteggio di tutti gli errori registrati
- Selettore di tempo: strumento che consente di modificare il periodo di tempo delle metriche.
Nella pagina Dettagli job, puoi cambiare la visualizzazione del job con il grafico e la scheda Metriche del job.
- Fai clic sulla scheda METRICHE DEL JOB ed esplora i grafici
6. Arresto del job SQL di Dataflow
Per arrestare i job SQL di Dataflow, utilizza il comando Annulla. L'arresto di un job SQL Dataflow con Drain non è supportato.