Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
La naming convention è una componente fondamentale di ogni progetto informatico.
L’obiettivo di questo articolo è quello di suggerire uno standard di nomenclatura pratico ed efficace per un progetto di Data Warehouse.
(parte 2)
Note di Data Warehouse e Business Intelligence - Le Dimensioni di analisi (pa...Massimo Cenci
Le dimensioni di analisi sono le componenti fondamentali per definire gli spazi analitici all’interno di un Data Warehouse.
Analizziamo in dettaglio il loro design e la loro implementazione (parte 2)
Note di Data Warehouse e Business Intelligence - Le Dimensioni di analisiMassimo Cenci
Le dimensioni di analisi sono le componenti fondamentali per definire gli spazi analitici all’interno di un Data Warehouse. L’obiettivo è quello di analizzare in dettaglio il loro design e la loro implementazione
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
La naming convention è una componente fondamentale di ogni progetto informatico.
L’obiettivo di questo articolo è quello di suggerire uno standard di nomenclatura pratico ed efficace per un progetto di Data Warehouse.
(parte 2)
Note di Data Warehouse e Business Intelligence - Le Dimensioni di analisi (pa...Massimo Cenci
Le dimensioni di analisi sono le componenti fondamentali per definire gli spazi analitici all’interno di un Data Warehouse.
Analizziamo in dettaglio il loro design e la loro implementazione (parte 2)
Note di Data Warehouse e Business Intelligence - Le Dimensioni di analisiMassimo Cenci
Le dimensioni di analisi sono le componenti fondamentali per definire gli spazi analitici all’interno di un Data Warehouse. L’obiettivo è quello di analizzare in dettaglio il loro design e la loro implementazione
The document discusses the challenges of managing large volumes of data from different sources. Traditional approaches of separating data into isolated data silos are no longer effective. The emerging solution is to bring all data together into a unified platform like Hadoop that can store, process, and analyze large amounts of diverse data in a distributed manner. This allows organizations to gain deeper insights by asking new questions of all their combined data.
Slide utilizzate per il matera open data day del 21 febbraio 2015. Il tema analizzato riguarda la reperibilità e l'analisi dei dati delle royalties petrolifere in Basilicata in particolare e dello sviluppo del territorio in generale.
TecnoWorkshop Taranto2013: OpenERP implementazione e migrazione da sistemi pr...Andrea Cometa
All'interno del TecnoWorkshop Taranto2013 ho presentato un talk tecnico/pratico dal titolo «Implementazione di OpenERP e migrazione da sistemi proprietari».
Nel talk viene illustrato come migrare la propria base dati verso OpenERP, che utilizza PostgreSQL; l'implementazione dei flussi aziendali migrando da un insieme non omogeneo di applicazioni ad un unico ambiente di lavoro.
Le possibilità offerte dal framework OpenObject anche nello sviluppo di applicazioni esterne perfettamente integrate, come gestione di macchinari di produzione e software di raccolta ordini da web.
Viene illustrato un caso reale nel corso della presentazione, al fine di evidenziare come l'open source offra possibilità economicamente competitive ed allo stesso tempo tecnologicamente avanzate.
Scaletta:
Parco software scarsamente integrato e basi dati non omogenee: una situazione diffusa.
Migrazione ad OpenERP, tecniche e strumenti.
Implementazione della Produzione in un caso reale: Distinte base a dimensione variabile e varianti colore.
Integrazione con i macchinari di produzione.
Raccolta ordini da web, applicazione PHP che sfrutta il protocollo XMLRPC perfettamente integrata con OpenERP.
Hand Coding ETL Scenarios and Challengesmark madsen
Overview of some of the scenarios that lead one to hand-coding over tools, description of the challenges faces, and some practices to deal with the problems.
OCTOBUS enterprise management system è il sistema gestionale made in Italy, web & mobile native, world ready, parametrico, flessibile, scalabile in grado di supportare l’azienda in tutte le sue evoluzioni
Big Data e Business Intelligence. Intervento del Prof. Pozzan nell'ambito dell'open day organizzato dalla Fondazione ITS Kennedy di Pordenone, evento del 13 settembre 2014 in cui sono stati presentati i temi per i corsi in partenza a novembre 2014.
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
La naming convention è una componente fondamentale di ogni progetto informatico.
L’obiettivo di questo articolo è quello di suggerire uno standard di nomenclatura
pratico ed efficace per un progetto di Data Warehouse.
(parte 1)
The document discusses the challenges of managing large volumes of data from different sources. Traditional approaches of separating data into isolated data silos are no longer effective. The emerging solution is to bring all data together into a unified platform like Hadoop that can store, process, and analyze large amounts of diverse data in a distributed manner. This allows organizations to gain deeper insights by asking new questions of all their combined data.
Slide utilizzate per il matera open data day del 21 febbraio 2015. Il tema analizzato riguarda la reperibilità e l'analisi dei dati delle royalties petrolifere in Basilicata in particolare e dello sviluppo del territorio in generale.
TecnoWorkshop Taranto2013: OpenERP implementazione e migrazione da sistemi pr...Andrea Cometa
All'interno del TecnoWorkshop Taranto2013 ho presentato un talk tecnico/pratico dal titolo «Implementazione di OpenERP e migrazione da sistemi proprietari».
Nel talk viene illustrato come migrare la propria base dati verso OpenERP, che utilizza PostgreSQL; l'implementazione dei flussi aziendali migrando da un insieme non omogeneo di applicazioni ad un unico ambiente di lavoro.
Le possibilità offerte dal framework OpenObject anche nello sviluppo di applicazioni esterne perfettamente integrate, come gestione di macchinari di produzione e software di raccolta ordini da web.
Viene illustrato un caso reale nel corso della presentazione, al fine di evidenziare come l'open source offra possibilità economicamente competitive ed allo stesso tempo tecnologicamente avanzate.
Scaletta:
Parco software scarsamente integrato e basi dati non omogenee: una situazione diffusa.
Migrazione ad OpenERP, tecniche e strumenti.
Implementazione della Produzione in un caso reale: Distinte base a dimensione variabile e varianti colore.
Integrazione con i macchinari di produzione.
Raccolta ordini da web, applicazione PHP che sfrutta il protocollo XMLRPC perfettamente integrata con OpenERP.
Hand Coding ETL Scenarios and Challengesmark madsen
Overview of some of the scenarios that lead one to hand-coding over tools, description of the challenges faces, and some practices to deal with the problems.
OCTOBUS enterprise management system è il sistema gestionale made in Italy, web & mobile native, world ready, parametrico, flessibile, scalabile in grado di supportare l’azienda in tutte le sue evoluzioni
Big Data e Business Intelligence. Intervento del Prof. Pozzan nell'ambito dell'open day organizzato dalla Fondazione ITS Kennedy di Pordenone, evento del 13 settembre 2014 in cui sono stati presentati i temi per i corsi in partenza a novembre 2014.
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
La naming convention è una componente fondamentale di ogni progetto informatico.
L’obiettivo di questo articolo è quello di suggerire uno standard di nomenclatura
pratico ed efficace per un progetto di Data Warehouse.
(parte 1)
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo AgileDrupalDay
Speaker: Marco Giacomassi e Paolo Pustorini
Area: Business, Development
Twinbit e Agavee, insieme, hanno avuto la fortuna di lavorare su un progetto di dimensioni intimidenti, per un cliente Enterprise che si è rivelato inaspettatamente competente nello SCRUM.
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISETwinbit
Twinbit e Agavee, insieme, hanno avuto la fortuna di lavorare su un progetto di dimensioni intimidenti, per un cliente Enterprise che si è rivelato inaspettatamente competente nello SCRUM. Ormai è impossibile lavorare nel web e non incappare nella voglia di lavorare in modo agile, con metodologie adeguate e moderne. Purtroppo non esiste metodo che regga l'impatto con un cliente non collaborativo o preparato. Senza più scuse, abbiamo dovuto affrontare il processo con Drupal 7. Ecco com'è andata.
Autore: Marco Giacomassi
Introduzione al Domain Driven Design (DDD)DotNetMarche
In questa sessione si approfondirà il concetto di Domain Driven Design, un principio di progettazione che può essere visto come una “forma-mentis” per aiutare a concepire e modellare applicazioni enterprise che fanno un forte uso del Domain Model. Questa metodologia, introdotta da Eric Evans, mette in risalto il dominio applicativo di un progetto, costituendo quindi il collante tra il modello analitico e il modello implementativo e trovando la sua naturale applicazione in ambienti di sviluppo agili come Extreme Programming. Come completamento della sessione verranno esaminate alcune tecniche di Layering e pattern architetturali che ben si sposano con questa tecnica.
Se la meta è la Self-Service Analytics, il Logical Data Warehouse ne è la rottaDenodo
Watch full webinar here: https://bit.ly/2SDUxEz
In tutte le aziende c’è una necessità crescente di ottenere informazioni e di prendere decisioni, spesso strategiche, a partire da dati che continuano a crescere in numero, volume e varietà delle fonti, e in cui la componente non strutturata è sempre più prevalente.
La maggior parte delle soluzioni più classiche adottate fino ad oggi, come i tradizionali Data Warehouse e Data Lake hanno una governance più complessa e non garantiscono un accesso agile ai dati.
I sistemi di Business Intelligence devono essere in grado di supportare nuove forme di reporting e di analisi, come l’analisi Self-Service, le analisi investigative e la Data Science; nuovi utenti, come clienti online, partner e fornitori; tecnologie emergenti, come Hadoop e NoSQL; fonti di dati esterne, come i dati sui Social Media e gli Open Data.
Inoltre, elemento non meno importante, la velocità con la quale le aziende devono prendere decisioni o portare sul mercato nuovi prodotti o servizi, è sempre maggiore.
La risposta a queste necessità aziendali, secondo gli analisti, è il Data Warehouse Logico (LDW), che ha dimostrato garantire una elevata agilità per il Delivery e la trasformazione dei dati, semplificando la connessione a nuove sorgenti dati, comunque siano fatte e ovunque siano.
Partecipa a questo webinar per approfondire:
- Come implementare un Data Warehouse logico secondo Gartner
- Come la tua organizzazione può migrare in modo graduale e con successo verso un'architettura di Data Warehouse logico flessibile
- Come rendere disponibili in modo agile e veloce nuove fonti di dati agli analisti e ai data scientist
- In che modo il Logical Data Warehouse aiuta a integrare l'analisi Self-Service con le altre forme più classiche di Business Intelligence
Business Intelligence e Business Analytics sono termini che ricorrono ormai quotidianemente. Cosa significano? Che valore portano in una azienda? Come si crea una soluzione di Business Intelligece e di Business Analytics? Che strumenti mette a disposizione la piattaforma Microsoft? In questa sessione andremo ad introdurre tutti gli attori, gli strumenti e le tecnologie che concorrono a realizzare tali soluzioni, vendendone alcune "dal vivo" per capire come si usano ed il grande valore aggiunto che, in una società sempre più affamata di informazioni, ma ricca solo di dati, possono portare.
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Codemotion
Realizzare un’unica piattaforma che garantisce Omni-channel, Zero-downtime, Functional-decomposition e Auto-scaling è possibile? Vi raccontiamo un caso reale di come, utilizzando Zuul, Eureka, SpringBoot, Docker abbiamo realizzato i desideri del cliente e attuato questa trasformazione.
Data Strategy per trasformare i dati in asset strategici aziendaliDenodo
Watch: https://bit.ly/3ftTdKr
Il 26 giugno partecipa al Webinar DATA STRATEGY PER TRASFORMARE I DATI IN ASSET STRATEGICI AZIENDALI realizzato da IKN Italy con la collaborazione di Denodo per approfondire i trend tecnologici che indirizzeranno e stanno guidando la Data Strategy delle aziende in tutto il mondo. Nell'era dei Big Data, dell'Intelligenza Artificiale e del Cloud Computing, il volume, l’eterogeneità e la velocità dei dati sono in costante crescita e la sfida, pertanto, diventa quella di poter governare i dati, in modo da facilitare la loro trasformazione in informazioni e conoscenza, dando la possibilità al business di accedervi con agilità e semplicità.
Vuoi sapere come trasformare i dati in asset strategici, affinché l’azienda sia (veramente) Data-Driven?
Partecipa al webinar per rispondere a questa domanda e per scoprire:
- Come Machine Learning e Artificial Intelligence possono semplificare le sfide della gestione dei dati al giorno d’oggi e qual è il ruolo della Data Virtualization in tale semplificazione
- Qual è l'evoluzione delle architetture di Data Provisioning e di Data Management nelle aziende e in che modo il paradigma di Data Fabric entra in gioco
- Come è possibile gestire l'integrazione dei dati in un mondo sempre più ibrido e multi-cloud
- Come possono le aziende monetizzare dati e informazioni, sfruttando e valorizzando un’infrastruttura Data-as-a-Service
- Quale ruolo svolgere il Voice Computing nel futuro dell'analisi dei dati
Strumenti di Business Intellingence 1: introduzione al data warehouseDatamaze
Dal dato in azienda alla conoscenza strutturata per effettuare scelte di business puntuali e precise. Cos'è e a cosa serve il data warehouse in un progetto di Business Intelligence.
Applicazione software collaborativa progettata per la gestione dei documenti, dei dati di componenti e distinte base.
Collaborative software application designed for managing document, component and bill of material data.
Consigli per Organizzare Demo e Scegliere il Nuovo Erp AziendaleFrancesca Solari
Cinque consigli per organizzare al meglio le demo di presentazione delle nuove possibili soluzioni in modo da evidenziare possibili limiti ed evitare sorprese spiacevoli rispetto alle aspettative.
Con Xebialabs affrontiamo il tema della gestione della Toolchain devops e Release/Deploy in modo orchestrato e remotizzato.
XebiaLabs, leader del mercato ARA come riportato da Gartner e
Forrester. Con XebiaLabs gestire i rilasci dal punto di vista di processo e di effettivo deploy delle applicazioni è solo un fatto di configurazione, al resto pensa l’engine di XebiaLabs.
Tecniche Di Troubleshooting Nei Sistemi DistribuitiK-Tech Formazione
Questo seminario sulle tecniche di troubleshooting fa rientra nella collaborazione fra K-Tech (http://www.k-tech.it/) e la Facoltà di Ingegneria dell’Università Roma TRE, nell’ambito delle attività della Consulta.
Il seminario presenta come risolvere problemi tipici dei sistemi distribuiti che avvengono in produzione. Insieme agli esempi pratici si presenta anche un metodo per il troubleshooting che assicura una maniera veloce ed efficace per la determinazione dei problemi ed in generale per la gestione delle performance applicative. Il metodo si basa sulle evidenze del monitoraggio e pone l'accento sulla qualità delle informazioni raccolte in produzione, il fattore più determinante, assieme al tempo, per tutto il processo di troubleshooting. Questo materiale è preso da un corso di più giorni offerto da K-Tech s.r.l. Il corso ha lo scopo di mostrare agli Application Server Administrator (ASA) cosa fare per rendere possibile la risoluzione dei problemi in breve tempo e cosa evitare attraverso il confronto dei risultati di queste azioni. Gli esempi pratici mostrano come applicare correttamente il metodo e selezionare gli strumenti più adatti in ogni singolo caso.
Per conoscere le iniziative di K-Tech seguiteci sul nostro sito: http://www.k-tech.it/
Recipe 16 of Data Warehouse and Business Intelligence - The monitoring of the...Massimo Cenci
For each calendar day, we must have clear what I expect to receive on that day and, for any given data file, what is the reference day that I expect to find inside.
There can be no doubt or ambiguity: is information that we need to know in advance and we have to configure.
Il controllo temporale dei data file in staging areaMassimo Cenci
Dobbiamo conoscere prima le precise caratteristiche temporali del data file che dobbiamo caricare nel Data Warehouse.
Per ogni giorno solare, dobbiamo avere chiaro quali data file mi aspetto di ricevere in quel giorno e, per ogni data file, quale è il giorno di riferimento dei dati che mi aspetto di trovare al suo interno
Recipe 12 of Data Warehouse and Business Intelligence - How to identify and c...Massimo Cenci
In a presentation of some time ago, I had highlighted the importance of the control
between the reference day and the expected one of a data file received from the host system.
Given the importance of the topic,
I would further deepen both the meaning of the control and the identification of the reference day of the data.
This argument may seem strange, or too technical, mainly for those who are
not very experienced about Data Warehouse but this is a very useful example to understand the
pitfalls inside the ETL process.
Recipes 10 of Data Warehouse and Business Intelligence - The descriptions man...Massimo Cenci
The descriptions management, is a subject little discussed within the Data Warehouse and Business Intelligence community. It speaks little in books and articles, although it is a crucial issue because it affects the way we see the information.
So, we'll talk about descriptions. In particular, the descriptions of the codes that we can found in the dimension tables of a Data Warehouse.
Data Warehouse - What you know about etl process is wrongMassimo Cenci
The document discusses redefining the typical ETL process. It argues that the traditional understanding of ETL, consisting of extraction, transformation, and loading, is misleading and does not accurately describe the workflow. Specifically, it notes that:
1) The extraction step is usually handled by external source systems, not the data warehouse team.
2) There is a missing configuration and data acquisition step before loading.
3) Transformation is better thought of as data enrichment rather than transformation.
4) The loading phase is unclear about where the data should be loaded.
It proposes redefining the process as configuration, acquisition, loading (to a staging area), enrichment, and final loading to the data warehouse.
The letter is from a program expressing sadness at being separated from its original programmer. It describes being carefully crafted by its programmer with passion and pride. However, one day a new stranger took over and began tearing it apart and mutilating its code, causing it to slow down and suffer. It now sees only anonymous cloned programs around it that run slowly. It knows its original programmer still dreams of it but feels without his love and care, it can no longer continue and it is time to die.
Recipes 9 of Data Warehouse and Business Intelligence - Techniques to control...Massimo Cenci
In the loading of a Data Warehouse is important to have full control of the processing units that compose it.
Each processing unit must be carefully monitored both in the detection of errors that may occur,
both in the analysis of the execution times
Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...Massimo Cenci
The naming convention is a key component of any IT project.
The purpose of this article is to suggest a standard for a practical and effective Data Warehouse design in Oracle environment
Oracle All-in-One - how to send mail with attach using oracle pl/sqlMassimo Cenci
Oracle All-in-One (All you need in only one slide)
OAiO1 - How to send mail with attach using Oracle plsql
The goal is to have in a single image all the objects involved
in a common need of a Data Warehouse in Oracle environment.
Recipes 6 of Data Warehouse and Business Intelligence - Naming convention tec...Massimo Cenci
The naming convention is a key component of any IT project.
The purpose of this article is to suggest a standard for a practical and effective Data Warehouse design
Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...Massimo Cenci
This document discusses best practices for managing NULL values in the ETL process for a data warehouse. It recommends:
1. Do not allow NULL values in the data warehouse and replace them with default values during the staging process. This avoids issues when querying or aggregating data.
2. Simplify data types and use consistent default values like '?' for text, 0 for numbers, and 99991231 for dates to replace NULLs.
3. Exceptions to the default values can be set based on business requirements and stored in configuration tables to generate dynamic SQL.
4. Create staging tables with default values set, load data from source systems while preserving the original values, then enrich the data with default values
Data Warehouse and Business Intelligence - Recipe 3Massimo Cenci
1) The document describes how to check that data loaded correctly from a source file to a staging table without using expensive ETL tools. It involves counting rows at each step and inserting the counts into check tables.
2) Key steps include writing a function to count rows in the source file, inserting counts of rows in the source file, external table, external view, and staging table into a detail check table.
3) A summary check is then performed by inserting the row counts from the detail table into a summary table along with a status of "OK" if all counts match or "NOT OK" otherwise.
Data Warehouse and Business Intelligence - Recipe 1
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
1. Pensare «Agile» deve essere una metodologia, una filosofia
progettuale da applicare a tutto il ciclo di vita
del progetto.
2. INTRODUZIONE
Un progetto di Data Warehouse e Business Intelligence, è un lavoro lungo e complesso che richiede molti
mesi, spesso anni, sopratutto se parliamo di Enterprise Data Warehouse, per poter vedere la luce.
Anzi, penso che dovremmo smettere di chiamarlo progetto, ma dovremmo chiamarlo Processo. Però non è
un processo qualunque: è il processo che trasforma i dati in conoscenza, la conoscenza in previsione, la
previsione in azione. Applichiamo per fare un esempio, questo processo al mondo CRM (Customer
Relationship Management).
I dati grezzi dei clienti che giungono da sistemi diversi, si trasformano nella maggiore conoscenza dei clienti
e delle loro preferenze. Dalla conoscenza dei clienti possiamo prevedere le loro attitudini future. La
conoscenza del futuro ci permette di agire per cambiarlo o adattarlo. Questo è quello che ci permette il
processo di Data Warehouse e Business Intelligence.
Potete bene immaginare come questo processo sia indispensabile per ogni azienda che voglia competere
sul mercato globale. Purtroppo quello che spaventa di più gli investimenti in progetti di Data Warehouse è il
tempo. Infatti il fattore tempo è cruciale, e nella frenetica vita odierna, non si vuole attendere e si cercano
scorciatoie per avere i risultati attesi nel più breve tempo possibile. Ecco perchè si parla di Agile Data
Warehouse.
COSA È E COSA NON È L'AGILE DATA WAREHOUSE
Chiariamo subito cosa non dovrebbe essere.
Non deve essere un prodotto commerciale o un tool venduto da qualche società.
Non deve essere un Database o un diverso design della struttura tabellare logica o fisica.
Deve essere una metodologia, anzi una filosofia progettuale da applicare a tutto il ciclo di vita del processo.
Poichè mi piace essere pragmatico, provo subito a entrare nella realtà del processo.
2Micro ETL Foundation
3. Idealmente e, molto semplicemente,possiamo suddividere un processo di Data Warehouse in tre macrofasi
principali.
Sottolineo semplicemente,perchè dietro queste macrofasi, ci sono numerose fasi progettuali che
conosciamo bene (raccolta dei requisiti, analisi, programmazione,..).
Build: Tutta l'attività di caricamento che porta alla fase di test.
Test: Tutta l'attività di verifica e controllo che, prima e dopo il deploy in produzione, termina con
l'accettazione del sistema fatta dagli utenti finali.
Maintenance and Iterative evolution: tutta l'attività inerente alla gestione e alla crescita del Data
Warehouse.
Per realizzare con successo un Processo di Agile Data Warehouse, dobbiamo essere «agile» in ognuna di
queste componenti.
3Micro ETL Foundation
Build Test
Maintenance
and Iterative
evolution
4. BUILD
Dobbiamo essere agile nella fase di costruzione. C'è poco da spiegare. Questa necessità si comprende
facilmente.Dobbiamo cercare di ridurre il più possibile i tempi del processo ETL che, storicamente, è la fase
più time-consuming del processo.
TEST
Dobbiamo essere agile nella fase di test e collaudo. Questa fase è critica perchè è la fase in cui gli utenti
finali iniziano a vedere i dati e iniziano a valutare il risultato ottenuto.
Questo significa essere rapidi nei tempi di risposta agli utenti finali. Attenzione. Non sto parlando dei tempi
di risposta dei report o delle query sul Data Warehouse (questo lo dò per scontato) ma nei tempi di risposta
alle cause di anomalie e problemi. Mi spiego meglio.
Come affermato all'inizio, dobbiamo essere agile in tutto il ciclo di vita del Data Warehouse. Molti
penseranno che essere agile significa solamente giungere al deply in produzione in tempi brevi.
In pratica riuscire ad accelerare il più possibile il processo ETL al fine di mettere a disposizione degli
utenti finali i Data Mart per le loro analisi. Ma questa è solo una parte della storia.
A mio avviso, il momento più importante in cui dobbiamo essere “agile” è DOPO avere concluso la parte di
build. Il vero successo del Data Warehouse dipenderà da quanto saremo veloci nel rispondere alle
domande degli utenti finali, alla loro contestazione dei dati visualizzati, nell’identificare i problemi del
processo di caricamento, nel sapere dove sono avvenuti e perché.
E dobbiamo essere agile nella risoluzione dei problemi.
MAINTENANCE AND ITERATIVE EVOLUTION
Infine dobbiamo essere agile nella manutenzione ed evoluzione iterativa. Questo vuol dire che dobbiamo
rispondere velocemente alle richieste di modifica del sistema e sopratutto della sua evoluzione. Non
dimentichiamo che è un processo.
4Micro ETL Foundation
5. Non dimentichiamo che sulla base di un Data Warehouse iniziale, poco per volta si aggiungeranno, nel
tempo, nuove dimensioni di analisi e nuovi Data Mart da analizzare. E molto probabilmente sarà
necessario aggiungere nuove informazioni alle Dimensioni e ai fatti già costruiti.
Spero che ora sia chiaro cosa vogliamo ottenere quando parliamo di agile Data Warehouse. Ma il punto
essenziale è come raggiungere questi obiettivi. Come detto precedentemente, non è necessario un
prodotto, ma solo una buona metodologia. Ecco alcuni consigli personali dettati dall'esperienza.
Possiamo agire su vari aspetti, molti dei quali sono già stati oggetto di riflessioni sul mio Blog o su
Slideshare.
AGILE NEL BUILD - NAMING CONVENTION
Non mi stancherò mai di sottolineare l’importanza di impostare una precisa naming convention per tutti gli
oggetti del progetto. Lo dobbiamo fare subito, prima di creare qualunque tipo di struttura informativa.
Questo ci permetterà di avere una visione chiara e una gestione semplificata di tutte le componenti logiche
e fisiche (tabelle, sequenze, viste, files, documentazione, ecc.) che costituiscono il Data Warehouse.
Non solo. Seguire una precisa naming convention ci permette di creare degli automatismi di
configurazione,creazione e controllo molto velocemente.
AGILE NEL BUILD – RIDUZIONE DELLA CATENA ELABORATIVA
Un altro punto da considerare è la filosofia di modellazione del Data Warehouse. Anzi, probabilmente è la
prima cosa da considerare. Non voglio entrare nello storico dibattito relativo all'approccio Inmon e
all'approccio Kimball.
Entrambi sono validi con i loro punti di forza e di debolezza.
5Micro ETL Foundation
6. Però se parliamo di "agile", per me la scelta dell'approccio Kimball è fondamentale. Tutto quello che mi
permette di ridurre la catena elaborativa e strutturale presente nel processo ETL è senza dubbio un fattore
importante.
Penso che avere un ODS (Operational Data Store), cioè in pratica una duplicazione storicizzata di quasi
tutte le strutture già presenti in Staging Area, prima delle strutture dedicate all'analisi, è una attività che
costa tempo e denaro.
AGILE NEL BUILD – SEMPLIFICAZIONE DEI TIPI
Un altro modo per essere “agile” è una conseguenza della regola generale di pensare sempre in modo
semplificato. Dobbiamo ridurre al minimo i tipi di dati (nel senso di database) presenti nel Data Warehouse.
Un RDBMS come Oracle, e lo stesso discorso vale per gli altri produttori, ha più di 30 tipi di dati diversi
(NUMBER di vario tipo, CHAR, VARCHAR, DATE, ecc).
Non possiamo pensare di avere questa varietà di tipi nel Data Warehouse. Troppe complicazioni nel loro
trattamento e conversione.
Provate a pensare ai flussi di alimentazione: tranne alcuni casi particolari, sono tutti files di testo.
A lunghezza fissa o con terminatore di colonna, sono sempre files che potete facilmente aprire con un
qualsiasi editor di testo. Il massimo della semplicità. Il mio consiglio è di mantenere quasi intatta questa
semplicità imponendo nel Data Warehouse solo due tipi di dato.
Numerico – solo per dati di tipo importo, quantità, percentuale, ecc.
Alfanumerico – per tutti gli altri dati.
Manteniamo il tipo di dato DATE solo per campi tecnici, tipo data di inserzione, ultimo aggiornamento,ecc.
Anche se nei sistemi alimentanti i dati che rappresentano dei codici, indicatori, flag, sono numerici,
manteniamoli alfanumerici nel Data Warehouse. Tutte i dati che rappresentano delle date, trasformiamoli
in alfanumerico e in formato standard YYYYMMDD.
6Micro ETL Foundation
7. AGILE NEL BUILD – SEQUENZIALITA’
Dobbiamo cercare di pensare, e nel 90% dei casi si può fare, che ogni componente del processo sia
collegata a quella successiva, e che la loro esecuzione sequenziale porti al caricamento finale del Data
Warehouse.
Intendiamoci, non sto dicendo che non è possibile il parallelismo, ma individuare quali componenti siano fra
loro completamente indipendenti al punto da poter girare in parallelo, non è un compito facile; senza
contare tutti i ragionamenti necessari alla loro sincronizzazione.
Inoltre il parallelismo richiede anche configurazioni hardware particolari e impostazioni del database
particolari per beneficiare effettivamente di un miglioramento delle performance che, parlo per esperienza,
non è affatto scontato.
Certamente, le tabelle dimensionali potrebbero essere caricate in parallelo (se non ci sono collegamenti
logici fra di loro) ,ma in ottica "agile" dobbiamo cercare di ragionare in modo semplice e sequenziale.
Non dimentichiamo che il processo ETL, per sua natura è fisiologicamente sequenziale. Non si può
caricare un Data Mart di livello 2 se prima non si sono caricati quelli di livello 1. Il Data Mart di livello 1 non
è caricabile se prima non si sono caricate le Dimensioni di analisi, che a loro volta, non si possono caricare
se non sono state caricate le tabelle di staging area, e così via.
AGILE NEL BUILD – RIDUZIONE DEI TOOL ESTERNI
E’ una scelta progettuale, dipendente da molti fattori, se e quale strumento utilizzare per l’implementazione
del Data Warehouse. Ogni Company ha le sue regole e, soprattutto un budget disponibile. Se avete molto
denaro a disposizione (e sopratutto un sacco di tempo nell'imparare a usarli) comprate pure i tool.
Se il vostro budget è scarso, il mio consiglio è quello di utilizzare il minor numero possibile di strumenti.
Spesso si tende a cercare strumenti specifici per fare lavori come quadrature, controlli di processo, controlli
di qualità, schedulazione, ecc.
7Micro ETL Foundation
8. Non dimentichiamo che ognuno di essi ha strutture proprie, che devono poi dialogare con tutte le altre,
aumentando la complessità dell’intero sistema.
La mia opinione è qualla di investire molto di più nell’avere una ottima conoscenza del linguaggio di
programmazione del Database ,un buon editor e un buona interfaccia di accesso al Database.
Questi tre elementi, da soli, ci faranno risparmiare molto tempo.
AGILE NEL TEST - CONFIGURATIONE E LOG
Per essere agile in questa fase, dobbiamo avere costruito un'architettura di controllo molto precisa. Ho già
scitto molto su come segnalare automaticamente le anomalie e avere il controllo dei moduli di un processo
ETL. Il mio consiglio è di avere sempre presente la magica coppia di strutture (tabelle): configurazione e
log. Al minimo:
Configurazione del caricamento della Staging Area - Log del caricamento della Staging Area
Configurazione del caricamento delle tabelle dimensionali - Log del caricamento tabelle dimensionali
Configurazione del caricamento delle tabelle dei fatti - Log del caricamento tabelle dei fatti.
AGILE NEL TEST – DATA LINEAGE
Avere una struttura di Data Lineage significa essere in grado di percorrere tutto il cammino della
informazione vista dall'utente finale, a ritroso fino all'origine del dato. Complicato, non sempre possibile
(vedi i dati calcolati) ma essenziale per dimostrare la correttezza del processo di caricamento.
Per dirla in parole povere, dobbiamo poter dimostrare che l'anomalia era già presente nel flusso
alimentante. Quindi sarà necessario utilizzare alcune tabelle di metadata per gestire il Data Lineage
8Micro ETL Foundation
9. AGILE NELLA MAINTENANCE AND ITERATIVE EVOLUTION - MODULARITÀ (E INCERTEZZA)
Per essere agile in questa fase dobbiamo essere modulari. E' l'incertezza che ci costringe a essere
modulari. Incertezza non nel senso che è ammesso essere incerti su come procedere, ma nel senso di
essere certi che qualcosa cambierà. Mi spiego meglio.
In un processo di Data Warehouse, è raro che tutte le logiche siano ben definite già dall’inizio. Non
bisogna necessariamente pensare a carenze di analisi (che spesso ci sono) o a errori nella raccolta dei
requisiti: il problema è che le logiche si evolvono man mano che si procede nel lavoro. Lo ritengo un
processo naturale, legato alla complessità del sistema, con cui si deve fare i conti senza drammi.
I sistemi alimentanti forniscono dei dati che non è detto siano precisamente quelli attesi dall’analisi, sia
come formato che come contenuto.
Questo spesso lo si scopre dopo, quando i dati iniziano ad essere analizzati (e quindi dopo averli caricati).
Gli utenti di business cambiano idea, a volte il business stesso cambia indirizzo. Si scopre, dopo,
che serviva anche un altro dato non previsto dall’analisi. Gli utenti vogliono fare il confronto anche con
altri dati che non erano stati previsti, ecc..
Esiste un detto molto eloquente relativo alle esigenze degli utenti finali. Il detto è: “I will know when I will
see”. Saprò quello che voglio quando lo vedrò. Assolutamente vero.
9Micro ETL Foundation
10. Questo ci obbliga a modificare continuamente i programmi per venire incontro alle nuove esigenze
progettuali. Logiche (e quindi programmi) da aggiungere, da modificare, da togliere; logiche che sono da
aggiungere ma, fra due mesi saranno da togliere, insomma, chiunque abbia un po’ di esperienza, avrà
sicuramente dovuto affrontare queste situazioni.
Per limitare le conseguenze dell’incertezza, è fondamentale il principio della modularità. Ecco perché a
ogni esigenza di business o di processo deve corrispondere una unica unità elaborativa, semplice o
complessa che sia.
Se devo caricare una tabella di Staging Area, ci deve essere uno più moduli che lo fanno, e fanno solo
quello. Se devo eseguire un controllo di quadratura fra 3 tabelle, deve esserci un modulo che lo fa, e fa
solo quello. Quando poi si scopre che le tabelle da controllare sono 4, aggiungerò nuovi moduli.
Se devo aggiungere il calcolo del prezzo di un prodotto finanziario derivato, ci deve essere un modulo che
lo fa; non importa se quel modulo lo mando a sviluppare a un programmatore che vive in un’altra parte del
mondo. L’importante è la immediatezza con cui lo inserisco nel sistema.
In questo modo non pretendo di eliminare l’incertezza, ma con la modularità la gestisco meglio.
AGILE NELLA MAINTENANCE AND ITERATIVE EVOLUTION – INDIPENDENZA DAL CONTESTO
L'ultimo consiglio è l’indipendenza dal contesto, cioè la netta separazione fra il business e l'infrastruttura.
La avete già vista in azione in alcuni miei articoli precedenti. Le semplici tecniche esposte di messaggistica
e controllo sono indipendenti dal contesto. Sono infrastruttura, non business. Che il business legato al Data
Warehouse sia in ambito finanziario, automotive, o per la grande distribuzione organizzata, non influenza
minimamente l’utilizzo di quelle tecniche.
Esse utilizzano tabelle di configurazione e di log assolutamente indipendenti dal contesto in cui lavorano.
Questo ci permette, per esempio, di aggiungere un nuovo Data Mart concentrandoci esclusivamente sul
business legato al Data Mart ,riutilizzando tutto il software indipenedente dal contesto per il monitoraggio
del processo.
10Micro ETL Foundation
11. 11Micro ETL Foundation
Build
Maintenance and
Iterative evolution
Test
Data Lineage
Modularità
Configuratione e log
Riduzione della catena
elaborativa
Naming Convention
Semplificazione dei tipi dato
Sequenzialità
Riduzione dei tool esterni
Indipendenza dal contesto
Agile
Agile
Agile
12. 12Micro ETL Foundation
CONCLUSIONE
Essere agile in un processo o progetto di Data Warehouse e Business Intelligence è possibile. Bisogna
solo farsi guidare da una corretta metodologia che ho cercato di riassumere nei punti descritti.
RIFERIMENTI
http://www.slideshare.net/jackbim/tecniche-di-naming-convention-parte-1
http://www.slideshare.net/jackbim/tecniche-di-naming-convention-parte-2
http://www.slideshare.net/jackbim/note-di-data-warehouse-e-business-intelligence-il-sistema-di-messaggistica-1
http://www.slideshare.net/jackbim/note-di-data-warehouse-e-business-intelligence-il-sistema-di-messaggistica-2
http://www.slideshare.net/jackbim/recipe-9-techniques-to-control-the-processing-units-in-the-etl-process