introduction to datawarehouse

49
www.devleap.it MCSD MCAD MCSE+I MCSA MCDBA MCT MCSD MCAD MCSE+I MCSA MCDBA MCT Introduzione alla Introduzione alla realizzazione di realizzazione di Data Warehouse con Data Warehouse con Microsoft SQL Microsoft SQL Server Server

Upload: teseoguerra

Post on 09-Aug-2015

36 views

Category:

Documents


0 download

DESCRIPTION

Introduction to DataWarehouse

TRANSCRIPT

Page 1: Introduction to DataWarehouse

www.devleap.it

MCSD MCAD MCSE+I MCSA MCDBA MCSD MCAD MCSE+I MCSA MCDBA MCTMCT

Introduzione alla Introduzione alla realizzazione direalizzazione di

Data Warehouse con Data Warehouse con Microsoft SQL Microsoft SQL

ServerServer

Page 2: Introduction to DataWarehouse

www.devleap.it

Chi siamoChi siamo

www.DevLeap.itwww.DevLeap.itUn gruppo di 5 persone con tanta voglia Un gruppo di 5 persone con tanta voglia

didiStudiare a fondo le tecnologieStudiare a fondo le tecnologieCapire il “behind the scenes”Capire il “behind the scenes”Implementare soluzioni realiImplementare soluzioni realiConfrontarsi con le problematiche realiConfrontarsi con le problematiche realiSperimentare nuove ideeSperimentare nuove idee

Facciamo Corsi, Conferenze, TrainingFacciamo Corsi, Conferenze, Training

Page 3: Introduction to DataWarehouse

www.devleap.it

AgendaAgenda

Modellazione di un DataWarehouseModellazione di un DataWarehouse Data Warehouse e Data Mart Data Warehouse e Data Mart Componenti di un modello di Data Componenti di un modello di Data

Warehouse Warehouse Differenze tra DB relazionali normalizzati Differenze tra DB relazionali normalizzati

e Data Warehouse e Data Warehouse Star Schema e Snowflake Schema Star Schema e Snowflake Schema

Page 4: Introduction to DataWarehouse

www.devleap.it

ModellazioneModellazioneData WarehouseData Warehouse

Page 5: Introduction to DataWarehouse

www.devleap.it

Data WarehouseData Warehouse

Magazzino di dati a livello di impresaMagazzino di dati a livello di impresa Insieme di strumenti per convertire un Insieme di strumenti per convertire un

vasto insieme di dati in informazioni vasto insieme di dati in informazioni utilizzabili dall’utenteutilizzabili dall’utente

Obiettivi:Obiettivi: Possibilità di accedere a tutti i dati Possibilità di accedere a tutti i dati

dell’impresa, centralizzati in un solo dell’impresa, centralizzati in un solo databasedatabase

Coerenza e consolidamento dei datiCoerenza e consolidamento dei dati Velocità nell’accesso alle informazioniVelocità nell’accesso alle informazioni Supporto per l’analisi dei datiSupporto per l’analisi dei dati

Page 6: Introduction to DataWarehouse

www.devleap.it

Data MartData Mart

Magazzino di dati a livello Magazzino di dati a livello dipartimentaledipartimentale

E’ un segmento di un Data WarehouseE’ un segmento di un Data Warehouse E’ fisicamente realizzato come un Data E’ fisicamente realizzato come un Data

Warehouse, ma con una finalità più Warehouse, ma con una finalità più ristretta:ristretta: I dati coprono solo alcune aree aziendaliI dati coprono solo alcune aree aziendali

(ad es. vendite)(ad es. vendite) Minori costi di realizzazioneMinori costi di realizzazione Risultati più vicini nel tempoRisultati più vicini nel tempo

Page 7: Introduction to DataWarehouse

www.devleap.it

Data Warehouse vs. Data MartData Warehouse vs. Data Mart

