Breve panoramica sulla Business Intelligence con software Open Source Roberto Marchetto, 14 Gennaio 2009 L'articolo ed eventuali commenti sono disponibili su www.robertomarchetto.com (Introduzione) Il mondo della Business Intelligence con la maturazione di progetti Open Source sta attirando interesse da parte di molti utenti. Grazie all'abbattimento dei costi di licenza ora anche realtà con budget limitati possono implementare datawarehouse e strumenti analitici, privilegio prima solo per pochi. Business Intelligence Il concetto di Business Intelligence venne coniato nel 1958 quando Hans Perter Luhn, ricercatore tedesco presso l'IBM, studiò un sistema automatico per “diffondere informazioni tra le varie sezioni di una qualsiasi organizzazione industriale, scientifica o governativa”. Seppure spesso il termine venga usato a sproposito per indicare la semplice reportistica aziendale, oggi con Business Intelligence ci si riferisce a un insieme di procedure, tecnologie e processi per raccogliere, integrare e analizzare informazioni strategiche di business. L'obiettivo finale è permettere, usando soluzioni tipicamente software, di cogliere i fattori chiave del proprio business e conseguentemente prendere decisioni operative a riguardo. 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 nell'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. A queste necessità provvede il processo ETL, sigla che tradotta in italiano diverrebbe estrazione, trasformazione e caricamento (Extraction, Transformation, Loading). Come illustrato in figura 1 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. pg 1 di 10 Figura 1: ETL Sebbene studi teorici abbiano portato alla ideazione di nuovi tipi di database particolarmente adatti a ospitare dati di Business Intelligence, in realtà vengono spesso usati database relazionali come MySQL o PostgreSQL, con l'unico accorgimento di strutturare il database con particolari schemi come vedremo nei prossimi articoli. Se si usassero le strutture per così dire classiche si perderebbero importanti vantaggi sia in termini di prestazioni che di facilità nell'implementare alcuni strumenti della Business Intelligence. Finalmente possiamo rispondere alla terza domanda su come analizzare questi dati, introducendo lo strumento sicuramente più curioso che è l'analisi OLAP. Per capire il significato e le potenzialità dell'analisi OLAP si pensi di rappresentare i dati all'interno di un cubo, ad esempio un insieme di vendite. Figura 2: Cubo OLAP Seguendo la figura 2 le facce del cubo costituiscono gli attributi delle singole operazioni di vendita come periodo di fatturazione, area geografica del cliente e tipo di merce venduta. Le celle del cubo contengono valori numerici come fatturato totale o numero insoluti. Con l'OLAP risulta molto semplice vedere come cambia il fatturato a seconda del periodo dell'anno in una determinata area geografica, applicando anche filtri o calcoli particolari. Nelle applicazioni pratiche si visualizzano i cubi usando tabelle di pivot come griglie di fogli di calcolo poiché sono più semplici da gestire quando le variabili in gioco diventano numerose (vedi Figura 3 Jpivot). pg 2 di 10 Figura 3: JPivot Oltre che con l'analisi OLAP i dati raccolti possono venire elaborati con report, grafici, analisi georeferenziali eccetera, a seconda degli strumenti software scelti. È bene puntualizzare che questi strumenti analitici andrebbero usati in tutta autonomia da chi è il diretto interessato delle analisi, come ad esempio il manager o il direttore, e quindi dovrebbero essere particolarmente intuitivi da usare. Per agevolare l'utente nella scelta dei componenti e nel loro utilizzo si sono diffuse piattaforme di Business Intelligence sia commerciali che Open Source che integrano una selezione di strumenti specifici. Probabilmente una domanda che sorge spontanea è perché adottare un sistema di Business Intelligence piuttosto che aggiungere gli strumenti direttamente al proprio software gestionale. Sempre che ciò sia possibile per motivi di licenza o fattibilità tecnica tale soluzione è spesso svantaggiosa, innanzitutto perché alcuni tipi di analisi funzionano bene se è stata scelta una certa struttura del database come discuteremo più avanti. Un altro limite è che si va a sovraccaricare il gestionale con operazioni di analisi invece di demandare l'onere a un sistema dedicato e ottimizzato a tal proposito. La scelta di un sistema di Business Intelligence diventa ancor più vantaggiosa quando i dati provengono da fonti diverse come ad esempio il gestionale per la contabilità, quello per la produzione e si vuole integrare tutte le informazioni in una vista unica. Componenti principali 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 questo articolo ci limiteremo a fare una panoramica generale non di certo esaustiva dei componenti Open Source disponibili. 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 pg 3 di 10 di testo o XML. La particolarità di questi strumenti è che le procedure ETL vengono realizzate in ambienti visuali molto intuitivi. Come si vede in Figura 4 è sufficiente trascinare i componenti disponibili nel foglio di lavoro e collegarli in senso sequenziale di esecuzione per realizzare procedure di aggiornamento anche complesse. Figura 4: Tlend Open Studio 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. Meno intuitivo ma sicuramente valido risulta Enhydra Octopus, ancora privo di un IDE completo per cui le procedure ETL vanno definite in file XML. 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. 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 pg 4 di 10 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 (vedi Figura 3 Jpivot). 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. 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 (vedi Figura 5 JasperReport). pg 5 di 10 Figura 5: Jasper Report 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. 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 di fFgura 5. 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, ancora poco diffuso al momento della redazione di questo articolo. Data Mining Oltre ai classici grafici, cruscotti e report esistono strumenti per eseguire statistiche avanzate. La disponibilità di enormi quantità di dati ha portato a nuove tecniche statistiche che rientrano nell'ambito del Data Mining. Si può pensare al Data Mining come la ricerca automatizzata di informazioni in una miniera di dati, dove i dati sono i singoli record estratti dal database mentre le informazioni sono concetti chiave del proprio business, le idee di fondo che hanno generato i risultati raccolti. Ad esempio disponendo dei dati di una compagnia assicurativa è possibile suddividere i clienti in gruppi di affidabilità in base ai valori con cui viene registrato il cliente, ad esempio età, sesso, residenza. Il vantaggio è che all'arrivo di un nuovo cliente una compagnia lo pg 6 di 10 può stimare per affidabile o inaffidabile forte dell'analisi statistica svolta. Queste metodologie, che sicuramente richiedono una certa preparazione tecnica da parte di chi va a implementarle, sono previsti in software Open Source come Weka o RapidMiner (vedi Figura 6 Rapid Miner). Figura 6: Rapid Miner Per le semplici analisi possono essere sufficienti, se però il Data Mining diventa un aspetto cruciale conviene orientarsi verso soluzioni commerciali oppure ad ambienti statistici più complessi. Rproject ad esempio è un software libero e diffusissimo nelle università, che fornisce un proprio linguaggio di programmazione, un ambiente di sviluppo e anche una libreria per integrarlo in altre soluzioni. Certamente si tratta di un prodotto ostico ma anche fra i più completi, dato che le funzionalità presenti coprono tutti i meandri della statistica con oltre 1400 librerie disponibili. 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. Piattaforme di Business Intelligence Finora ci siamo dedicati a una carellata di software Open Source per realizzare ambienti di Business Intelligence. Senza doverli selezionare, configurare e integrare per le proprie esigenze l'approccio migliore è utilizzare una delle tante piattaforme già pronte all'uso. Di seguito troverete una panoramica generale delle principali soluzioni Open Source oggi a disposizione. pg 7 di 10 SpagoBI SpagoBI è una piattaforma Open Source per la Business Intelligence italiana e completamente LGPL, senza versioni “professional” a pagamento (vedi Figura 7 SpagoBI). Figura 7: SapgoBI 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 se lo strumento di ETL è a libera scelta dell'utente, SpagoBI fornisce il maggior supporto all'eccellente Talend Open Studio. Al momento della redazione dell'articolo è ancora in cantiere la nuova major release 2.0 con numerose novità. Nell'attesa del nuovo rilascio è possibile provare di prima persona la piattaforma dal sito www.spagobi.org collegandosi alla demo. Pentaho Pentaho rappresenta una delle piattaforme più conosciute per la Business Intelligence, merito della forte campagna di marketing che sta portando avanti l'azienda produttrice. Nel suo cammino Pentaho ha abbracciato e sponsorizzato diversi software Open Source come Mondrian per l'OLAP, JfreeReports per la reportistica, Kettle per l'ETL, integrandoli all'interno della propria piattaforma. Come nel caso di SpagoBI anche Pentaho copre tutti i principali aspetti della Business Intelligence, proponendo oltre alla versione Open una versione Professional a pagamento con funzionalità aggiuntive. Per lo sviluppo di nuovi documenti analitici Pentaho fa uso di un designer basato su Eclipse e i documenti una volta sviluppati vengono caricati all'interno della piattaforma web per l'esecuzione. I server web utilizzabili, come accade per le altre piattaforme di Business Intelligence qui elencate, sono teoricamente qualunque web server Java con la preferenza su Tomcat o JBoss. La fase di ETL è demandata a strumenti esterni, proponendo come ambiente predefinito il proprio Pentaho Data Integration (precedentemente conosciuto con il nome di Kettle). pg 8 di 10 JasperServer JasperSoft è una società che si è fatta conoscere grazie al software di reporting Open Source JasperReport. Entrata anch'essa nel mercato della Business Intelligence ha rilasciato la piattaforma JasperServer cha fa uso di JasperReport per la reportistica, del binomio Mondrian/JPivot per l'analisi OLAP e di una versione personalizzata di Talend Open Studio per l'ETL. Sebbene le funzionalità implementate siano abbastanza essenziali (manca ad esempio l'analisi geografica e il Data Mining), JasperServer rappresenta una soluzione intuitiva e ben sviluppata, prevedendo anche delle API web service per chi volesse sfruttarla al massimo. JasperServer è disponibile nella versione Open Source o a pagamento con delle funzionalità aggiuntive come la possibilità di creare cruscotti e report in un editor visuale. Fra le piattaforme elencate JasperServer è quella che a discapito delle funzionalità integrate risulta la più intuitiva e semplice da utilizzare. La piattaforma gira su server web Java come Tomcat ma data la buona aderenza agli standard è teoricamente semplice farla girare sugli altri server. EasyDe Come SpagoBI anche EasyDe è un prodotto italiano e Open Source. I classici documenti analitici come report, cruscotti ed alerts vengono gestiti in una interfaccia web semplice e pulita. Singolare è la scelta di non implementare Mondrian/JPivot per l'analisi OLAP offrendo un proprio strumento semplificato, meno flessibile ma certamente intuitivo. Come tutte le altre piattaforme qui elencate supporta in linea di massima qualunque database con driver JDBC come MySQL, PostgreSQL, Oracle, Microsoft SQL Server, eccetera. La ditta produttrice offre in una versione enterprise a pagamento assistenza e personalizzazione della piattaforma. BPM-Conseil BPM Conseil propone sotto il nome di Vanilla BI Platform una propria soluzione Open Source con strumenti sia web che applicativi Java standalone. Tra i vari componenti della piattaforma spiccano degli strumenti sviluppati dalla BPM stessa come FreeDashboard per il design di dasboard o la soluzione OLAP FreeAnalysis, che implementa una propria versione estesa di Mondrian e una interfaccia in stile web 2.0. Interessanti sono anche gli applicativi di supporto come FreeAnalysis Designer per il design degli schemi sia Mondrian che FreeAnalysis. Con questa piattaforma BPM propone un prodotto ambizioso anche se ancora in fase di maturazione, ponendo particolare attenzione a interfacce moderne e strumenti alternativi a quelli proposti dalla massa. OpenI OpenI è un'altra piattaforma di Business Intelligence Open Source realizzata per server web Java. Dopo essere state integrate le principali funzionalità di Business Intelligence (reportistica e analisi OLAP) il prodotto è rimasto per un pò di tempo parcheggiato su Sourceforge senza proseguirne attivamente lo sviluppo. Recentemente è apparsa in cantiere una nuova major release a dimostrazione che lo sviluppo è di nuovo vivo. Come si può notare nella demo del sito www.openi.com la piattaforma è abbastanza intuitiva da usare ed ha un approccio minimalista ma efficace nello sviluppo dei documenti analitici. Seppur attualmente limitato nelle funzionalità disponibili l'approccio di OpenI è sicuramente interessante. Conclusioni In conclusione esistono molti strumenti Open Source per la Business Intelligence, alcuni molto competitivi e altri ancora in corso di maturazione. Talvolta mancheranno le funzionalità di software del costo di decine di migliaia di Euro, ma per le comuni esigenze si comportano abbastanza bene ed hanno il vantaggio di permettere anche a imprese non così prosperose di implementare il pg 9 di 10 proprio ambiente di Business Intelligence. Con la maturazione e la diffusione delle piattaforme Open Source molti sono i sviluppatori e gli utenti finali che si stanno interessando alla materia, rendendo queste soluzioni sempre più competitive. Qualcuno dei lettori avrà notato che quasi tutti i software elencati sono scritti in Java che di fatto è diventato il linguaggio di riferimento. La maturazione di Java come linguaggio e la sua notevole evoluzione in ambito web ben si adattano ai requisiti anche complessi della Business Intelligence. pg 10 di 10