SlideShare a Scribd company logo
1 of 32
Download to read offline
ETL Basics
Ing. Franco Morelli
ETL
ETL
❏ Estrarre i dati dalla sorgente e caricarli nel datawarehouse – alla fine è una
sofisticata copia di dati da una base di dati ad un’altra
❏ I dati sono estratti da sistemi OLTP, trasformati per conformarsi allo schema
del datawarehouse e caricati nel database del datawarehouse
❏ Molti datawarehouse incorporano dati da sistemi non relazionali come file di
testo, fogli di calcolo e sistemi legacy; questi dati necessitano di
trasformazioni
❏ Quanto si progetta un ETL per una datawarehouse è bene pensarlo come un
processo, non una semplice implementazione tecnica
ETL
❏ ETL è spesso una combinazione di tecnologia e processo ed impegna una
parte rilevante nello sviluppo di un datawarehouse. Servono competenze da
analista, progettista di database e sviluppatore
❏ La progettazione di un processo ETL non è one-shot. Va rivisita nel tempo
mano a mano che nuovo dati vengono richiesti o che variano le fonti
❏ Siccome un sistema ETL è una parte viva e importante di un datawarehouse
esso deve essere
– Automatizzato – Ben documentato – Facilmente modificabile
Database intermedio
❏ Le operazioni di ETL andrebbero eseguite su un apposito database separato
da quello OLTP e da quello OLAP
❏ In questo modo si crea un confine fisico oltre che logico tra sorgenti e
datawarehouse
❏ Consente di minimizzare l’impatto sulle performance dei lunghi processi batch
ETL
Estrazione
❏ L’integrazione di tutte le fonti presenti è la cosa veramente difficile di un
progetto di datawarehouse
❏ I dati sono estratti da fonti eterogenee
❏ Ogni sorgente ha le proprie caratteristiche peculiari che necessitano di essere
gestite singolarmente al fine di estrarre i dati efficacemente
Estrazione
❏ ETL deve integrare sistemi che differiscono per: DBMS - Operating Systems -
Hardware - Communication protocols
❏ E’ necessario avere una mappatura logica prima di lanciarsi nella
implementazione
❏ La mappa logica deve aiutare a collegare concettualmente la prima sorgente
dei dati con l’ultima destinazione nel datawarehouse
Estrazione
❏ Il documento che descrive la mappa logica è l’elemento critico per la
pianificazione di un processo ETL
❏ L’obiettivo principale del documento è di dare allo sviluppatore un riferimento
chiaro e non ambiguo sul corso delle azioni coinvolte nella trasformazione
❏ Per ciascun sorgente->destinazione, il documento contiene la descrizione
trasformazione da applicare, definita con il livello di dettaglio sufficiente
Sorgente
Nome Tabella
Nome Colonna
Tipo di dato
Destinazione
Nome Tabella
Nome Colonna
Tipo di dato
Trasformazione
da applicare
Estrazione - Analisi della sorgente
L’analisi della sorgente,per ciascuna sorgente, è solitamente divisa in 2 fasi :
❏ La perlustrazione dei dati
❏ La rilevazione delle anomalie sui dati
Estrazione - Perlustrazione dei dati
❏ E’ molto importante che il datawarehouse che progettiamo contenga dati puliti
e coesi
❏ Con questo obiettivo in testa, sapendo quindi come deve essere la
destinazione, si può cominciare a perlustrare la sorgente
Estrazione - Rilevazione anomalie
Capire il contenuto della base dei dati è determinante per pianificare l’estrazione
Esempi
- Valori NULL. Un valore NULL non gestito può inficiare un progetto intero. I
NULL sono massimamente un rischio quando sono in chiavi straniere, fare
una join su colonne con NULL rischia di fare perdere dati. Occorre individuare
tutti i NULL foreign, se ci sono, allora occorre usare outer joins
- Date in colonne non data. Le date sono un tipo di dato che presenta vari
formati possibili, questa condizione presenta elementi di attenzione.
Fortunatamente la maggior parte dei DBMS gestisce gran parte dei formati.
Estrazione - Caricamento iniziale
❏ Durante il caricamento iniziale non importa rilevare variazioni dei dati poichè
ci apprestiamo a estrarre un intero database da una certa data in poi
❏ Successivamente la possibilità di rilevare variazione dei dati diviene
importante
❏ A regime il caricamento diventa incrementale
Estrazione - Rilevamento dei cambiamenti
❏ Quando si estrae da un DB ci si può affidare a colonne di audit che
memorizzano data e ora del cambiamento su una certa riga
❏ Diversamente occorre individuare se vi sono colonne che siano buoni
‘stimatori’ della variazione
Estrazione - Rilevamento dei cambiamenti
❏ Un metodo alternativo di rilevamento dei cambiamenti
- Mantenere una copia della precedente estrazione in una area di stage
- Durante la successiva esecuzione il processo prende tutte le tabelle sorgente
nell’area di stage e fa il confronto con i dati mantenuti
- Solo i delta sono mandati in trasformazione
- Non è un metodo particolarmente efficiente ma è assai affidabile
Trasformazione
❏ La fase principale di aggiunta di valore in un processo ETL
❏ Mixa i dati per l’utilizzo vero e proprio
❏ Viene eseguita nell’area di stage
Trasformazione - Data Quality
❏ Correttezza
❏ Non ambiguità
❏ Consistenza
❏ Completezza
Il controllo di qualità avviene solitamente dopo l’estrazione e dopo la staging area
in trasformazione
Trasformazione - Data quality
❏ Rilevamento delle anomalie
-Campionamento dei dati. Es. conteggio delle righe per una colonna
‘dipartimento’
❏ Correzione di anomalie di campo
- Valori NULL in colonne richieste
- Valori numerici fuori range minmax
- Campi con lunghezze troppo lunghe-corte
- Appartenenza ad un set
Trasformazione - Data quality
Compromesso tra velocità dell’ETL e precisione dei quality
check
Trasformazione - Data quality
❏ Anomalie di struttura
- Chiave primaria e chiave straniera ok
- Integrità referenziale
❏ Anomalie di regole di dominio
- Regole di dominio
- Check logici
Trasformazione - Data quality
Quality check Stage area
Quality check
confirmation
Blocking
errors
Stop
Load
yes
no
Caricamento - Dimensioni
❏ Set minimo di componenti
❏ Chiave primaria è una chiave surrogata
❏ La chiave surrogata è di completo dominio del datawarehouse, nessun altro
interviene
❏ Contiene uno o più campi che compongono la chiave primaria naturale della
dimensione
❏ Denormalizzate sugli attributi - trade off
Caricamento - Dimensioni
Caricamento - Responsabilità
❏ Gestione delle slowly changing dimensions
❏ Generazione delle chiavi surrogate
❏ Finalizzazione delle tabelle e messa online del risultato definitivo
Caricamento - SCD
❏ Tipo1
❏ Tipo2
❏ Tipo3
Caricamento - SCD Tipo 1
Caricamento - SCD Tipo 2
Caricamento - SCD Tipo 3
Caricamento - Fact Table
❏ Facts
La tabella dei fatti contiene le misure di interesse. La relazione tra tabella dei
fatti e misurazione è triviale.
Se una misurazione esiste allora può essere modellata come riga di una
tabella dei fatti. Se una riga della tabella dei fatti esiste, allora essa è una
misurazione
Caricamento - Fact Table - Chiave
Quando si costruisce una fact table il passo finale dell’ ETL è la conversione delle
chiavi naturali nelle nuove chiavi surrogate
Esiste una chiave surrogata per ogni dimensione
Le tabelle di lookup dovrebbero risiedere tutte in memoria, per rendere il match
veloce. E’ una delle ragioni per cui tenere le tabelle di lookup separate dalle
originale tabelle delle dimensioni
Caricamento - Generazione chiave
Caricamento - Fact table
Gestione degli indici
- Influiscono negativamente in fase di load
- Occorrerebbe elminanarli prima del load iniziale
- Rebuild
Partizioni
- Permettono a una tabella (e ai suoi indici) di essere fisicamente separata in
chunks per ottimiazzre le qry
- Il metodo più comune di partizionamento della tabella dei fatti è per la chiave
date
Caricamento - Rollaback log
- Il log di rollback (redo) è usato per i sistemi transazionali. in un DWH è inutile
e rallenta il funzionamento
tutti i dati sono inseriti da un solo processo , l’ETL
i dati sono caricati in bulk
i dati possono essere facilmente ricaricati se qualcosa va storto