Il Data Warehouse è un progetto più Il Data Warehouse è un progetto più vasto, complesso e costoso, ma vasto, complesso e costoso, ma garantisce maggiore coerenza dei datigarantisce maggiore coerenza dei dati

Da un Data Warehouse si possono Da un Data Warehouse si possono ricavare velocemente dei Data Mart ricavare velocemente dei Data Mart (top-down)(top-down)

Si può costruire un Data Warehouse Si può costruire un Data Warehouse unendo più Data Mart realizzati nel unendo più Data Mart realizzati nel tempo (bottom-up)tempo (bottom-up)

Page 8: Introduction to DataWarehouse

www.devleap.it

Finalità di un Data WarehouseFinalità di un Data Warehouse

Strumento di supporto decisionaleStrumento di supporto decisionale Base informativa per costruire sistemi Base informativa per costruire sistemi

di analisi e previsione:di analisi e previsione: ReportsReports On-Line Analytical Processing (OLAP)On-Line Analytical Processing (OLAP) Data MiningData Mining

Page 9: Introduction to DataWarehouse

www.devleap.it

ReportReport

Report che analizzano i dati con una certa Report che analizzano i dati con una certa profondità storicaprofondità storica

Possono richiedere tempi di elaborazione Possono richiedere tempi di elaborazione elevati se i dati vanno aggregatielevati se i dati vanno aggregati

Spesso ottenibili con soluzioni OLAP Spesso ottenibili con soluzioni OLAP (minore tempo di elaborazione)(minore tempo di elaborazione)

Page 10: Introduction to DataWarehouse

www.devleap.it

Cosa è OLAPCosa è OLAP

OLAP: On Line Analytical ProcessingOLAP: On Line Analytical ProcessingÈ una tecnologia di Business È una tecnologia di Business

IntelligenceIntelligenceSinonimo di termini usati in Sinonimo di termini usati in

precedenza:precedenza:DSS: Decision Support SystemDSS: Decision Support SystemEIS: Executive Information SystemEIS: Executive Information System

OLAP = vista multidimensionale sui datiOLAP = vista multidimensionale sui dati

Page 11: Introduction to DataWarehouse

www.devleap.it

On-Line Analytical Processing On-Line Analytical Processing (OLAP)(OLAP)

I dati, strutturati per dimensioni, I dati, strutturati per dimensioni, vengono esaminati a diversi livelli di vengono esaminati a diversi livelli di dettaglio (tramite aggregazione e drill-dettaglio (tramite aggregazione e drill-down)down)

Viene anche chiamata analisi multi-Viene anche chiamata analisi multi-dimensionale dei datidimensionale dei dati

Può produrre report stampati, ma è Può produrre report stampati, ma è prima di tutto una funzionalità prima di tutto una funzionalità interattiva (come le Pivot Table)interattiva (come le Pivot Table)

Consente di verificare velocemente Consente di verificare velocemente ipotesi formulate dall’utenteipotesi formulate dall’utente

Page 12: Introduction to DataWarehouse

www.devleap.it

Data MiningData Mining

Tecniche per aiutare gli utenti ad estrarre Tecniche per aiutare gli utenti ad estrarre informazioni utili da informazioni utili da grandigrandi database database

L’utente finale non deve essere un L’utente finale non deve essere un esperto di statisticaesperto di statistica

Utilizzato per generare ipotesiUtilizzato per generare ipotesi

Page 13: Introduction to DataWarehouse

www.devleap.it

Caratteristiche di un Data Caratteristiche di un Data WarehouseWarehouse

E’ un archivio di dati con le seguenti E’ un archivio di dati con le seguenti caratteristiche:caratteristiche: subject orientedsubject oriented integratedintegrated nonvolatilenonvolatile time varianttime variant

Page 14: Introduction to DataWarehouse

www.devleap.it

Definizione di un Data WarehouseDefinizione di un Data Warehouse

