ETL for Dummies
Nella scorsa puntata abbiamo parlato di cos’è ETL e di come funziona: ma da dove cominciare?
In questo articolo vediamo alcuni strumenti utili che abbiamo a disposizione per la nostra cassetta degli attrezzi!
Da dove cominciare
Per un principiante è una buona idea iniziare a disegnare un processo ETL con un sistema ad interfaccia grafica, perché avere un riscontro visivo in tempo reale dei processi contribuisce ad acquisire una visione a elicottero e aiuta a non percepire più il dato come qualcosa di statico, ma come uno stream, un flusso che si muove da un punto a un altro.
Strumenti
Quali sono gli strumenti più utili per questo fine? Riportiamo alcuni esempi!
Oracle Warehouse Builder
OWB è uno strumento ETL prodotto da Oracle che offre un ambiente grafico per costruire, gestire e mantenere i processi di integrazione dei dati nei sistemi di business intelligence. L’uso principale di OWB è il consolidamento di fonti di dati eterogenee nel data warehousing e la migrazione dei dati dai sistemi legacy.
Inoltre, offre funzionalità per la modellazione di dati relazionali, dimensionali e metadati, la profilazione, la pulizia e il controllo.
Hitachi Vantara PDI
Già conosciuto come Kettle, PDI (alias Pentaho Data Integration) è un software che consente di gestire processi ETL con una modalità veramente semplice. Oltre ad essere attivamente mantenuto, viene rilasciato sia in CE che in EE (la cui differenza sta essenzialmente nel supporto alla clusterizzazione e poco altro) ed è basato su Java, il che lo rende cross-platform by design.
Consente la lettura e la scrittura, tramite i classici driver Java, a praticamente a tutte le tipologie di database esistenti, anche al limite dell’esotico e, se non dovesse essere abbastanza, lo sviluppatore veramente nerd può aggiungere un suo modulo per compensare eventuali mancanze.
Tip: PDI è il componente più usato della Suite Pentaho, un pacchetto di strumento completo per la gestione della BI aziendale.
Coding
Per quanto riguarda i linguaggi di programmazione con cui è più facile fare ETL, Python continua a essere l’opzione più scelta dagli utenti.
Ci sono tantissimi framework, librerie e risorse già pronte all’uso.
Questi strumenti diventano un valido aiuto quando si inizia a trattare con schemi complessi e massicce quantità di dati senza avere ancora tanta esperienza.
Chiunque sia bravo con Python avrà la tentazione di scrivere le proprie classi, ma sarebbe più un esercizio
intellettuale, visto che esistono centinaia di migliaia di righe già scritte dalla comunità per
aiutare a gestire i dati.
Chi non ha mai sentito parlare di petl, pandas, bonobo o mETL?
Inoltre, esistono delle vere e proprie Suite di gestione dati basate su Python, fra i più famosi Apache Airflow e Luigi.
Il primo è uno strumento di automazione del flusso di lavoro e può essere usato per disegnare processi, anche ETL.
Inizialmente creato da Airbnb e passato sotto Apache pochi anni dopo, utilizza tutte le caratteristiche di Python e questo lo rende versatile, accessibile e facile da usare.
Esempio di flusso di DAG in Airflow
Esempio di rappresentazione delle dipendenze in un DAG in Airflow
La natura open-source di Airflow rende più facile impostare e mantenere le pipeline di dati e le integrazioni.
Anche Luigi è uno strumento open-source, scritto in Python, che permette di costruire pipeline. Lo strumento è stato sviluppato da Spotify ed è utilizzato da una vasta gamma di aziende, tra cui Stripe e Red Hat.
Node-RED
Node-RED è uno strumento open-source basato su Javascript (Node.js) il cui scopo primario è la gestione dell’IoT tramite il paradigma dei flussi di dati e prevede un’interfaccia grafica accessibilie via HTTPs per l’architettura dei processi.
Inizialmente ideato per gestire code MQTT e dati in formato JSON, oggi può essere usato come strumenti ETL completo grazie ai numerosi connettori scritti dalla community.
Esempio di funzionamento di Node-RED
Risorse utili
- [https://theredcode.it/data-science/etl-e-dintorni](Articolo precedente)