SpagoBI Piattaforma Open-Source per il Business Intelligence Capitolo: D’Amato Angelo matricola : 0521/000698 1 Sommario Introduzione ......................................................................................................................................... 3 La Business Intelligence ................................................................................................................... 3 Componenti principali ...................................................................................................................... 6 ETL ................................................................................................................................................ 7 Database analitico ........................................................................................................................ 7 Analisi OLAP ................................................................................................................................. 8 Reportistica .................................................................................................................................. 8 Cruscotti e grafici ......................................................................................................................... 9 Portali web ................................................................................................................................... 9 Caso di Studio : SpagoBI ..................................................................................................................... 10 Architettura di SpagoBI .................................................................................................................. 11 La Suite ........................................................................................................................................... 13 Esempio uso SpagoBI ......................................................................................................................... 15 Installazione ................................................................................................................................... 16 Esempio di progetto da realizzare ................................................................................................. 18 Piattaforma SpagoBI ...................................................................................................................... 19 Registrazione sorgente dati del DataMart ................................................................................. 22 ETL per il caricamento dei dati ................................................................................................... 22 Analisi OLAP ............................................................................................................................... 26 Capitolo: Fonti ................................................................................................................................................... 36 2 Introduzione La Business Intelligence Se consideriamo la quasi totalità delle aziende che fanno uso di strumenti informatici troveremo almeno un database di supporto all'attività operativa. Più comunemente saranno presenti diversi database dedicati a funzioni specifiche come ad esempio alla fatturazione, al processo operativo, all'amministrazione, eccetera. Si tratta di database isolati l'uno dall'altro nel senso che lo scambio di dati è ridotto, la ridondanza delle informazioni elevata e i dati sono spesso disallineati. Poi ci possono essere informazioni provenienti da fonti esterne all'azienda, salvati su fogli di calcolo (Microsoft Excel, OpenOffice Calc, ecc) o più raramente provenienti da web services (SOAP). La struttura informatica si complica maggiormente se l'azienda è di grandi dimensioni con filiali sparse per il mondo, ognuna delle quali con differenze organizzative. Se i database operazionali sono adatti al loro campo specifico di utilizzo, nasce l'esigenza da parte dei manager aziendali di avere una visione sintetica e di insieme, pur potendo arrivare ad un certo grado di dettaglio. In pratica appaiono nuove problematiche di tipo tecnologico e nuove soluzioni legate al fatto che: Estendere i database preesistenti è il più delle volte proibitivo per i vincoli imposti dalle case produttrici e risulta di gran lunga più flessibile separare i database operazionali da un insieme di strumenti software con fini puramente analitici. Queste problematiche erano piuttosto rare nei primi elaboratori elettronici, ma con la diffusione dell'informatica nelle aziende e l'accumulo di dati grezzi si sono dimostrate interessanti, tanto da costituire una disciplina che prende il nome di Business Intelligence. Usando la terminologia della Business Intelligence, i punti a) e b) vengono risolti nella fase di ETL (Extraction Transfromation Loading) che si occupa del prelievo dei dati dalle sorgenti, la loro elaborazione e pulizia, nonché del caricamento e aggiornamento del database analitico. Capitolo: Introduzione a) i dati provengono solitamente da sorgenti eterogenee come database, documenti di testo, file XML b) questi dati vanno estratti e rielaborati per adattarli ad uno schema comune c) a parte l'aggiornamento del database, i dati raccolti sono acceduti in sola lettura e sono tipicamente molto numerosi d) i dati sono perlopiù di tipo storico, organizzati per argomento tematico e) gli utenti finali hanno bisogno di strumenti di analisi flessibili, semplici e sintetici, che consentano esplorazioni sui dati non completamente definite a priori 3 Il database di destinazione per la raccolta dei dati ha esigenze particolari rispetto ai comuni database relazionali, come si può vendere nei punti c) e d). Pur potendo riadattare allo scopo un classico RDBMS, si sono diffuse soluzioni specifiche per l'argomento che soddisfano il concetto di DataWarehouse. Più formalmente secondo la definizione di Bill Inmon un DataWarehouse è una collezione di dati in supporto al processo decisionale, dati che sono: orientati al soggetto, ossia l'utente finale nati dall'integrazione di fonti eterogenee dipendenti dal tempo non modificabili una volta inseriti Particolarmente adatto alla memorizzazione è il modello multidimensionale, il quale rappresenta i dati come punti nello spazio definito da dimensioni. Così è possibile calcolare una informazione di sintesi come il fatturato totale (fatto) a seconda di molteplici aspetti come il periodo, l'area geografica eccetera (dimensioni). Capitolo: Introduzione Fatti e dimensioni sono tra loro collegati a formare il cosiddetto cubo multidimensionale. 4 Molto particolare è la gestione del tempo nei DataWarehouse, dove per ogni record inserito sono associate le informazioni temporali di registrazione. Dati aggiornati possono essere aggiunti alla base dati senza modificare quelli precedenti, così da avere a disposizione durante le analisi tutte le informazioni storiche fedeli a qualunque intervallo temporale considerato. Uno schema multidimensionale può essere rappresentato da uno schema relazionale denormalizzato, dove i fatti sono raccolti in una tabella relazionata con le tabelle delle dimensioni seguendo uno schema a fiocco di neve o, più comunemente, a stella. Capitolo: Introduzione Ciò consente di immagazzinare cubi multidimensionali su comuni database relazionali sfruttando la diffusione e le capacità di archiviazione che li caratterizzano. Un modello alternativo a quello relazionale sfrutta le proprietà delle matrici sparse, più simili alla rappresentazione concettuale del cubo e con un miglioramento delle performance, a discapito di alcune caratteristiche come la capacità di archiviazione. Il modello multidimensionale viene impiegato nella tecnologia OLAP (Online Analytical Processing) che consente una esplorazione dei dati seguendo le esigenze di flessibilità e semplicità rilevate nel punto e). Se il cubo è realizzato da un modello relazionale si parlerà più precisamente di Relational-OLAP, mentre si parla di Multidimensional-OLAP quando si utilizza la tecnologia a matrice sparsa e Hybrid-OLAP con una combinazione delle due tecniche. L'analisi OLAP nasce come strumento per scoprire il comportamento generale dei fatti a seconda delle dimensioni, pur consentendo di andare nel dettaglio a isolare informazioni particolareggiate. Completano le esigenze di analisi della Business Intelligence strumenti quali cruscotti, grafici, report e, nei casi più avanzati, data mining. 5 Componenti principali Quando si desidera implementare un sistema di Business Intelligence nascono principalmente tre questioni da risolvere: Da dove raccoglierle queste informazioni come raccoglierle e infine come analizzarle Per rispondere alla prima domanda basta considerare qualsiasi sorgente dati presente dell'organizzazione. I database dei software gestionali, i web services su Internet come pure i log dei server sono ottimi candidati a fornire informazioni. La parte più interessante è rispondere alla domanda su come raccoglierli, trattandosi perlopiù di dati su formati e tecnologie eterogenee come ad esempio database relazionali, file XML oppure formati testo come i log dei server. Come si sarà fin qui intuito un ambiente di Business Intelligence viene implementato considerando vari aspetti tecnici (ETL, database analitici, reportistica, analisi OLAP, eccetera). Fortunatamente il panorama Open Source mette a disposizione componenti per realizzare sistemi di Business Intelligence in tutte le loro parti. Sia ben chiaro che integrare da soli vari software in una soluzione personalizzata è un compito assai arduo, per cui conviene affidarsi a una piattaforma di Business Intelligence che già preveda gli strumenti necessari. In questa tesina ci limiteremo a fare una panoramica generale non di certo esaustiva dei componenti Open Source disponibili. Capitolo: Introduzione A queste necessità provvede il processo ETL, sigla che tradotta in italiano diverrebbe estrazione, trasformazione e caricamento (Extraction, Transformation, Loading). Come illustrato nella figura seguente, si tratta di creare una procedura automatizzata che estragga i dati dalle sorgenti, esegua eventualmente delle elaborazioni intermedie come la pulizia dei dati e alla fine carichi il flusso in un nuovo database che chiameremo d'ora in poi database analitico. 6 ETL La fase di ETL, ossia l'alimentazione e l'aggiornamento del database analitico, costituisce di per sé la parte più delicata e caratteristica dell'intera disciplina. Sebbene possano essere usate procedure scritte in qualunque linguaggio di programmazione, nella pratica ci si affida a framework specifici. I vantaggi in termini di tempo e di robustezza dell'applicazione finale sono notevoli, per cui vale la pena di imparare a usarli. Senza spendere capitali per soluzioni commerciali ci si può affidare a prodotti Open Source come Pentaho Data Integration, Cover ETL o l'eccellente Talend Open Studio. Tutti offrono il supporto ai maggiori database relazionali e a fonti dati alternative come file di testo o XML. La particolarità di questi strumenti è che le procedure ETL vengono realizzate in ambienti visuali molto intuitivi. Come si vede nella seguente figura è sufficiente trascinare i componenti disponibili nel foglio di lavoro e collegarli in senso sequenziale di esecuzione per realizzare procedure di aggiornamento anche complesse. Database analitico Il database analitico, periodicamente aggiornato nella fase di ETL, viene il più delle volte realizzato con comuni database relazionali. Se non si hanno particolari esigenze si possono benissimo utilizzare database come MySQL o PostgreSQL, che tra l'altro prevedono delle estensioni per trattare i dati geografici. Se ben configurati la robustezza e le performance di questi database ben si adattano a carichi di lavoro anche rilevanti. Capitolo: Introduzione Per chi si accinge a provare uno degli ambienti sopra elencati rimarrà piacevolmente sorpreso delle prestazioni di elaborazione, che consentono di aggiornare grosse quantità di dati in pochi minuti o addirittura secondi. 7 Reportistica Per reportistica intenderemo i documenti che vengono prodotti da interrogazioni dei database per essere stampati o consultati su monitor, un po' come accade nelle pagine web di prima generazione. Li distingueremo dai cruscotti perché solitamente sono molto più sintetici e interattivi, anche se esistono report che praticamente funzionano come cruscotti. Fatta questa premessa è piacevole riscontrare che nell'Open Source ci sono strumenti ottimi per report di ogni complessità, competitivi anche con i software commerciali più rinomati. In particolare JasperReports è una libreria Java molto diffusa che grazie allo strumento di design iReport permette di creare reports in modo semplicissimo ed intuitivo . Capitolo: Introduzione Analisi OLAP Quando si parla di Business Intelligence spesso si sottintende la presenza dell'analisi OLAP. Come architettura la forma più semplice è la Relational-OLAP (ROLAP), che si basa su modelli relazionali di tabelle e consente di utilizzare i comuni database relazionali. Una tecnologia alternativa è la Multidimensional-OLAP (MOLAP) in cui i dati vengono rappresentati con strutture come matrici sparse che si avvicinano di più alla rappresentazione concettuale di un cubo. Senza dilungarci troppo, solitamente i sistemi MOLAP sono più performanti e sofisticati, ma soffrono di limitazioni quando la quantità di dati è notevole. Da un combinazione delle due tecnologie nascono i sistemi Hybrid-OLAP (HOLAP), poco diffusi nell'open source causa della loro complessità. Per quanto riguarda i sistemi di interrogazione dei server OLAP molte sono le alternative proposte, come il linguaggio MDX, XML for Analysis che di fatto si appoggia su MDX, oppure ancora JOLAP. Fortunatamente ci si sta indirizzando verso XML for Analysis come tecnologia di riferimento, per cui si potrebbe parlare di una specie di SQL per i server OLAP. Come applicazione software quella più diffusa è certamente Mondrian tanto che quasi tutte le piattaforme di Business Intelligence Open Source la implementano. Mondrian è una libreria Java che interpreta query inviate con una specifica come l'XML for Analysis e le traduce nelle rispettive interrogazioni SQL. In questo senso di parla di un sistema ROLAP perché le query di interrogazione vengono inviate direttamente ai database relazionali. Mondrian non fornisce un'interfaccia visuale e solitamente questo compito lo si affida a Jpivot, che permette l'esplorazione di cubi OLAP in pagine web . L'interfaccia di Jpivot è più funzionale che intuitiva, comunque dopo un primo periodo di ambientamento si potrà apprezzare la flessibilità di questo strumento. In alternativa è disponibile Free Analysis, una soluzione completa basata su Mondrian che lo estende con ulteriori funzionalità e implementa una propria interfaccia grafica web. Nella categoria MOLAP invece troviamo il prodotto Palo, un vero e proprio server OLAP che fa uso principalmente di Microsoft Excel per l'esplorazione dei dati tramite un apposito plugin. Per chi non volesse usare Microsoft Excel può fare uso di Palo Client o Palo Web Client, due interfacce intuitive per analisi OLAP, la prima basata su Eclipse e la seconda su web con AJAX. Oltre a supportare il server Palo questi due strumenti possono interfacciarsi ad altri sistemi compatibili con XML for Analysis, come ad esempio Microsoft Analysis Services, SAP BW o Mondrian. 8 I documenti possono essere esportati in vari formati come PDF, HTML, CSV, XML, Excel, RTF, TXT e perfino compilati per proteggerne il codice. Come sorgenti dati si può utilizzare qualunque database con supporto JDBC mentre per i calcoli più avanzati l'editor consente l'uso un linguaggio compatibile con Java, ossia Groovy. Paragonabile come funzionalità, capacità di esportazione e flessibilità è il progetto BIRT, lo strumento di reportistica ufficiale per l'IDE Eclipse. Come iReport anche BIRT dispone di un comodo editor visuale per la creazione dei report, che con BIRT sembra come creare una pagina web con tanto di fogli di stile CSS e JavaScript. Leggermente meno maturo ma sicuramente valido e promettente è JfreeReport, ora integrato nel progetto Pentaho Reporting per la piattaforma Pentaho. Portali web Qualcuno avrà notato che quasi tutti gli strumenti finora elencati sono scritti in linguaggio Java e sono quasi tutti eseguibili in portali web. La tecnologia web come pure Java sono gli ambienti più gettonati nella Business Intelligence Open Source, diventando una scelta di riferimento. Il successo è dovuto anche alla disponibilità di server web eccellenti e ampiamente diffusi come Apache Tomcat, Jetty, JOnAs, JBoss, GlassFish, eccetera. Chi poi è interessato a un ambiente multiutente e a portale può far uso delle apposite estensioni come JBoss Portal, Liferay, eXo Portal o, ancora, Stringbeans. In pochi passaggi sarà così possibile realizzare un sito aziendale personalizzato per singolo utente. Capitolo: Introduzione Cruscotti e grafici La realizzazione di cruscotti si può implementare con pagine interattive su cui si visualizzano grafici o tabelle sintetiche. Fra le librerie grafiche più note nel mondo Java c'è JFreeChart, con cui è possibile realizzare i grafici. Interessanti sono anche i framework basati su Adobe Flash come ad esempio OpenLazlo, Adobe Flex o XML/SWF Charts. Per chi volesse rimanere sulla tecnologia AJAX può prestare attenzione al giovane progetto FreeDashboards. 9 Caso di Studio : SpagoBI SpagoBI è il primo Java Enterprise Wide Framework1, progettato e realizzato in Italia nel 2004. E’ una soluzione completa e open-source per lo sviluppo di progetti di Business Intelligence in un ambiente integrato; sviluppata interamente in accordo alla filosofia FOSS (free and open source project), ed è stato questo il motivo determinante che mi ha portato a realizzare questa relazione proprio su questo framework, senza parlare del fatto che risulta ampliamente usata nell’amministrazione pubblica italiana, francese e da molte aziende. E’ un prodotto realizzato da Engineering Informatica Spa, ed è in grado di soddisfare l'intera gamma di esigenze analitiche, dall'analisi OLAP al reporting statico, dalle tecniche di data mining, dal controllo delle performance aziendali con cruscotti (dashboard) è in grado di monitorare gli indicatori significativi (KPI) in tempo reale o differito all’interrogazione libera dei dati tramite uno strumento visuale (QbE). Supporta inoltre i processi di estrazione, trasformazione e caricamento dei dati (ETL). SpagoBI offre anche diverse soluzioni per ogni area analitica, lasciando libero l'utente finale di scegliere la composizione della soluzione più adatta alle proprie esigenze, allo scopo di massimizzare il ritorno degli investimenti (ROI2) e di salvaguardare il patrimonio informativo aziendale. 1 • Rappresenta le regole del comportamento dell’utente finale in relazione alle proprie responsabilità di business • Fornisce una unica rappresentazione di ogni concetto analitico È un’infrastruttura software riutilizzabile che può essere specializzata nel produrre soluzioni applicative complete; non rende quindi disponibili delle funzionalità applicative ma un’architettura ed un insieme di servizi le cui caratteristiche tecnologiche ne facilitano la realizzazione. 2 ROI : un acronimo che indica l’indice di redditività del capitale investito. Capitolo: Caso di Studio : SpagoBI E’ basato su Behavioural model : 10 Architettura di SpagoBI SpagoBI presenta una struttura modulare; un nuovo progetto può richiedere il coinvolgimento di alcuni moduli soltanto, con la garanzia che eventuali estensioni saranno facilmente realizzabili dato che la piattaforma integra i vari moduli in una visione globale. Nella successiva figura è introdotta l'architettura di SpagoBI. SpagoBI eredita da Spago l'aderenza al pattern architetturale MVC. Ricordiamo che il pattern Model-View-Controller (MVC), si basa sulla linea guida generale che l' applicazione debba separare i componenti software che implementano il modello delle funzionalità di business (model), dai componenti che implementano la logica di presentazione (view) e di controllo che utilizzano tali funzionalità (controller). SpagoBI adatta l'architettura di Spago al contesto di interesse, definendo tre livelli logici sui quali µe strutturata l'intera piattaforma Il livello distribuzione, per la distribuzione dei modelli di informazione e analisi il livello analitico, per la trasformazione dei dati grezzi in informazioni significative il livello dati e metadati, per ricevere i dati e strutturarli per scopi analitici. Capitolo: Caso di Studio : SpagoBI Il livello di integrazione è legato alla interazione delle applicazioni con portali generici, che possono essere specifiche per la Business Intelligence o per l'intera azienda, e permette dunque la navigazione e l'utilizzo dei servizi offerti. Il livello delle applicazioni BI costituisce il nucleo analitico della piattaforma e gestisce la navigazione, attivazione e gestione dei parametri dei vari motori BI, che producono i documenti analitici a partire dai dati e metadati estratti dalle sorgenti. SpagoBI fornisce supporto per le funzionalità di amministrazione dell'intera piattaforma, sia degli utenti che degli oggetti. 11 SpagoBI Server, la piattaforma che comprende tutti gli strumenti analitici, la gestione della sicurezza e delle regole di visibilità, i tools di amministrazione SpagoBI Studio, l'ambiente di sviluppo integrato SpagoBI Meta, l'ambiente dei metadati SpagoBI SDK, il layer di integrazione per usare SpagoBI da applicazioni esterne SpagoBI Applications, che accoglie tutti i modelli analitici verticali sviluppati con SpagoBI. Capitolo: Caso di Studio : SpagoBI SpagoBI si articola nei seguenti moduli principali: 12 La Suite SpagoBI è l'unica suite interamente open source per lo sviluppo di progetti di Business Intelligence in un ambiente integrato ed estremamente flessibile. Copre tutte le aree analitiche tipiche della Business Intelligence, aggiungendo temi e soluzioni innovative. Capitolo: Caso di Studio : SpagoBI Sfrutta lo stack tecnologico FOSS BI 13 Capitolo: Caso di Studio : SpagoBI SpagoBI offre la più ampia copertura analitica completamente Open Source, con la seguente gamma di soluzioni: 14 Esempio uso SpagoBI SpagoBI è una piattaforma Open Source per la Business Intelligence italiana e completamente LGPL, senza versioni “professional” a pagamento. Capitolo: Esempio uso SpagoBI Gli sviluppatori hanno posto particolare attenzione all'aderenza agli standard e alla modularità dell'applicazione, tanto che le funzionalità di Business Intelligence sono integrabili tramite plugin. Chi volesse implementare nuovi strumenti analitici può creare un apposito plugin con le estensioni volute. Le funzionalità coprono praticamente tutte le comuni esigenze come il reporting, l'analisi OLAP e quella geografica, i cruscotti, gli alerts e anche il Data Mining. Lo sviluppo dei documenti, come molte delle altre piattaforme di Business Intelligence qui elencate, avviene utilizzando i rispettivi strumenti di sviluppo, per poi integrare i documenti all'interno della piattaforma. Anche lo strumento di ETL è a libera scelta dell'utente, SpagoBI fornisce il maggior supporto all'eccellente Talend Open Studio. 15 Installazione Requisiti per installare Spago BI o JDK: 1.5 o versioni maggiori o Sistema operativo: Sistemi che supportano JVM 1.5 come Windows o Linux o DBMS per I Metadata: MySQL, Postgres, Oracle, HSQL, Ingres, MS SQL Server o Application Server: J2EE come Tomcat, JBoss, WebSphere... Scaricare scriptbd e binary http://forge.ow2.org/project/showfiles.php?group_id=204 In questa relazione io ho installato : o Demo-SpagoBI-2.3.0-apache-tomcat-6.0.18-XXXX.zip Che comprende già le componenti: o SpagoBI-bin-2.3.0_XXX.zip : the core web application o SpagoBIBirtReportEngine-bin-2.3.0_XXX.zip : the BIRT Engine o SpagoBIGeoEngine-bin-2.3.0_XXX.zip : the GEO Engine o SpagoBIJasperReportEngine-bin-2.3.0_XXX.zip : the Jasper Report Engine o SpagoBIJPaloEngine-bin-2.3.0_XXX.zip : the JPalo Engine o SpagoBIJPivotEngine-bin-2.3.0_XXX.zip : the JPIvot Engine o SpagoBIJPXMLAEngine-bin-2.3.0_XXX.zip : the XML/A Engine o SpagoBIQbeEngine-bin-2.3.0_XXX.zip : the QBE Engine o SpagoBITalendEngine-bin-2.3.0_XXX.zip : the Talend Engine o mysql-dbscript-2.3.0_XXX.zip : for My SQL o mysql-dbupgradescript-2.2.0-to-2.3.0_XXX.zip Installare il DB dei Metadata di SpagoBI o ho creato database spagobi o MySQL_create.sql o MySQL_create_fk.sql o MySQL_create_quartz_schema.sql Capitolo: Esempio uso SpagoBI o SpagoBIWekaEngine-bin-2.3.0_XXX.zip : the Weka Engine The SQL script to create the DB Schema: 16 Bisogna adattare questi parametric nel file my.ini Deploy di SpagoBI WebApplication su Tomcat Copia tutti i war nella cartella WEBAPP di Tomcat, avvia Tomcat con start.bat. Questa operazione estrae I file WAR e ci permette poi di editare i file di configurazione. Run & Test Apri la pagina : http://localhost:8080/SpagoBI Puoi usare I seguenti utenti: o biadmin o bitest o bimodel o bidev o biuser la password è la stessa dello username scelto. I dettagli di configurazione sono presenti su : Capitolo: Esempio uso SpagoBI https://wiki.spagobi.org/xwiki/bin/view/spagobi_server/Configure+SpagoBI 17 Esempio di progetto da realizzare Lo scopo del progetto è quello di analizzare il numero di iscritti per ogni università italiana. I dati sono stati reperiti dal sito delle statistiche MIUR http://statistica.miur.it/scripts/TC_UNIV_BD/vTC_UNIV1a.asp in formato excel. Lo schema fisico del database analitico è una realizzazione di uno schema a stella. Strumenti utilizzati : database analitico : Mysql strumento ELT : Talend Open Studio 4.1 motore olap : Mondrian (integrato in SpagoBI) motore grafico olap : JPivotEngine (integrato in SpagoBI) tool grafico per la scrittura dello schema Mondrian : Schema Workbench (Pentaho Suite) Capitolo: Esempio uso SpagoBI 18 Piattaforma SpagoBI A differenza di Pentaho BI dove i moduli software tendono ad essere fusi in un'unica soluzione, Spago BI si propone come una piattaforma di integrazione. Analisi OLAP, reporting, grafici e gli altri strumenti di Business Intelligence rimangono componenti esterni ma collegati alla piattaforma tramite driver software. Lo sviluppatore che volesse aggiungere funzionalità di un nuovo strumento software può creare il proprio driver che interagisca con le rispettive librerie. Attualmente SpagoBI supporta tutte le funzionalità di Business Intelligence più rilevanti quali: Analisi OLAP (usando Mondrian/JPivot) Report (JasperReport e BIRT Grafici e Cruscotti (OpenLaszlo) GIS (CartoWeb e MapServer) Data Mining (Weka) ETL (viene integrato Talend Open Studio) Completano la gamma delle funzionalità le query QbE (Query by Example), la generazione di presentazioni Power Point e lo strumento Booklet per la condivisione e discussione di documenti in gruppo. L'interfaccia è interamente via web, compatibile con i browser di ultima generazione. Capitolo: Esempio uso SpagoBI ETL Per la fase di ETL SpagoBI integra la soluzione Talend Open Studio, pur consentendo qualunque altro meccanismo di ETL che di fatto è una operazione indipendente dalla piattaforma. Il software è completamente Open Source, disponibile in binari precompilati per Windows o Linux. Al primo avvio si nota che il programma sia basato su Eclipse, come nel caso di Kettle. 19 Esempio di utilizzo di tMap. Per realizzare un progetto con Open Studio va creato un job, in cui è possibile trascinare i componenti e darne una sequenza di esecuzione. A differenza di Kettle, dove il progetto viene salvato in file XML e quindi eseguito da un interprete, Open Studio provvede a generare direttamente il codice della procedura in Java o in Perl. Per eseguire il progetto si può utilizzare il comodo strumento integrato di debugging oppure compilare l'applicativo finale. Con questa ultima opzione verrà generata una cartella con il programma compilato che può essere mandato in esecuzione da Windows o Unix, previa l'installazione dell'ambiente Java o, a seconda dei casi, Perl. Molto marcato è l'approccio basato sui meta dati, ossia lo schema delle sorgenti dati in entrata e Capitolo: Esempio uso SpagoBI Gerarchia esecuzione dei job 20 uscita. Anche se così facendo si vincola lo sviluppatore a definire lo schema delle base dati prima di usare i componenti di Open Studio, la manutenibilità del progetto a seguito dei cambiamenti viene molto agevolata perché gli schemi appartengono a una repository comune, riducendo le possibilità di incompatibilità fra flussi sorgente e destinazione. Come ogni buon software di ETL i componenti a disposizione sono molti. Oltre ai classici strumenti di estrazione, mappatura e aggiornamento delle base dati sono previsti strumenti per il logging, connessione a server web o email, loop condizionale, filtraggio e aggregazione dei record e tanti altri. Passaggi complessi possono avvalersi del potente linguaggio di programmazione sottostante, che può essere Java o Perl a seconda di come viene inizializzato il progetto. Se Kettle ha il vantaggio di essere più semplice da usare nei classici casi di aggiornamento di base dati, Open Studio è uno strumento che mostra tutta la sua flessibilità in progetti complessi, merito del linguaggio di programmazione Java o Perl e delle scelte progettuali che agevolano l'evoluzione di grossi progetti. Più che un semplice strumento per la creazione di applicazioni ETL Talend Open Studio ha tutte le caratteristiche di un vero e proprio ambiente integrato. Nel pannello “Repository” in alto a sinistra infatti sono disponibili una serie di schede per i documenti che vengono via via realizzati, suddivisi in: Job Designs Raccoglie le procedure ETL definite dall'utente Metadata Gestisce le connessioni alle fonti dati e i rispettivi schemi, che si tratti di RDBMS oppure di file fisici Business Models Come documentazione aggiuntiva l'utente può creare dei diagrammi direttamente da Open Studio, che vengono poi raccolti in questa scheda Contexts Le procedure di ETL possono essere personalizzate facendo uso di parametri. La repository context prevede la definizione di questi parametri all'interno di scenari di utilizzo, come ad esempio il debugging o l'installazione su ambienti differenti Code L'utente può creare delle routine personalizzate, in codice Java o Perl a seconda di come viene configurato il progetto. La repository Code raccoglie queste funzioni in librerie che possono venire richiamate dagli strumenti di Open Studio Documentation File esterni possono essere integrati nel progetto per documentare le scelte adottate Recycle bin I documenti cancellati nelle repository finiscono in un cestino, in attesa che l'utente ne svuoti il contenuto di sua spontanea volontà Come sorgenti dati possono essere utilizzati database relazionali oppure file in vari formati (tra cui testo, XML, XLS, ZIP, ecc.) o anche protocolli web come POP3, FTP, HTTP e così via. I database relazionali supportati sono praticamente tutti quelli noti, merito di componenti personalizzati oltre ai classici componenti per connessioni JDBC e ODBC. Completano le opzioni di esecuzione le ricche funzioni di scheduling. Verrà in tal modo generato un file batch che imposta lo scheduler UNIX cron, di cui è disponibile anche il porting su Windows. Capitolo: Esempio uso SpagoBI 21 Registrazione sorgente dati del DataMart In spagoBi è necessario registrare il DataMart. Dal menù Risorse -> sorgenti dati . Appariranno la lista di sorgenti dati disponibili cliccare sulla lente di ingrandimento per aggiungerne una nuova, come evidenziato in figura. ETL per il caricamento dei dati Kettle, software realizzato dalla Pentaho stessa, è fortemente integrato nella piattaforma PentahoBI. La controparte per SpagoBI è Talend Open Studio, le quali procedure ETL possono venire importate ed eseguite dalla piattaforma. Direttamente da Talend Open Studio è possibile configurare il collegamento al server dove gira SpagoBI, il tutto tramite il menu Window -> Preferences e sulla mascherina che appare scegliendo la voce Talend -> SpagoBI Server. Questa videata consente di definire nuovi collegamenti a SpagoBI semplicemente cliccando sul pulsante New e compilando le informazioni come nella seguente figura: Capitolo: Esempio uso SpagoBI Inserire i dati necessari richiesti nel form di inserimento. 22 Capitolo: Esempio uso SpagoBI Una volta confermate le nuove impostazioni, cliccando con il pulsante destro del mouse sull'elenco “Job Designs” apparirà la voce “Deploy on SpagoBI“. La mascherina nella immagine seguente consentirà quindi di installare il Job all'interno delle piattaforma SpagoBI. 23 Nel nostro caso è stata installata la procedura MiurBI. Con questi passaggi Talend Open Studio prepara un pacchetto con la procedura ETL e lo installa nella cartella del server. Viene inoltre copiato un file XML con le informazioni necessarie alla registrazione della procedura nella piattaforma. Quello che rimane ora è la creazione di un nuovo documento analitico che mandi in esecuzione i job direttamente da SpagoBI, operazione questa che viene agevolata dalla presenza di maschere guidate direttamente tra le pagine della piattaforma. Solitamente la pubblicazione di nuovi documenti analitici si riduce alla compilazione dei seguenti campi: nome e descrizione del documento analitico file template generato dallo strumento di design (ad esempio Open Studio, iReport, BIRT, eccetera) eventuali parametri da richiedere all'utente prima dell'esecuzione del processo repository dei documenti analitici dove pubblicare l'applicativo Capitolo: Esempio uso SpagoBI Per registrare la procedura di ETL, una volta che è stata esportata da Talend Open Studio, si deve semplicemente accedere con i diritti di sviluppatore all'elenco dei documenti analitici di per poi cliccare sull'icona a forma di lente di ingrandimento. 24 Apparirà una mascherina da completare come nella seguente figura: Il file Template è il file XML generato da Open Studio, che nell'installazione predefinita viene salvato in resources\talend\RuntimeRepository\java\miur\miur I documenti così creati rimangono nello stato development, solitamente nascosti ai comuni utenti ma accessibili agli sviluppatori per collaudarne le funzionalità. In SpagoBI nella maschera ”Documents Configuration” di “Document and tree management“ vengono elencati tutti i documenti analitici registrati e cliccando sull'icona a forma di lente di ingrandimento appare una maschera simile a quella vista per la registrazione di nuovi documenti. Con questa maschera è inoltre possibile cambiare lo stato dei documenti tra le opzioni: Suspended Development Test Capitolo: Esempio uso SpagoBI Released 25 Analisi OLAP Capitolo: Esempio uso SpagoBI Come primo passo bisogna creare lo schema mondrian, io ho utilizzato il tool schema workbench definendo il cubo multidimensionale. Il fatto sono il numero di studenti iscritti alle università italiane divise per tipologia (triennale,specialistica, dottorandi, post dottornadi) e le mie dimensioni sono tipologia studenti, tempo corrispondente all’anno di riferimento e università a cui si riferiscono i dati. 26 L’output di questa fase è uno schema XML mondrian: miurmart.xml <Schema name="miurmart"> <Dimension type="StandardDimension" highCardinality="false" name="Universita"> <Hierarchy name="Uni" hasAll="true" allMemberName="Tutte universita"> <Table name="universita" alias=""> </Table> <Level name="Statale" table="universita" column="stataleLibera" nameColumn="stataleLibera" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"> </Level> <Level name="Uni" table="universita" column="idUni" nameColumn="nome" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"> </Level> </Hierarchy> </Dimension> <Dimension type="StandardDimension" highCardinality="false" name="Studente" <Hierarchy name="studente" hasAll="true" allMemberName="Tutti gli studenti"> <Table name="studenti"> </Table> <Level name="Tipo" table="studenti" column="idStudente" nameColumn="tipo" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"> </Level> </Hierarchy> </Dimension> <Cube name="Iscrizioni" cache="true" enabled="true"> <Table name="iscrizioni"> </Table> <DimensionUsage source="Universita" name="Universita" foreignKey="idUni" highCardinality="false"> Capitolo: Esempio uso SpagoBI <Dimension type="TimeDimension" highCardinality="false" name="Tempo"> <Hierarchy name="Anno" hasAll="true" allMemberName="Tutti Gli Anni" primaryKey="idtempo"> <Table name="tempo"> </Table> <Level name="Anno" table="tempo" column="idtempo" nameColumn="anno" type="Integer" uniqueMembers="false" levelType="TimeYears" hideMemberIf="Never"> </Level> </Hierarchy> </Dimension> 27 </DimensionUsage> <DimensionUsage source="Tempo" name="Tempo" foreignKey="idTempo" highCardinality="false"> </DimensionUsage> <DimensionUsage source="Studente" name="Studente" foreignKey="idStudente" highCardinality="false"> </DimensionUsage> <Measure name="iscritti" column="numeroIscritti" datatype="Numeric" aggregator="sum" visible="true"> </Measure> </Cube> </Schema> L'analisi OLAP richiede come primo passaggio la copiatura del file schema Mondrian definito precedentemente all'interno della cartella resources\Olap. Capitolo: Esempio uso SpagoBI Bisogna andare a specificare poi il percorso dello schema definito. Il file di configurazione da modificare è webapps\SpagoBIJPivotEngine\WEB-INF\classes\engine-config.xml. Modificare come evidenziato da figura. 28 Come tutti i documenti analitici, SpagoBI fornisce una semplice interfaccia per registrare nuovi applicativi. Nel caso di applicativi OLAP la registrazione avviene nella videata seguente: Registrate le informazioni generali del documento analitico rimane da definire la query MDX per l'interrogazione del cubo Iscrizioni. Con le recenti versioni di SpagoBI è a disposizione all'interno delle stesse videate uno strumento per scegliere gli elementi da visualizzare del cubo e generare la query MDX in automatico. Cliccando sull’elemento evidenziato nella figura sovrastante appare la successiva schermata, in cui andare a definire lo schema mondrian di riferimento. Capitolo: Esempio uso SpagoBI Noi selezioneremo MiurMart definito precedentemente nel file di configurazione engineconfig.xml. Una volta premuto sulla V a fianco definiremo in maniera grafica l’interrogazione mdx che servirà a jpivot per la visualizzazione del cubo dimensionale. 29 Rimane comunque possibile intervenire direttamente sulla query per personalizzare l'analisi in base alle proprie esigenze. Capitolo: Esempio uso SpagoBI Rimane comunque possibile intervenire direttamente sulla query per personalizzare l'analisi in base alle proprie esigenze. Una volta salvato il documento analitico il risultato è il seguente: 30 Analisi Studenti iscritti all’Università degli studi di Salerno nel 2008. Capitolo: Esempio uso SpagoBI Dati riferiti agli iscritti nel 2008 rispetto alle 94 università Italiane Private/Statali. 31 32 Capitolo: Esempio uso SpagoBI 33 Capitolo: Esempio uso SpagoBI Confronto anche con grafico del totale iscritti a università privata e università statale. Capitolo: Esempio uso SpagoBI Dettagli iscrizioni riferite agli iscritti nelle diverse università Statali italiane rispetto alla categoria studente per quanto riguarda l’anno 2008. 34 Capitolo: Esempio uso SpagoBI Dettagli iscrizioni riferite agli iscritti nelle diverse università Private italiane rispetto alla categoria studente per quanto riguarda l’anno 2008. 35 Fonti Dettagli su SpagoBI o http://spagobi.eng.it/SpagoBISiteITA/target/docs/architecture.html o http://www.robertomarchetto.com/files/spagobi_pentaho.pdf Dettagli sullo strumento ETL utilizzato o http://it.talend.com/index.php Dettagli su pentahoBI o http://www.pentaho.com/ demo online SpagoBI o http://spagobi.eng.it/SpagoBI Capitolo: Fonti 36