E’ il processo più lungo e costoso:E’ il processo più lungo e costoso: Identificare gli obiettivi di businessIdentificare gli obiettivi di business Raccogliere ed analizzare informazioniRaccogliere ed analizzare informazioni Definire il modello di datiDefinire il modello di dati Identificare le fonti di datiIdentificare le fonti di dati Definire le trasformazioni necessarie a Definire le trasformazioni necessarie a

consolidare i daticonsolidare i dati Stabilire profondità temporale, creare una Stabilire profondità temporale, creare una

base storicabase storica

Page 15: Introduction to DataWarehouse

www.devleap.it

Identificare gli obiettiviIdentificare gli obiettivi

Il Data Warehouse è uno strumento di Il Data Warehouse è uno strumento di supporto alle decisioni: l’utente è in supporto alle decisioni: l’utente è in genere il management aziendalegenere il management aziendale

Bisogna individuare i fatti di rilievo Bisogna individuare i fatti di rilievo per i decision-maker, non per per i decision-maker, non per l’operatività quotidianal’operatività quotidiana

Acquisire la visione aziendale del Acquisire la visione aziendale del managementmanagement

Page 16: Introduction to DataWarehouse

www.devleap.it

Raccogliere informazioniRaccogliere informazioni

Spesso le informazioni necessarie sono già Spesso le informazioni necessarie sono già raccolte e presentate in qualche reportraccolte e presentate in qualche report

Chiedere ai decision-maker di compilare Chiedere ai decision-maker di compilare tabelle excel con le informazioni che tabelle excel con le informazioni che vorrebbero averevorrebbero avere

Page 17: Introduction to DataWarehouse

www.devleap.it

Definire il modello di datiDefinire il modello di dati

Identificare gli eventi da misurare:Identificare gli eventi da misurare: VenditeVendite Chiamate al customer-serviceChiamate al customer-service Interventi di assistenzaInterventi di assistenza ProduzioneProduzione

Mantenere flessibilità per il futuro:Mantenere flessibilità per il futuro: Nuovi prodottiNuovi prodotti Nuovi centri assistenzaNuovi centri assistenza Nuove linee di produzioneNuove linee di produzione

Page 18: Introduction to DataWarehouse

www.devleap.it

Identificare le fonti datiIdentificare le fonti dati

In una grande azienda sono spesso In una grande azienda sono spesso fonti eterogeneefonti eterogenee

Molti dati possono risiedere su archivi Molti dati possono risiedere su archivi non strutturati:non strutturati: Fogli ExcelFogli Excel E-mailE-mail

Individuare le modalità di accesso Individuare le modalità di accesso periodico alle fonti dati per alimentare periodico alle fonti dati per alimentare il Data Warehouseil Data Warehouse

Page 19: Introduction to DataWarehouse

www.devleap.it

Consolidare i datiConsolidare i dati

Decidere le trasformazioni da applicare Decidere le trasformazioni da applicare ai dati per eliminare le differenze di:ai dati per eliminare le differenze di: valutavaluta notazione metricanotazione metrica fiscalifiscali memorizzazione fisica (tipo dei dati)memorizzazione fisica (tipo dei dati)

Definire un processo automatico e Definire un processo automatico e ripetibile di trasformazione dei datiripetibile di trasformazione dei dati

Page 20: Introduction to DataWarehouse

www.devleap.it

Base storicaBase storica

Prima che il Data Warehouse diventi Prima che il Data Warehouse diventi operativo, è probabile che esistano operativo, è probabile che esistano delle operazioni una-tantum per delle operazioni una-tantum per creare una base storica inizialecreare una base storica iniziale

Le trasformazioni iniziali possono Le trasformazioni iniziali possono differire da quelle periodiche di un differire da quelle periodiche di un sistema in produzione:sistema in produzione: mole di dati da trasferiremole di dati da trasferire aggiornamento completo vs. incrementaleaggiornamento completo vs. incrementale

Page 21: Introduction to DataWarehouse

www.devleap.it

Il Data Warehouse al lavoroIl Data Warehouse al lavoro

