4.3 Progettazione e creazione del Data Warehouse
4.3.1 Tools e tecnologie
4.3.1.1 Oracle SQL Developer
Oracle SQL Developer è un ambiente di sviluppo integrato (o Integrated Development Environment, IDE) in grado di lavorare ed effettuare operazioni di vario tipo su databases Oracle. Oltre ciò è fornito di una serie di plug-in di terze parti che gli utenti possono utilizzare per connettersi a databases non Oracle.
Figura 4.2: Interfaccia di Oracle SQL Developer
Oracle SQL supporta la scrittura di codice in PL/SQL, largamente utilizzato per la realizzazione di procedure di estrazione e modifica dei dati in grado di sostituire totalmente i tool di ETL presenti; questo è dovuto dal fatto che l’azienda committente non possiede un tool di ETL ad-hoc.
4.3.1.2 PL/SQL
Il PL/SQL (Procedural Language/Structured Query Language) è un linguaggio di programmazione pro- prietario per database Oracle, procedurale, altamente tipizzato, server-based, progettato specificamente per inglobare al suo interno le istruzioni SQL. Inoltre, in fase di esecuzione, sia PL/SQL che SQL stesso vengono eseguiti all’interno dello stesso processo server, garantendo un’efficienza ottimale.[12]
Come tutti gli altri tipi di linguaggi di programmazione, il PL/SQL supporta variabili, condizioni e gestisce le eccezioni. A differenza del puro SQL, dove non possono essere costruiti costrutti come cicli, il PL/SQL permette agli sviluppatori di interfacciarsi con i databases Oracle in maniera imperativa, permettendo così di eseguire cicli o operazioni ricorsive che risulterebbero complesse da implementare
in SQL.
La struttura dei programmi PL/SQL è organizzata a blocchi, composti in questo modo:
declare
--blocco di dichiarazione
begin
--codice da eseguire
exception
--gestione delle eccezioni
end;
Ai fini della creazione e popolamento delle tabelle del DW saranno costruite procedure PL/SQL, che presentano sintassi simile a quella appena mostrata, in grado di adempiere al compito di estrazione, modifica e caricamento dei dati sia nelle tabelle dimensionali che nella fact table del Data Warehouse.
4.3.1.3 Formwork
Formworkè una suite di strumenti di Data Entry proprietaria di Iconsulting S.p.A. implementata sulla base dell’esperienza acquisita in molti progetti di Business Intelligence. La suite è composta da strumenti client, sia desktop che web, che consentono la visualizzazione e la modifica dei dati direttamente dalla console di amministrazione.[13]
Figura 4.3: Architettura suite Formwork
I componenti della suite utilizzati per il progetto della Logistica Inversa sono:
• Administration Console: la console permette di importare i metadati delle tabelle presenti nel gestionale aziendale, creando legami tra le tabelle logiche ottenute ed effettuando operazioni di vario tipo sulle stesse;
• Client Excel: costituito da un plugin per Excel, permette la scrittura di record nelle tabelle del gestionale direttamente da foglio di lavoro Excel. Il collegamento tra client Excel e tabelle del DB è presente grazie ai metadati delle stesse importati nell’Administration Console, che mantengono dunque un legame tra gestionale e client.
Figura 4.4: Interfaccia Administration Console Formwork
Come mostrato nell’immagine precedente, è possibile importare all’interno dell’Administration Con- sole il riferimento logico alle tabelle presenti nel gestionale, con la possibilità di definire join logici tra le tabelle importate. Questi hanno la funzione di mantenere un collegamento tra le righe inserite nel foglio di lavoro Excel e la tabella fisica, dove saranno effettivamente scritte.
In seguito selezionando più tabelle logiche presenti nell’interfaccia della console si è in grado di creare maschere Formwork (ovvero sheet Excel) che possono essere compilate manualmente da qual- siasi utente utilizzatore.
Ogni riga aggiunta dall’utente nel foglio Excel sarà in seguito inserita tramite il pulsante Write all’in- terno di una specifica tabella presente sul gestionale. Nella creazione di una maschera Formwork sono presenti diverse funzionalità:
• Rendere compilabili o meno dall’utente determinati campi della maschera;
• Possibilità di far scegliere all’utente per ogni campo della maschera un valore da una lista pre- definita, ottenuta tramite menu a tendina attraverso i join logici definiti in precedenza con le altre tabelle (Figura 4.5);
Figura 4.5: Esempio maschera Formwork
• Creazione di procedure Formwork pre o post-scrittura: si tratta di procedure con componenti grafici che eseguono determinate operazioni prima o dopo della scrittura sulla tabella del DB.
Ogni qualvolta viene inserita una nuova riga nella maschera, vengono effettuati da Formwork i vari controlli per identificare la riga stessa come valida o non valida, mandando un alert all’utente che ha tentato di inserire la riga.
Formwork ha permesso dunque di integrare con le informazioni Oracle tutti i dati non presenti a sistema, e che erano da sempre stati gestiti su semplici fogli di lavoro Excel.
4.3.1.4 Oracle Business Intelligence Enterprise Edition (OBIEE)
Oracle Business Intelligence Enterprise Edition è una suite di applicazioni di Business Intelligence pro- prietaria di Oracle. Più nello specifico comprende una gamma di strumenti per l’utente finale come cruscotti interattivi, sistemi di reporting avanzato e pubblicazione, analisi ad hoc sul Web, analisi per mobile, integrazione con Microsoft Office, servizi Web ed integrazione dei processi aziendali. [14]
Una volta terminata la fase di costruzione del flusso ETL e dell’architettura del Data Warehouse OBIEE sarà lo strumento fondamentale per la creazione e modellazione dei legami effettivi tra tabelle fact e tabelle dimensionali; infine a partire dal modello ottenuto OBIEE permette la creazione di pagine di dashboarding, con la possibilità di aggiungere dettagli e campi modificando in real-time le analisi
Figura 4.6: Interfaccia OBIEE Analytics
presenti.
I tool della suite Oracle utilizzati sono i seguenti:
• OBIEE Administration Tool; • OBIEE Analytics.
Il primo applicativo permette la creazione e definizione di legami logici tra le tabelle dimensionali e fact presenti a livello di gestionale. Esso è in grado di leggere le tabelle dall’interno del DW e stabilire legami tra le stesse. Oltre a definire l’architettura di base per le analisi permette di calcolare ed aggregare le metriche d’interesse e di definire gerarchie per gli attributi delle tabelle dimensionali.
Come mostrato nella Figura 4.7 l’interfaccia dell’Administration Tool di OBIEE presenta tre aree di lavoro principali:
• Livello fisico: il livello fisico è la colonna situata all’estrema destra e permette di importare al suo interno le tabelle presenti sul Data Warehouse. È possibile inoltre definire i vari join e chiavi di join tra le tabelle importate. In questo livello viene definita dunque la struttura cardine del DW;
• Livello logico: sulla base di ciò che è stato definito nel livello precedente, nel livello logico sono importate le strutture del livello fisico. In questo livello è opportuno stabilire legami logici tra le tabelle importate senza specificare alcuna chiave di join, indicando solamente la presenza di legami tra le stesse, dato che tutti i controlli di chiave e di integrità vengono già svolti nel livello fisico. Una volta effettuate queste operazioni è possibile sia la costruzione di gerarchie per ogni dimensione che il calcolo e la successiva aggregazione delle metriche presenti nella fact table;
Figura 4.7: Interfaccia OBIEE Administration Tool
• Livello di presentazione: l’ultimo livello contiene tutte le tabelle e attributi relativi che sono visi- bili all’utente finale in OBIEE Analytics; anche in questo caso vengono lette le tabelle del livello precedente. Il livello in questione presenta una struttura con più package, dove ognuno di essi rappresenta una specifica area di analisi, avente un proprio Data Mart e logiche associate.
Ogni spostamento di tabelle ed attributi da un livello ad un altro viene eseguito attraverso operazioni di Drag & Drop, mantenendo così un legame unico tra tutti i livelli. L’ordine di esecuzione dei vari livelli è quello presentato pocanzi anche per le analisi finali: vengono inizialmente lette tabelle e campi dal gestionale, in seguito il livello logico elabora gerarchie ed aggrega le metriche ed infine il risultato ottenuto viene portato in presentation a disposizione per tutti gli utenti.
OBIEE Analytics (Figura 4.6) sfrutta tutto ciò che è stato definito nei tre livelli dell’Administration Tool e permette agli utenti di creare analisi utilizzando tabelle e campi che sono stati inseriti nel livello di presentazione. Questo secondo applicativo permette dunque la definizione di dashboards di dettaglio spaccate o filtrate a seconda dei campi e valori scelti dagli utenti tramite prompts, con la possibilità di selezionare vari tipi di grafici per la visualizzazione dei risultati.
Alla luce di ciò è possibile affermare che l’Administration Tool di OBIEE è uno strumento che permette il corretto funzionamento delle varie interazioni (back-end), mentre l’Analytics è la parte completamente visibile all’utente e con la quale esso può interagire (front-end).