(Introduzione) Business Intelligence

Transcript

(Introduzione) Business Intelligence
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