Data Marts

DataDataWarehouseWarehouse

Source OLTPSystems

Clients

Retrieve DataRetrieve Data Populate Populate Populate Populate Query Query Transform Data Transform Data Data Warehouse Data Warehouse Data Marts Data Marts Data Data

1111

2222

3333 4444 5555

Page 22: Introduction to DataWarehouse

www.devleap.it

Da OLTP a OLAPDa OLTP a OLAP

Passando da un sistema transazionale Passando da un sistema transazionale ad un sistema di analisi, cambiano le ad un sistema di analisi, cambiano le caratteristiche di:caratteristiche di: normalizzazionenormalizzazione prestazioni su query e modifica dei datiprestazioni su query e modifica dei dati profondità storicaprofondità storica complessità delle querycomplessità delle query dettaglio degli eventi rilevatidettaglio degli eventi rilevati

Page 23: Introduction to DataWarehouse

www.devleap.it

Database OLTPDatabase OLTP

Caratteristiche di un database per un Caratteristiche di un database per un ambiente operativo:ambiente operativo: Normalizzazione completaNormalizzazione completa Alto numero di tabelle e di associazioniAlto numero di tabelle e di associazioni Dati memorizzati al minimo livello di Dati memorizzati al minimo livello di

granularitàgranularità Interrogazioni richiedono join di molte tabelleInterrogazioni richiedono join di molte tabelle La struttura dei dati non varia di frequenteLa struttura dei dati non varia di frequente Ottimizzato per inserimento dei datiOttimizzato per inserimento dei dati

Page 24: Introduction to DataWarehouse

www.devleap.it

Database OLAPDatabase OLAP

Caratteristiche di un database per un Caratteristiche di un database per un ambiente analitico:ambiente analitico: Entità denormalizzateEntità denormalizzate Disegno del database più semplice (meno Disegno del database più semplice (meno

tabelle e meno associazioni) per una tabelle e meno associazioni) per una comprensione più facile da parte dell’utentecomprensione più facile da parte dell’utente

I dati memorizzati possono essere I dati memorizzati possono essere aggregati (riassuntivi)aggregati (riassuntivi)

Le interrogazioni richiedono poche joinLe interrogazioni richiedono poche join Ottimizzato per la consultazione, per Ottimizzato per la consultazione, per

l’utente è read-onlyl’utente è read-only

Page 25: Introduction to DataWarehouse

www.devleap.it

Ottimizzare i database OLAPOttimizzare i database OLAP

Una base dati per OLAP è prima di tutto Una base dati per OLAP è prima di tutto denormalizzatadenormalizzata

Esistono dei modelli generici pensati Esistono dei modelli generici pensati per queste esigenze:per queste esigenze: Star SchemaStar Schema Snowflake SchemaSnowflake Schema

Un database OLAP può essere realizzato Un database OLAP può essere realizzato sfruttando un generico database sfruttando un generico database relazionale, ma esistono soluzioni relazionale, ma esistono soluzioni specifiche diverse (OLAP Server)specifiche diverse (OLAP Server)

Page 26: Introduction to DataWarehouse

www.devleap.it

Componenti di un modello DWComponenti di un modello DW

ComuneComune ProdottoProdotto TempoTempo UnitàUnità FatturatoFatturato

Tabella delleDimensioni

Tabella delleDimensioni

ComuniComuniComuniComuni

ProdottiProdottiProdottiProdotti

TempoTempoTempoTempo

Tabella dei FattiMisureMisureMisureMisure

FattiFattiFattiFatti

DimensioniDimensioniDimensioniDimensioni

Page 27: Introduction to DataWarehouse

www.devleap.it

Componenti di un modello DWComponenti di un modello DW

Tabella dei fattiTabella dei fattiContiene misure numeriche che descrivono Contiene misure numeriche che descrivono un evento di business, come una vendita o un evento di business, come una vendita o una transazione bancariauna transazione bancaria

