Tags: , , ,

In principio fu il file di testo, il nostro caro .txt che conteneva tutte le informazioni necessarie divise riga per riga. Poi ci si rese conto che era fondamentale fornire delle informazioni più strutturate e allora nacquero i database relazionali in grado di legare dati omogenei in maniera efficiente per poterli estrarre e consultare.

Con il passare del tempo, il proliferare dei formati ha permesso di trovarne sempre più specifici e sempre più mirati per determinati scopi ma ha anche creato un grosso problema di integrazione. Al giorno d’oggi bisogna fare i conti almeno con i seguenti formati:

  • XML
  • Excel
  • CSV
  • Flat file
  • Tutti i possibili database presenti sul mercato

Messa così sembra una situazione disperata, in realtà esiste una famiglia di prodotti pensata per risolvere questa problematica, sono gli Integration Server o per semplicità gli ETL (Extract, Transform & Load).

Lo scopo di questi software è di permettere di estrarre i dati da un formato generico in input, applicarne delle trasformazioni (siano esse manipolazioni del dato in ingresso o filtri su di esso) ed infine salvare il risulato in uno specifico formato in output.

In questa prima scorribanda nel mondo degli ETL, ci occuperemo di un prodotto Open Source della Talend, Open Studio.
Il software è disponibile per Windows e per Linux, sia sotto forma di codice sorgente che di binari precompilati e la sua installazione è molto semplice non richiedendo nessuna interazione con l’utente.



Una volta lanciato l’applicativo, ci si accorge che è basato su Eclipse e quindi per chi conosce il famoso IDE Java è un po’ come sentirsi a casa e risulterà più semplice l’utilizzo della GUI.

Esempio di job

Per realizzare un progetto con Open Studio, va creato un job, cioè previsto un file/formato sorgente, una o più operazioni di trasformazione ed un file/formato di destinazione.

La GUI ci mette a disposizione due modalità operative, una grafica basata sul drag & drop degli elementi, ed una testuale che risulta utile qualora si vogliano apportare delle modifiche in punti ben precisi della trasformazione. Qui emerge un aspetto spigoloso di questo software in quanto il back end risulta scritto in Perl.

La scelta è comprensibile in quanto questo linguaggio ha un’ottima gestione delle espressioni regolari, si presta particolarmente alle manipolazioni testuali ed ha un ampio supporto per i più diffusi RDBMS ma vi obbliga ad imparare questo linguaggio se volete effettuare delle customizzazioni dei processi.

Per questo motivo la versione 2.o di Open Studio, ha introdotto anche il supporto a Java, allargando in maniera significativa la base di utenti in grado di apportare modifiche al codice dei progetti. Il supporto a Java è sicuramente stabile ma ancora non copre tutti i componenti, quindi è molto probabile che per qualche trasformazione particolare dobbiate utilizzare la controparte in Perl.

Fatta questa precisazione, va notato però che per i casi d’uso più frequenti non vi è la necessità di ricorrere al codice in quanto i componenti visuali svolgono perfettamente il loro compito.

Vediamo ora un utilizzo tipico di questo prodotto:

  1. File Excel in input
  2. Applichiamo una trasformazione al contenuto di una colonna (in questo caso raddoppiamo il valore presente)
  3. Nuovo file Excel in output

Definiamo un nuovo job, dalla palette degli oggetti selezionamo 3 componenti:

  1. tFileInputExcel
  2. tMap
  3. tFileOutputExcel

Cliccando su ognuno degli oggetti possiamo definirne le proprietà come il nome del file, lo schema a cui fanno riferimento e nel caso del componente tMap la trasformazione che vogliamo apportare. Una volta posizionati i componenti li colleghiamo logicamente, dal primo al terzo in sequenza, cliccando con il pulsante destro e impostando il tipo di legame.

Le proprietà del componente tMap ci permettono di editare sempre in modalità visuale la trasformazione da apportare ai nostri dati.

Impostazione componente tMap

E’ possibile definire più file in uscita, per esempio un file che contiene valori che soddisfano un certo insieme di criteri e un file che contiene tutti i valori scartati.

Uno strumento fondamentale è il debugger integrato che permette di monitorare passo passo tutto il nostro job, utilizzando tutti gli ausilii tipici di un IDE di programmazione come watch expression, local variables ecc.

Poichè questo genere di tool è utilizzato per automatizzare operazioni ricorrenti di conversione (pensiamo ad esempio alla ricezione giornaliera di un feed XML per il suo inserimento in un database) non poteva mancare lo scheduler.

La pianificazione di un job, avviene tramite la creazione di un cronjob che viene aggiunto al file di cron per la sua esecuzione, in questo modo avrete il supporto nativo negli ambienti Linux, mentre per Windows dovrete installare il rispettivo pacchetto software.

NB: durante l’esecuzione di qualche job, potreste ricevere qualche errore dell’interprete PERL per la mancanza di qualche libreria, basterà annotare il nome del pacchetto mancante e poi lanciare PPM per scaricarlo e installarlo

Come nostra consuetudine concludiamo l’articolo con la segnalazione di alcuni libri che permettono di approfondire alcuni temi che abbiamo trattato:

…and now you are a bit more conscious!