More Related Content

Similar to ETL basics

Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologicoConsulthinkspa
 
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biBig data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biMarco Pozzan
 
Data profiling
Data profilingData profiling
Data profilingdodo_91
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.pptssuserf7962d
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
 
Presentazione Nuvola Vertica Light
Presentazione Nuvola Vertica LightPresentazione Nuvola Vertica Light
Presentazione Nuvola Vertica LightAlberto.F
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Fabio Armani
 
Alfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Software
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL ServerGianluca Hotz
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologicoMassimo Romano
 
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Andrea Cannella
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkAlessio Biasiutti
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalGiuliano Latini
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisGianluca Sartori
 
Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...
Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...
Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...Massimo Cenci
 
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Massimo Cenci
 
Talend Open Studio for Data Integration
Talend Open Studio for Data IntegrationTalend Open Studio for Data Integration
Talend Open Studio for Data IntegrationAlessandro Gonella
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
 
Data Profiling with Metanome
Data Profiling with MetanomeData Profiling with Metanome
Data Profiling with MetanomeMatteo Senardi
 

Similar to ETL basics (20)

Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologico
 
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biBig data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
 
Data profiling
Data profilingData profiling
Data profiling
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.ppt
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
 
Presentazione Nuvola Vertica Light
Presentazione Nuvola Vertica LightPresentazione Nuvola Vertica Light
Presentazione Nuvola Vertica Light
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
 
Alfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big Repository
 
Database Data Aggregator
Database Data AggregatorDatabase Data Aggregator
Database Data Aggregator
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL Server
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
 
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with Spark
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposal
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload Analysis
 
Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...
Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...
Data Warehouse e Business Intelligence in ambiente Oracle - Il sistema di mes...
 
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
 
Talend Open Studio for Data Integration
Talend Open Studio for Data IntegrationTalend Open Studio for Data Integration
Talend Open Studio for Data Integration
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studio
 
Data Profiling with Metanome
Data Profiling with MetanomeData Profiling with Metanome
Data Profiling with Metanome
 

More from Franco Morelli

Open data per capire i bilanci pubblici
Open data per capire i bilanci pubbliciOpen data per capire i bilanci pubblici
Open data per capire i bilanci pubbliciFranco Morelli
 
Open data e turismo 2a Edizione
Open data e turismo 2a EdizioneOpen data e turismo 2a Edizione
Open data e turismo 2a EdizioneFranco Morelli
 
Etl per portali open data
Etl per portali open dataEtl per portali open data
Etl per portali open dataFranco Morelli
 
Open data beni comuni digitali
Open data beni comuni digitaliOpen data beni comuni digitali
Open data beni comuni digitaliFranco Morelli
 
Mappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su OpenstreetmapMappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su OpenstreetmapFranco Morelli
 
Open data per il cittadino
Open data per il cittadinoOpen data per il cittadino
Open data per il cittadinoFranco Morelli
 
Civic hacking in equilibrio
Civic hacking in equilibrioCivic hacking in equilibrio
Civic hacking in equilibrioFranco Morelli
 
#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15Franco Morelli
 
Cultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della culturaCultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della culturaFranco Morelli
 
Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?Franco Morelli
 
Come spende i soldi il mio comune
Come spende i soldi il mio comuneCome spende i soldi il mio comune
Come spende i soldi il mio comuneFranco Morelli
 
Opendata liberare i dati di bilancio di un comune
Opendata   liberare i dati di bilancio di un comuneOpendata   liberare i dati di bilancio di un comune
Opendata liberare i dati di bilancio di un comuneFranco Morelli
 

More from Franco Morelli (16)

Web services
Web servicesWeb services
Web services
 
Java basics
Java basicsJava basics
Java basics
 
Open data per capire i bilanci pubblici
Open data per capire i bilanci pubbliciOpen data per capire i bilanci pubblici
Open data per capire i bilanci pubblici
 
Open data e turismo 2a Edizione
Open data e turismo 2a EdizioneOpen data e turismo 2a Edizione
Open data e turismo 2a Edizione
 
Etl per portali open data
Etl per portali open dataEtl per portali open data
Etl per portali open data
 
Open data e turismo
Open data e turismoOpen data e turismo
Open data e turismo
 
Open data beni comuni digitali
Open data beni comuni digitaliOpen data beni comuni digitali
Open data beni comuni digitali
 
Open data e business
Open data e businessOpen data e business
Open data e business
 
Mappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su OpenstreetmapMappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su Openstreetmap
 
Open data per il cittadino
Open data per il cittadinoOpen data per il cittadino
Open data per il cittadino
 
Civic hacking in equilibrio
Civic hacking in equilibrioCivic hacking in equilibrio
Civic hacking in equilibrio
 