FattoFattoUna riga nella tabella dei fatti; contiene uno Una riga nella tabella dei fatti; contiene uno o più valori numerici che misurano un eventoo più valori numerici che misurano un evento

MisuraMisuraUna colonna numerica della tabella dei fattiUna colonna numerica della tabella dei fatti

DimensioneDimensioneUna entità di business che descrive il Una entità di business che descrive il quando, chi, dove, come di un fatto (tempo, quando, chi, dove, come di un fatto (tempo, prodotto, cliente, ...)prodotto, cliente, ...)

Page 28: Introduction to DataWarehouse

www.devleap.it

Star SchemaStar Schema

Lo Star Schema è la modellizzazione Lo Star Schema è la modellizzazione più semplice ed efficace dei più semplice ed efficace dei componenti di un data warehousecomponenti di un data warehouse

Ogni tabella dei fatti è associata ad N Ogni tabella dei fatti è associata ad N tabelle dimensionalitabelle dimensionali

Relazioni gerarchiche all’interno di una Relazioni gerarchiche all’interno di una dimensione (per es. anno/mese/giorno) dimensione (per es. anno/mese/giorno) vengono mantenute in una sola tabella vengono mantenute in una sola tabella dimensionaledimensionale

Page 29: Introduction to DataWarehouse

www.devleap.it

Star SchemaStar SchemaEmployee_DimEmployee_DimEmployee_DimEmployee_Dim

EmployeeKeyEmployeeKeyEmployeeID...

EmployeeID...

EmployeeKey

Time_DimTime_DimTime_DimTime_DimTimeKeyTimeKeyTheDate...

TheDate...

TimeKeyProduct_DimProduct_DimProduct_DimProduct_Dim

ProductKeyProductKeyProductID...

ProductID...

ProductKey

Customer_DimCustomer_DimCustomer_DimCustomer_DimCustomerKeyCustomerKeyCustomerID...

CustomerID...

CustomerKeyShipper_DimShipper_DimShipper_DimShipper_Dim

ShipperKeyShipperKeyShipperID...

ShipperID...

ShipperKey

Sales_FactSales_FactTimeKeyEmployeeKeyProductKeyCustomerKeyShipperKey

TimeKeyEmployeeKeyProductKeyCustomerKeyShipperKey

RequiredDate...

RequiredDate...

TimeKey

CustomerKeyShipperKey

ProductKeyEmployeeKey

Multipart KeyMultipart KeyMultipart KeyMultipart Key

MeasuresMeasuresMeasuresMeasures

Dimensional KeysDimensional KeysDimensional KeysDimensional Keys

Page 30: Introduction to DataWarehouse

www.devleap.it

Star SchemaStar Schema

La tabella dei fatti può contenere misure La tabella dei fatti può contenere misure che si riferiscono a livelli di dettaglio che si riferiscono a livelli di dettaglio differenti, in funzione della dimensionedifferenti, in funzione della dimensione

La tabella dei fatti può contenere lo La tabella dei fatti può contenere lo stesso dato più volte (a livello di riepilogo stesso dato più volte (a livello di riepilogo giornaliero, mensile ed annuale)giornaliero, mensile ed annuale)

Page 31: Introduction to DataWarehouse

www.devleap.it

Snowflake SchemaSnowflake Schema

Secondary Dimension TablesSecondary Dimension Tables

Sales_FactSales_FactTimeKeyEmployeeKeyProductKeyCustomerKeyShipperKey

TimeKeyEmployeeKeyProductKeyCustomerKeyShipperKeyRequiredDate...

RequiredDate...

Product_Brand_IdProduct_Brand_IdProduct_Brand_IdProduct_Brand_IdProduct BrandProduct Brand

Product Category IDProduct Category ID

Product_Category_IdProduct_Category_IdProduct_Category_IdProduct_Category_IdProduct CategoryProduct Category

Product Category IDProduct Category ID

