Che cosa è e come funziona il processo di ETL (Estrazione, Trasformazione, Caricamento)
Definito il disegno del data warehouse (DWH), deve essere realizzato l’ETL dei dati. Come specificato anche in letteratura, l’ETL è un processo che può essere suddiviso in sotto-processi, ovvero:
- Estrazione: è la prima fase di tale processo, grazie alla quale i dati vengo estratti da una sorgente o da differenti fonti. Esistono due tipologie di estrazione: statica, che viene effettuata quando il data warehouse deve essere popolato per la prima volta, a differenza dell’estrazione incrementale, usata per l’aggiornamento periodico del data warehouse, che cattura solamente i cambiamenti avvenuti dall’ultima estrazione;
- Trasformazione: in questa fase i dati vengono manipolati; tipici esempi di trasformazioni sono l’eliminazione dei valori nulli, che potrebbero portare a risultati errati durante le analisi, la concatenazione di valori, come il nome dell’utente con il suo cognome, oppure la gestione delle chiavi esterne, riguardante la loro generazione e il lookup;
- Caricamento: in questa fase i dati vengono caricati nel data warehouse. Esistono due differenti tipologie, ovvero si parla di caricamento in modalità batch, in cui i dati vengono integralmente riscritti sostituendo i precedenti, o in modalità incrementale periodica grazie alla quale si rilevano e inseriscono nel data warehouse solo i cambiamenti avvenuti a partire dall’ultimo caricamento.
Pentaho Data Integration
Per realizzare le fasi del processo di ETL la suite di Pentaho fornisce lo strumento denominato Pentaho Data Integration.
I concetti chiave di tale strumento sono due:
- Trasformazione: processo atomico che realizza una singola fase dell’etl. è composta da differenti step, ognuno dei quali è una singola operazione. Una caratteristica della trasformazione è che ogni step per essere attivato non necessita della terminazione dello step precedente; infatti si attiva non appena quest’ultimo inizia a produrre degli output. Il lavoro dei differenti step è quindi asincrono. I vari step sono collegati tra loro attraverso dei connettori denominati hop.
- Job: può essere costituito da una o più trasformazioni. Generalmente vengono utilizzati per identificare il flusso di lavoro, ovvero quale è l’ordine delle trasformazioni che devono essere eseguite in sequenza.
Pentaho Data Integration è formato da vari componenti, tra i quali Spoon, lo strumento grafico che permette di creare job e trasformazioni, producendo come output finale dei file XML. Prevede una serie di step predefiniti già presenti al suo interno, organizzati per categorie in base alle loro funzionalità, ma è possibile anche creare degli step personalizzati utilizzando il linguaggio Java, dando allo sviluppatore la possibilità di personalizzare job e trasformazioni.