#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15
 
Cultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della culturaCultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della cultura
 
Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?
 
Come spende i soldi il mio comune
Come spende i soldi il mio comuneCome spende i soldi il mio comune
Come spende i soldi il mio comune
 
Opendata liberare i dati di bilancio di un comune
Opendata   liberare i dati di bilancio di un comuneOpendata   liberare i dati di bilancio di un comune
Opendata liberare i dati di bilancio di un comune
 

ETL basics

  • 2. ETL
  • 3. ETL ❏ Estrarre i dati dalla sorgente e caricarli nel datawarehouse – alla fine è una sofisticata copia di dati da una base di dati ad un’altra ❏ I dati sono estratti da sistemi OLTP, trasformati per conformarsi allo schema del datawarehouse e caricati nel database del datawarehouse ❏ Molti datawarehouse incorporano dati da sistemi non relazionali come file di testo, fogli di calcolo e sistemi legacy; questi dati necessitano di trasformazioni ❏ Quanto si progetta un ETL per una datawarehouse è bene pensarlo come un processo, non una semplice implementazione tecnica
  • 4. ETL ❏ ETL è spesso una combinazione di tecnologia e processo ed impegna una parte rilevante nello sviluppo di un datawarehouse. Servono competenze da analista, progettista di database e sviluppatore ❏ La progettazione di un processo ETL non è one-shot. Va rivisita nel tempo mano a mano che nuovo dati vengono richiesti o che variano le fonti ❏ Siccome un sistema ETL è una parte viva e importante di un datawarehouse esso deve essere – Automatizzato – Ben documentato – Facilmente modificabile
  • 5. Database intermedio ❏ Le operazioni di ETL andrebbero eseguite su un apposito database separato da quello OLTP e da quello OLAP ❏ In questo modo si crea un confine fisico oltre che logico tra sorgenti e datawarehouse ❏ Consente di minimizzare l’impatto sulle performance dei lunghi processi batch ETL
  • 6. Estrazione ❏ L’integrazione di tutte le fonti presenti è la cosa veramente difficile di un progetto di datawarehouse ❏ I dati sono estratti da fonti eterogenee ❏ Ogni sorgente ha le proprie caratteristiche peculiari che necessitano di essere gestite singolarmente al fine di estrarre i dati efficacemente
  • 7. Estrazione ❏ ETL deve integrare sistemi che differiscono per: DBMS - Operating Systems - Hardware - Communication protocols ❏ E’ necessario avere una mappatura logica prima di lanciarsi nella implementazione ❏ La mappa logica deve aiutare a collegare concettualmente la prima sorgente dei dati con l’ultima destinazione nel datawarehouse
  • 8. Estrazione ❏ Il documento che descrive la mappa logica è l’elemento critico per la pianificazione di un processo ETL ❏ L’obiettivo principale del documento è di dare allo sviluppatore un riferimento chiaro e non ambiguo sul corso delle azioni coinvolte nella trasformazione ❏ Per ciascun sorgente->destinazione, il documento contiene la descrizione trasformazione da applicare, definita con il livello di dettaglio sufficiente Sorgente Nome Tabella Nome Colonna Tipo di dato Destinazione Nome Tabella Nome Colonna Tipo di dato Trasformazione da applicare
  • 9. Estrazione - Analisi della sorgente L’analisi della sorgente,per ciascuna sorgente, è solitamente divisa in 2 fasi : ❏ La perlustrazione dei dati ❏ La rilevazione delle anomalie sui dati
  • 10. Estrazione - Perlustrazione dei dati ❏ E’ molto importante che il datawarehouse che progettiamo contenga dati puliti e coesi ❏ Con questo obiettivo in testa, sapendo quindi come deve essere la destinazione, si può cominciare a perlustrare la sorgente
  • 11. Estrazione - Rilevazione anomalie Capire il contenuto della base dei dati è determinante per pianificare l’estrazione Esempi - Valori NULL. Un valore NULL non gestito può inficiare un progetto intero. I NULL sono massimamente un rischio quando sono in chiavi straniere, fare una join su colonne con NULL rischia di fare perdere dati. Occorre individuare tutti i NULL foreign, se ci sono, allora occorre usare outer joins - Date in colonne non data. Le date sono un tipo di dato che presenta vari formati possibili, questa condizione presenta elementi di attenzione. Fortunatamente la maggior parte dei DBMS gestisce gran parte dei formati.
  • 12. Estrazione - Caricamento iniziale ❏ Durante il caricamento iniziale non importa rilevare variazioni dei dati poichè ci apprestiamo a estrarre un intero database da una certa data in poi ❏ Successivamente la possibilità di rilevare variazione dei dati diviene importante ❏ A regime il caricamento diventa incrementale
  • 13. Estrazione - Rilevamento dei cambiamenti ❏ Quando si estrae da un DB ci si può affidare a colonne di audit che memorizzano data e ora del cambiamento su una certa riga ❏ Diversamente occorre individuare se vi sono colonne che siano buoni ‘stimatori’ della variazione
  • 14. Estrazione - Rilevamento dei cambiamenti ❏ Un metodo alternativo di rilevamento dei cambiamenti - Mantenere una copia della precedente estrazione in una area di stage - Durante la successiva esecuzione il processo prende tutte le tabelle sorgente nell’area di stage e fa il confronto con i dati mantenuti - Solo i delta sono mandati in trasformazione - Non è un metodo particolarmente efficiente ma è assai affidabile
  • 15. Trasformazione ❏ La fase principale di aggiunta di valore in un processo ETL ❏ Mixa i dati per l’utilizzo vero e proprio ❏ Viene eseguita nell’area di stage
  • 16. Trasformazione - Data Quality ❏ Correttezza ❏ Non ambiguità ❏ Consistenza ❏ Completezza Il controllo di qualità avviene solitamente dopo l’estrazione e dopo la staging area in trasformazione
  • 17. Trasformazione - Data quality ❏ Rilevamento delle anomalie -Campionamento dei dati. Es. conteggio delle righe per una colonna ‘dipartimento’ ❏ Correzione di anomalie di campo - Valori NULL in colonne richieste - Valori numerici fuori range minmax - Campi con lunghezze troppo lunghe-corte - Appartenenza ad un set
  • 18. Trasformazione - Data quality Compromesso tra velocità dell’ETL e precisione dei quality check
  • 19. Trasformazione - Data quality ❏ Anomalie di struttura - Chiave primaria e chiave straniera ok - Integrità referenziale ❏ Anomalie di regole di dominio - Regole di dominio - Check logici
  • 20. Trasformazione - Data quality Quality check Stage area Quality check confirmation Blocking errors Stop Load yes no
  • 21. Caricamento - Dimensioni ❏ Set minimo di componenti ❏ Chiave primaria è una chiave surrogata ❏ La chiave surrogata è di completo dominio del datawarehouse, nessun altro interviene ❏ Contiene uno o più campi che compongono la chiave primaria naturale della dimensione ❏ Denormalizzate sugli attributi - trade off
  • 23. Caricamento - Responsabilità ❏ Gestione delle slowly changing dimensions ❏ Generazione delle chiavi surrogate ❏ Finalizzazione delle tabelle e messa online del risultato definitivo
  • 24. Caricamento - SCD ❏ Tipo1 ❏ Tipo2 ❏ Tipo3
  • 28. Caricamento - Fact Table ❏ Facts La tabella dei fatti contiene le misure di interesse. La relazione tra tabella dei fatti e misurazione è triviale. Se una misurazione esiste allora può essere modellata come riga di una tabella dei fatti. Se una riga della tabella dei fatti esiste, allora essa è una misurazione
  • 29. Caricamento - Fact Table - Chiave Quando si costruisce una fact table il passo finale dell’ ETL è la conversione delle chiavi naturali nelle nuove chiavi surrogate Esiste una chiave surrogata per ogni dimensione Le tabelle di lookup dovrebbero risiedere tutte in memoria, per rendere il match veloce. E’ una delle ragioni per cui tenere le tabelle di lookup separate dalle originale tabelle delle dimensioni
  • 31. Caricamento - Fact table Gestione degli indici - Influiscono negativamente in fase di load - Occorrerebbe elminanarli prima del load iniziale - Rebuild Partizioni - Permettono a una tabella (e ai suoi indici) di essere fisicamente separata in chunks per ottimiazzre le qry - Il metodo più comune di partizionamento della tabella dei fatti è per la chiave date
  • 32. Caricamento - Rollaback log - Il log di rollback (redo) è usato per i sistemi transazionali. in un DWH è inutile e rallenta il funzionamento tutti i dati sono inseriti da un solo processo , l’ETL i dati sono caricati in bulk i dati possono essere facilmente ricaricati se qualcosa va storto