Product_DimProduct_DimProduct_DimProduct_DimProductKeyProductKey

Product NameProduct Name

Product SizeProduct Size

Product Brand IDProduct Brand ID

Primary Dimension Table

Page 32: Introduction to DataWarehouse

www.devleap.it

StarStarStarStar SnowflakeSnowflakeSnowflakeSnowflake

Comprensibilità del modelloComprensibilità del modello EasierEasier More DifficultMore Difficult

Numero di tabelleNumero di tabelle LessLess MoreMore

Complessità queryComplessità query SimplerSimpler More ComplexMore Complex

Prestazioni queryPrestazioni query QuickerQuicker SlowerSlower

Scelta dello schemaScelta dello schema

Page 33: Introduction to DataWarehouse

www.devleap.it

Granularità del modelloGranularità del modello

Determinare i requisiti di analisiDeterminare i requisiti di analisi Scegliere il livello di dettaglio più Scegliere il livello di dettaglio più

bassobasso Richiede più spazio su discoRichiede più spazio su disco Maggiore tempo di elaborazioneMaggiore tempo di elaborazione Fornisce capacità analitiche con maggiore Fornisce capacità analitiche con maggiore

dettagliodettaglio

Conformare le misure alla granularità Conformare le misure alla granularità definitadefinita

Page 34: Introduction to DataWarehouse

www.devleap.it

Definire le dimensioniDefinire le dimensioni

Definire caratteristiche delle Definire caratteristiche delle dimensionidimensioni

Identificare gerarchieIdentificare gerarchie Definire dimensioni convenzionaliDefinire dimensioni convenzionali Condividere le dimensioni tra i Data Condividere le dimensioni tra i Data

MartMart Definire altri tipi di dimensioniDefinire altri tipi di dimensioni

Page 35: Introduction to DataWarehouse

www.devleap.it

Caratteristiche delle dimensioniCaratteristiche delle dimensioni

Applicare le caratteristiche alla tabella Applicare le caratteristiche alla tabella delle dimensionidelle dimensioni Definire una chiave primariaDefinire una chiave primaria Includere colonne correlate e descrittive Includere colonne correlate e descrittive

(usare testo, non codici)(usare testo, non codici)

Designing for Usability and ExtensibilityDesigning for Usability and Extensibility Minimizzare o evitare l’uso di codici o Minimizzare o evitare l’uso di codici o

abbreviazioniabbreviazioni Creare colonne utili per i livelli di Creare colonne utili per i livelli di

aggregazioneaggregazione Evitare valori mancanti o NULLEvitare valori mancanti o NULL Minimizzare il numero di righe che cambia Minimizzare il numero di righe che cambia

nel temponel tempo

Page 36: Introduction to DataWarehouse

www.devleap.it

Gerarchie nelle DimensioniGerarchie nelle Dimensioni

Gerarchia ConsolidataGerarchia Consolidata

Località Negozio

ContinenteContinenteContinenteContinente PaesePaesePaesePaese RegioneRegioneRegioneRegione CittàCittàCittàCittà NegozioNegozioNegozioNegozio

Gerarchia SeparataGerarchia Separata

Località NegozioLocalità NegozioLocalità NegozioLocalità Negozio

ContinenteContinente

ContinenteContinenteContinenteContinente

PaesePaese

PaesePaesePaesePaese

RegioneRegione

RegioneRegioneRegioneRegione

CittàCittà

CittàCittàCittàCittà

NegozioNegozio

NegozioNegozioNegozioNegozio

0101

Page 37: Introduction to DataWarehouse

www.devleap.it

Definire dimensioni convenzionaliDefinire dimensioni convenzionali

Dimensione Tempo (o Data – Ora)Dimensione Tempo (o Data – Ora) ““spezzare” le informazioni sulla data in spezzare” le informazioni sulla data in

attributi individualiattributi individuali

Rappresentare la data come giorni Rappresentare la data come giorni lavorativi, weekend, vacanza, stagione, lavorativi, weekend, vacanza, stagione, periodo fiscale, ecc.periodo fiscale, ecc.

