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