Setup
Vediamo i passaggi per creare una pipeline Dataflow SQL davvero essenziale.
Per iniziare ci servono alcuni elementi:
- Un account utente con i permessi IAM appropriati
- Un dataset BigQuery in cui creare le tabelle
- Una tabella BigQuery in cui salvare i dati
- Un topic Google Cloud Pub/Sub per l'ingestione dei dati.
Creare un dataset:
Creare una tabella nel dataset:
Creare un topic Pub/Sub:
Ora che abbiamo tutto il necessario, passiamo al nuovo motore Dataflow SQL.
Per farlo, apriamo Query settings:
Selezioniamo Cloud Dataflow engine:
Osserviamo le nuove risorse a disposizione:
Per interrogare il topic Google Cloud Pub/Sub appena creato dobbiamo assegnargli uno schema. Crearne uno è piuttosto semplice: tre campi stringa più il timestamp in ingresso che Google Cloud Pub/Sub aggiunge di default.
Creare lo schema per il topic:
A questo punto possiamo creare un job Dataflow SQL.
Creazione del job
Scriviamo una semplice istruzione SQL che verrà eseguita come job Dataflow.
Clicchiamo su "Create Cloud Dataflow" job. Ora possiamo indicare alcune destinazioni di output: una funzionalità davvero utile, che ci consente di salvare i risultati al termine sfruttando appieno la potenza di un processo ETL.
Diamo un'occhiata al DAG Dataflow generato dall'SQL. Apriamo la cronologia dei job in BigQuery:
Cliccando sul Job ID si apre il DAG:
È un DAG molto lineare: applica un'unica trasformazione e poi scrive i dati in una tabella BigQuery tramite streaming insert. Semplice ma efficace, un Dataflow Job ideale.
Mettiamo alla prova la pipeline di streaming
Da qui possiamo testare la pipeline appena creata. Inviamo qualche dato JSON fittizio al nostro topic e vediamo come si comporta.
La pipeline dovrebbe leggere questi dati JSON e inserire nella nostra tabella test soltanto il campo JSON "a".
Fatto! Abbiamo filtrato i dati in arrivo da Google Cloud Pub/Sub portandoli in una tabella BigQuery senza mai uscire da BigQuery — il tutto scritto in SQL.
Questo mostra quanto sia facile configurare e fare il deploy di pipeline Dataflow con la sintassi Standard SQL. Qui ci siamo limitati a una query molto semplice, ma sono possibili anche query ben più complesse.
Pubblicato originariamente su https://fluxengine.ltd .