Dettaglio limitato alla granularità della Dettaglio limitato alla granularità della tabella dei fattitabella dei fatti

Dimensione geograficaDimensione geografica Dimensione prodottoDimensione prodotto Dimensione clienteDimensione cliente

Page 38: Introduction to DataWarehouse

www.devleap.it

Condividere le dimensioni tra iCondividere le dimensioni tra i Data Mart Data Mart

One instance exist and isshared among data marts

One instance exist and isshared among data marts

TimeTimeTimeTimeMultiple instances exist in

individual data marts

Multiple instances exist inindividual data marts

SalesProduction

Purchasing

Page 39: Introduction to DataWarehouse

www.devleap.it

Definire la tabella dei fattiDefinire la tabella dei fatti

Applicare la granularità definitaApplicare la granularità definita Garantire la consistenza tra le misureGarantire la consistenza tra le misure Usare valori numerici e aggregabiliUsare valori numerici e aggregabili

Page 40: Introduction to DataWarehouse

www.devleap.it

Minimizzare dimensione tabella Minimizzare dimensione tabella fattifatti

Ridurre il numero di colonneRidurre il numero di colonne Dati ridondantiDati ridondanti Dati non richiesti per l’analisiDati non richiesti per l’analisi

Ridurre la dimensione di ogni colonnaRidurre la dimensione di ogni colonna Usare chiavi surrogateUsare chiavi surrogate Assicurarsi che i campi carattere e binari Assicurarsi che i campi carattere e binari

siano a lunghezza variabilesiano a lunghezza variabile Strano però nella tabella dei fatti avere campi Strano però nella tabella dei fatti avere campi

così, a meno che non siano degenerate così, a meno che non siano degenerate dimensiondimension

Disegno Star Schema risultante:Disegno Star Schema risultante: Tabelle dei fatti – lunghe e stretteTabelle dei fatti – lunghe e strette Tabelle dimensioni – corte e largheTabelle dimensioni – corte e larghe

Page 41: Introduction to DataWarehouse

www.devleap.it

Implementare uno Star SchemaImplementare uno Star Schema

Stima dimensioni Data WarehouseStima dimensioni Data Warehouse Creare databaseCreare database Creare tabelleCreare tabelle Creare constraintCreare constraint Creare indiciCreare indici

Page 42: Introduction to DataWarehouse

www.devleap.it

Variables:Years of data = 5Customers = 10,000Average number of transactions per customer per day = 4

Variables:Years of data = 5Customers = 10,000Average number of transactions per customer per day = 4

DescriptionDescriptionDescriptionDescription

Number of rows in fact tableNumber of rows in fact table

Estimated row size of fact tableEstimated row size of fact table

Estimated data warehouse sizeEstimated data warehouse size

Calculation MethodCalculation MethodCalculation MethodCalculation Method

10,000 x 4 x 365 x 510,000 x 4 x 365 x 5

(7 IDs x 4 bytes) + (5 measures x 4 bytes)(7 IDs x 4 bytes) + (5 measures x 4 bytes)

48 bytes x 73,000,000 rows48 bytes x 73,000,000 rows

ValueValueValueValue

73,000,00073,000,000

~ 48 bytes~ 48 bytes

~3.5 GB~3.5 GB

Stima dimensioni Data WarehouseStima dimensioni Data Warehouse

Dimensioni tabella dei fattiDimensioni tabella dei fatti GranularitàGranularità Byte per rigaByte per riga

Page 43: Introduction to DataWarehouse

www.devleap.it

Creare DatabaseCreare Database

Usare opzioni CREATE DATABASEUsare opzioni CREATE DATABASE SIZESIZE MAXSIZEMAXSIZE FILEGROWTHFILEGROWTH

Impostare opzioni DatabaseImpostare opzioni Database Trunc. log on chkpt. (Recovery Model: Simple)Trunc. log on chkpt. (Recovery Model: Simple)

Page 44: Introduction to DataWarehouse

www.devleap.it

Creare tabelleCreare tabelle

Creare una tabellaCreare una tabella Specificare NULL o NOT NULLSpecificare NULL o NOT NULL

Quasi sempre NOT NULLQuasi sempre NOT NULL Valutare uso di NULL per misure con Valutare uso di NULL per misure con

Analysis ServicesAnalysis Services

Generare valori colonneGenerare valori colonne

Page 45: Introduction to DataWarehouse

www.devleap.it

Creare constraintsCreare constraints

Usare PRIMARY KEYUsare PRIMARY KEY Non consente valori duplicatiNon consente valori duplicati Consente creazione indiciConsente creazione indici Non consente valori NULLNon consente valori NULL

Uso di FOREIGN KEYUso di FOREIGN KEY Tabella dei fatti punta a tabelle Tabella dei fatti punta a tabelle

dimensionidimensioni Definisce un riferimento a una colonna con Definisce un riferimento a una colonna con

constraint PRIMARY KEY o UNIQUEconstraint PRIMARY KEY o UNIQUE Specifica i range di valori accettabiliSpecifica i range di valori accettabili

Page 46: Introduction to DataWarehouse

www.devleap.it

Uso di Foreign KeyUso di Foreign Key

time_dim_key

product_dim_key

customer_dim_key

product_keycustomer_keyorder_date_key

FOREIGN KEY

Constraint

FOREIGN KEY Constraint

FOREIGN KEY

Constraint

Page 47: Introduction to DataWarehouse

www.devleap.it

Creare indiciCreare indici

Creazione indici per data warehouseCreazione indici per data warehouse Definire chiave primaria in tabelle dimensioniDefinire chiave primaria in tabelle dimensioni Dichiarare relazioni foreign keyDichiarare relazioni foreign key Definire chiave primaria in tabella dei fattiDefinire chiave primaria in tabella dei fatti

Con Analysis Services si può evitare multipart keyCon Analysis Services si può evitare multipart key Valutare uso di chiave surrogataValutare uso di chiave surrogata

Definire indici per ogni foreign key nella Definire indici per ogni foreign key nella tabella dei fattitabella dei fatti Valutare prestazioni se i dati si leggono una volta Valutare prestazioni se i dati si leggono una volta

sola per alimentare i cubi di Analysis Servicessola per alimentare i cubi di Analysis Services

Usare chiavi surrogateUsare chiavi surrogate Indici clustered, nonclustered e compostiIndici clustered, nonclustered e composti

Page 48: Introduction to DataWarehouse

www.devleap.it

ConclusioniConclusioni

Il Data Warehouse è un mezzo, non un Il Data Warehouse è un mezzo, non un finefine Facilmente interrogabile dall’utenteFacilmente interrogabile dall’utente Fonte dati per Analysis Services (OLAP)Fonte dati per Analysis Services (OLAP)

Modellazione denormalizzata secondo Modellazione denormalizzata secondo canoni precisicanoni precisi Star SchemaStar Schema

Alimentazione non continuaAlimentazione non continua Di solito giornaliera, settimanale o Di solito giornaliera, settimanale o

mensilemensile

Page 49: Introduction to DataWarehouse

www.devleap.it

Altre InformazioniAltre Informazioni

Dove posso ottenere maggiori Dove posso ottenere maggiori informazioniinformazionihttp://www.microsoft.com/sqlhttp://www.microsoft.com/sqlhttp://www.microsoft.com/sql/evaluation/bihttp://www.microsoft.com/sql/evaluation/bihttp://msdn.microsoft.comhttp://msdn.microsoft.com

Developer resourcesDeveloper resourcesMicrosoft Developer NetworkMicrosoft Developer Networkhttp://www.devleap.ithttp://www.devleap.ithttp://www.sqljunkies.comhttp://www.sqljunkies.com