Ilovepdf Merged
Ilovepdf Merged
Ilovepdf Merged
D’UN DATAWAREHOUSE
2020/2021
PLANNING DE COURS
4h soutenance projet
2
CHAPITRE 1: TERMINOLOGIES ET
DÉFINITIONS
3
POSITIONNEMENT TECHNOLOGIQUE
Système Base de
Papier Décision
personnalisé données
4
PROBLÉMATIQUES
Stockage des gigas de données, mais difficile à exploiter et à accéder
Besoin d’analyser les données dans tous les sens
5
PROBLÉMATIQUES
Qui sont mes
clients? Quels
Quelles sont les produits Quels sont
promotions les achètent-ils? mes
plus efficaces ?
meilleurs
clients?
Quelle est la
période la Qui sont les
plus clients
lucrative? insatisfaits?
Pourquoi?
6
BUSINESS INTELLIGENCE
7
BUSINESS INTELLIGENCE
Datawarehouse VS Datamining
8
BUSINESS INTELLIGENCE
Traitement opérationnel: Les opérations quotidiennes
comme la capture, le stockage et la manipulation des
données.
9
INTÉRÊTS
Réconciliation sémantique
Dispersion des sources de données au sein d’une entreprise
Différents codage pour les mêmes données
L’entrepôt rassemble toutes les informations au sein d’un unique schéma
Conserve l’historique des données
Performance
Les données d’aide à la décision nécessitent une autre organisation des données
Les requêtes complexes de l’OLAP dégradent les performances des requêtes
OLTP.
Disponibilité
La séparation augmente la disponibilité
Une bonne façon d’interroger des sources de données dispersées
Qualité des données
DÉFINITION DATAWAREHOUSE
Un Datawarehouse est une collection de données conçue pour
l'interrogation et l'analyse plutôt que le traitement de
transactions. Il contient généralement des données historiques
dérivées de données transactionnelles, mais il peut comprendre des
données d'autres origines.
11
BASES DE DONNÉES VS DATAWAREHOUSE
Les SGBD sont des systèmes conçus pour l'OLTP (On-Line Transaction Processing).
Questions typiques :
Quels sont les produits qui se vendent le mieux dans chaque région,
et quel est l’impact des données démographiques sur ces résultats
de vente ?
BASES DE DONNÉES VS DATAWAREHOUSE
KNOWLEDGE DATA DISCOVERY
15
CONCEPTION ET RÉALISATION
D’UN DATAWAREHOUSE
2020/2021
CHAPITRE 2: ARCHITECTURE D’UN
DATAWAREHOUSE
2
ARCHITECTURE
Metadata
Repository
Analyse
Data
Warehouse
OLAP
Données semi
structurées Reporting
Extraction
Transformation
Load
Data Mining
Base de données
opérationnelles
Data Marts
3
ARCHITECTURE
Metadata
Repository
Analyse
Data
Warehouse
OLAP
Données semi
structurées Reporting
Extraction
Transformation
Load
Data Mining
Base de données
opérationnelles
Data Marts
4
BASE DE DONNÉES
Bases de données internes
Bases de production de l’entreprise
5
ARCHITECTURE
Metadata
Repository
Analyse
Data
Warehouse
OLAP
Données semi
structurées Reporting
Extraction
Transformation
Load
Data Mining
Base de données
opérationnelles
Data Marts
6
ETL
Extraction (Extraction)
Transformation (Transformation)
Chargement (Load)
Un ETL permet de :
découvrir, analyser et extraire les données à partir des ressources
hétérogènes
nettoyer et standardiser les données
7
charger les données dans un Datawarehouse
ETL
Extraction
Extraction possible à partir de plusieurs plateformes
Chargement incrémental ou complet
Transformation
Uniformiser l’information
Gérer les différents codes
Majuscule / minuscule
Orthographe
Load
Les tables
Les agrégats 8
ETL
RH
Transform
Finance
9
ETL
Dirty Data Transformation
Problèmes de normalisation • Révisions de format
Différents encodages, langues .. • Traitement des valeurs NULL
Différentes abréviations
• Valeurs calculées & dérivées
Equivalence sémantique
• Fusion des données
Différentes normes & unités de
mesures • Fractionnement des champs
Problèmes de données • Conversion des unités de mesure
Champs manquants (âge, adresse, …) • Conversion des dates
Valeurs incorrectes
• Déduplication
Redondance sémantique
Incohérences
Incohérence des codes
Incompatibilité référentielle 10
ETL – QUALITÉ DE DONNÉES
Les données dans un DW doivent être:
Précises: Les données doivent correspondre à un sujet bien défini
11
ETL EXEMPLE
Item Customer
records records
Split Filter
Filter Filter Group by
Date - Join non -
invalid invalid customer
time match
Customer
Facture
balance
Invalid Invalid Invalid
dates /times items customers
12
ARCHITECTURE
Metadata
Repository
Analyse
Data
Warehouse
OLAP
Données semi
structurées Reporting
Extraction
Transformation
Load
Data Mining
Base de données
opérationnelles
Data Marts
13
PROPRIÉTÉS D’UN DATAWAREHOUSE
Un datawarehouse est une collection de données intégrées,
orientées sujet, historisées et non variables, susceptibles
d’appuyer le processus décisionnel dans une entreprise ou
organisation
Datawarehouse
Ventes
Qui était notre meilleur client pour ce produit l'année dernière?
15
SUBJECT ORIENTED
Production
Produit
Réclamatio
n
Vente
Facturati
on
Comman Client
de
Base de données
Datawarehouse
opérationnelle
16
INTEGRATED
Intégration de données provenant de multiples sources hétérogènes
dans un format cohérent
Base de données relationnelle
Fichier
Enregistrement de log
17
INTEGRATED
m,f
0,1 m,f
Male,
femal
e
EUR
USD EUR
MD
18
NON VOLATILE
Les données, une fois intégrées dans le datawarehouse, ne devraient
pas changer. Le but d'un datawarehouse est de permettre d'analyser
ce qui s'est passé.
Non supprimables 19
NON VOLATILE
lire accéder
modifier supprimer
Base de données Datawarehouse
insérer charger
20
TIME VARIANT
Les données historiques sont conservés dans un datawarehouse. Il
est possible de récupérer des données à partir de 3 mois, 6 mois, 12
mois, ou des données encore plus anciennes. Contrairement aux
bases de données traditionnelles où souvent seuls les données les
plus récentes sont conservées.
21
DW VS SGBD
Différente performance
SGBD (OLTP): méthodes d'accès, indexation, contrôle de concurrence,
récupération
DW (OLAP) : requêtes complexes, vue multidimensionnelle,
consolidation
Différentes données
données manquantes: l'aide à la décision nécessite des données
historiques que les bases de données opérationnelles ne conservent pas
généralement
données consolidées: l'aide à la décision nécessite la consolidation
(agrégation, synthèse) des données provenant de sources hétérogènes
qualité des données: différentes sources utilisent généralement des
représentations de données, des codes et des formats incompatibles qui
doivent être uniformisés 22
ARCHITECTURE
Metadata
Repository
Analyse
Data
Warehouse
OLAP
Données semi
structurées Reporting
Extraction
Transformation
Load
Data Mining
Base de données
opérationnelles
Data Marts
23
METADATA
Les métadonnées sont les informations relatives à la structure des
données, les méthodes d’agrégation et le lien entre les données
opérationnelles et celles du Datawarehouse.
La structure des données telle qu’elle est vue par les développeurs
La structure des données telle qu’elle est vue par les utilisateurs
Data Mining
Base de données
opérationnelles
Data Marts
25
DATA MART
Data Mart?
Magasin de données
Vente
Datawarehouse
Productio
n
RH
27
Data mart
DATAWAREHOUSE VS DATAMART
28
CONCEPTION ET RÉALISATION
D’UN DATAWAREHOUSE
2020/2021
CHAPITRE 3 : CONCEPTION D’UN DATAWAREHOUSE
2
DIFFÉRENCE DE CONCEPTION
Schéma Relationnel – Schéma en Etoile
Entité/Relation
3
MODÉLISATION
Schéma en étoile
Une table de faits au milieu du schéma est connectée à un ensemble
de tables de dimensions
Schéma flocon de neige (snowflake)
Un raffinement du schéma en étoile où des tables de dimensions sont
décomposées
Constellation de faits
Plusieurs tables de faits partagent des tables de dimension
(constellation d’étoiles)
4
MODÉLISATION MULTIDIMENSIONNEL
Table de fait
La table de faits constitue une table de référence centrale permettant
d’accéder aux événements ou activités archivés et inhérents à un processus
déterminé.
Dimension
Les tables de dimension sont des compagnons intégrés à une table de fait.
Les tables de dimension contiennent le contexte textuel associé à un
événement de mesure des processus métiers. Ils décrivent le «qui, quoi, où,
quand, comment, et pourquoi" associé à l'événement.
Attribut
Les attributs qualifient les dimensions. Généralement, les attributs sont
textuels et discrets (par opposition aux faits). 5
TABLE DE FAITS
Les tables de faits sont des collections de mesures associées à un
processus métier spécifique. Les mesures sont stockés dans les colonnes.
Par exemple
Transactions individuelles
Les clés de substitution gardent une trace des valeurs des attributs
non clés pour une clé significative donnée
Les clés de substitution sont plus simples et plus courtes
Type 1: remplacer les anciennes données par les nouvelles (perte des
données historiques)
Type 2: créer une nouvelle ligne de table de dimension chaque fois que
l'objet de dimension change, avec toutes les caractéristiques de la
dimension au moment du changement.
Approche la plus courante
Fiscal Fiscal
Fiscal Year Fiscal Week
Quarter Month
Date
IsHoliday
12
SCHÉMA EN ÉTOILE
Fait Vente
Clé période
Dimension Dimension
Clé client
Période Client
Clé produit
Dimension Clé magasin Dimension
Magasin Quantité Produit
Chiffre_Affaires 13
SCHÉMA EN ÉTOILE Dim
Clé 3 (PK)
Dim Attribut
Les tables de faits contiennent
Clé 1 (PK) des données factuelles ou Attribut
quantitatives …………..
Attribut
Attribut Fact Les tables de dimensions sont
………….. Clé 1 dénormalisées pour optimiser la
(PK)(FK) performance
Clé 2 Relation 1: N entre
(PK)(FK) les tables de
Clé 3 dimensions et les
Dim tables de faits Produit
(PK)(FK)
Clé 2 (PK) Clé 4 Clé 4 (PK)
Attribut (PK)(FK) Attribut
Attribut Data column Attribut
………….. Data column …………..
Les tables de dimensions ………..
14
contiennent des descriptions sur
les sujets d’analyse
SCHÉMA EN ÉTOILE Client
Clé client
Période ID client
Clé période Nom client
Adresse
ID période
Vente Sexe
Date
Année
Jour Clé période naissance
Semaine Clé client Région
Clé produit
Clé magasin
Magasin Quantité Produit
Clé magasin Chiffre
d’affaires Clé produit
ID magasin ID produit
Type magasin Nom produit
Nom magasin Groupe
Commune Marque
Région Unité 15
Conditionneme
nt
SCHÉMA EN ÉTOILE
Un schéma en étoile contient une seule table centrale, appelée une
table de faits, entouré de plusieurs tables appelées dimensions.
16
Dimension
SCHÉMA EN ÉTOILE Client
Dimension Clé client
Période ID client
Nom client
Clé période Vente Adresse
ID période Clé période Sexe
Date Année naissance
Clé client Région
Jour
Semaine Clé produit Dimension
Dimension Clé magasin Produit
Magasin Quantité Clé produit
Clé magasin Chiffre
ID produit
d’affaires Nom produit
ID magasin
Type magasin Sum Groupe
Nom magasin Group by Group by Marque
Commune Unité
Région Conditionnement
Facilité de navigation
Nombre de jointures limité
3NF
ou mieux encore
Livre(ID_livre, titre, auteurs)
→ Livre(ID_livre, ID_auteur, titre)
21
→ Auteur(ID_auteur, nomAuteur)
RAPPEL - FORMES NORMALES
Deuxième forme normale
Les attributs non clé dépendent de toute la clé et non d'une partie de la clé
26
SCHÉMA EN CONSTELLATION
fusionne plusieurs modèles en étoile qui utilisent des dimensions
communes
contient plusieurs table de faits et des dimensions communes ou
pas
27
SCHÉMA EN CONSTELLATION
2020/2021
CHAPITRE 4 : ANALYSE MULTIDIMENSIONNELLE
DES DONNÉES OLAP
2
ARCHITECTURE
Metadata
Repository
Analyse
Data
Warehouse
OLAP
Données semi
structurées Reporting
Extraction
Transformation
Load
Data Mining
Base de données
opérationnelles
Data Marts
3
OLAP
OLAP
OnLine Analytical Processing
4
OLAP
Les systèmes OLAP doivent :
5
OLAP VS OLTP
8
DONNÉE MULTIDIMENSIONNELLE
Dimensi
on Date Mesure
Vente
La somme des
ventes en
Région
fonction du
produit, de la
date, et la
région
9
MESURES ET DIMENSIONS
Mesure JAN FE MAR AVR MAI
Mazda V
Stockée dans les tables de faits BMW
Fiat
Exemple: Montant des ventes Renault
Vente Rabat
Dimension
Stockée dans les tables de dimensions Tanger
Exemple: Produit, Date, Géographie
Oujda
Marrakech
10
DIMENSIONS
Une dimension contient des attributs, des hiérarchies, et des
membres
Attribut
Une colonne de la table
Membre
La valeur réelle des données dans un attribut.
Hiérarchie
Les hiérarchies sont représentées par des relations de groupement
11
CUBE OLAP
Un cube OLAP multidimensionnel est un hyper-cube où:
Les axes ou dimensions sont définies par l'utilisateur
Mesure
Dimension
12
Dimension
CUBE VS SCHÉMA EN ÉTOILE Région
Région
Dimension
Quantité
Chiffre
d’affaires
Dimension
Produit
13
OPÉRATIONS OLAP - ROTATE
Rotate
Rotation des axes du cube pour fournir une vue alternative des données
(Produit , Date) ➔ (Région , Produit)
14
OPÉRATIONS OLAP - ROLL UP / DRILL DOWN
Roll-up
Remonter dans la hiérarchie de la dimension Semaine ➔ Mois
Drill-down
Descendre dans la hiérarchie de la dimension Mois ➔ Semaine
15
OPÉRATIONS OLAP - SLICE
Slicing
• Extraction d’une tranche d’informations : Sélection d’une dimension pour
passer a un sous-cube
16
OPÉRATIONS OLAP - DICE
Dice
Extraction d’un bloc de données : Sélection de deux ou plusieurs dimensions
17
LANGAGE MDX
Le langage de requête d'un cube s'appelle le MultiDimensional
eXpressions Language (MDX).
18
LANGAGE MDX – SYNTAXE
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON
COLUMNS,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] }
ON ROWS Requête MDX
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] ) Clause FROM : Sélectionne un cube
Clause SELECT : Définit les axes
Clause WHERE : Définit un slice
19
CONCEPTION ET RÉALISATION
D’UN DATAWAREHOUSE
2020/2021
CHAPITRE 5: RESTITUTION DES DONNÉES
REPORTING
2
ARCHITECTURE
Metadata
Repository
Analyse
Data
Warehouse
OLAP
Données semi
structurées Reporting
Extraction
Transformation
Load
Data Mining
Base de données
opérationnelles
Data Marts
3
KEY PERFORMANCE INDICATORS - KPI
Les indicateurs clés de performance (KPI) définissent un ensemble
de chiffres clés utilisés pour mesurer par rapport à une cible, à un
benchmark ou à une date.
4
TABLEAU DE BORD
5
TABLEAU DE BORD
Un tableau de bord:
7
DATA WAREHOUSE ET BIG DATA (DATA LAKE)
Data Lake est une banque de stockage servant à contenir une immense
quantité de données brutes dans leur format d’origine jusqu’à ce que
l’entreprise en ait besoin.
Data lake Data warehouse
Structure des données Brutes Traitées/transformées
Objet des données À déterminer En service
Utilisateurs Data scientists Spécialistes
Accès facile, mises à jour Modifications plus complexes
Accessibilité
rapides et plus coûteuses
8
DATA WAREHOUSE ET CLOUD COMPUTING
le SGBD n’est pas installé sur me serveur local.
Les leaders du marché des Data Warehouses cloud sont Microsoft, Amazon
9
et IBM.
SECTEURS D’APPLICATIONS
Banque & Assurance
• Profiling des Clients
Commerce
• Ciblage des clients
• Promotions
Santé
• Epidémiologie
Ressources Humaines
• Gestion et affections des profils
Télécommunication
• Analyse des appels
Transport 10
• Gestion de la logistique
OUTILS BI
11
OUTILS BI
12
FIN COURS DATA WAREHOUSE
13
TD : Conception d’un Data warehouse
Exercice 1 :
Un opérateur Télécom propose à ses abonnés un boiter routeur ADSL qui groupe un accès à
Internet, le téléphone et un bouquet de chaînes de télévision interactives. Nous ne nous
intéresserons qu’à cette dernière fonction dans notre Datawarehouse (DW).
Les chaînes de télévision proposées par cet opérateur dans son bouquet sont des chaînes
nationales et des chaînes à péage. Le téléspectateur peut réagir (interactivement) de plusieurs
manières aux émissions et aux publicités qu’il reçoit au moyen de sa télécommande:
- A tout moment, il peut zapper vers une autre chaîne
- A tout moment, il peut éteindre son poste
- Pendant une publicité, il peut zapper à la pub suivante sans attendre la fin de la publicité en
cours.
- Pendant une publicité, il peut demander plus d’information sur le produit présenté.
Le DW est centré sur les actions du téléspectateur. L’objectif de ce DW est de profiler au plus
précis le foyer (ou plutôt le téléspectateur qui détient la télécommande) afin de maximiser la
demande d’information sur les produits présentés par les publicités. En effet, l’opérateur
perçoit plus d’argent de la part de l’annonceur quand le spectateur demande plus
d’information au moment au l’annonce est passée. Le schéma de ce DW est constitué des
tables suivantes (les clés primaires sont soulignées)
Date (CléDate, Année, Mois, JourDeMois, JourDeSemaine, TrancheHoraire, Heure, Minute)
Foyer (CléFoyer, NomAbonné, AnnéeNaissanceAbonné, Région, Département, District,
Ville,Quartier, SituationFamille, RevenuFoyer, NombreAdulte, NombreEnfant)
Emission (CléEmission, Chaîne, DateDébut, DuréeSeconde, TypeEmission, Catégorie,
Annonceur)
Action (CléDate, CléFoyer, CléEmission, DuréeAction, DuréeRestante)
1. Quelle est la table de fait dans ce DW ? Justifiez votre réponse.
2. La granularité de la table de faits.
3. Quelles sont les dimensions et les indicateurs de ce DW?
4. Donner le schéma en étoile de ce DW.
5. Normaliser les Dimensions du schéma en étoile précédent.
Exercice 2 :
Exercice 3 :
Une université cherche à étudier les facteurs influant sur la réussite de ses étudiants aux
examens.
Pour cela elle décide de construire un Datawarehouse.
Elle souhaite pouvoir répondre aux questions suivantes:
- Quel est le nombre de réussites aux examens par cours, pour l’année 2010?
- Quel est le nombre de réussites aux examens d’un cours obligatoire, pour l’année 2010?
- Quel est le nombre de réussites aux examens par sexe (féminin, masculin), pour l’année
2010?
- Combien d’étudiants ayant un âge de 22 ans ont réussi leurs examens de base de données
relationnelle?
- Quel est le nombre de réussites aux examens pendant le semestre d’hiver 2009?
Pour cela elle dispose des données suivantes: Pour chaque examen passé, on connaît l’âge et
le sexe de l’étudiant, le nom du cours (les cours peuvent être regroupés en cours obligatoire et
cours à option), la date de l’examen, la note obtenue et si l’examen est réussi ou non.
Proposez un modèle en étoile pour cette application. Recherchez tout d’abord les différentes
dimensions et proposez une hiérarchie pour ces dimensions.
Exercice 4 :
Une compagnie d’assurance de biens (automobile, immobilier, responsabilité civile) possède une application
transactionnelle de production permet de gérer les polices (contrats) de ses clients ainsi que les sinistres
(accidents) déclarés par ces clients.
Gestion des polices
Pour gérer les polices, les agents d’assurance peuvent effectuer les transactions suivantes :
- Créer, mettre à jour ou supprimer une police d’assurance
• Créer, mettre à jour ou supprimer un risque (pour une police donnée)
• Créer, mettre à jour ou supprimer des biens assurés (voiture, maison) sur un risque
• Chiffrer ou refuser le risque
• Valider ou refuser la police
On enregistre dans ces transactions un grand nombre d’informations, et notamment : date d’écriture (date de la
transaction), date d’effet (date de début d’assurance), client (personne(s) privée(s), personne morale), opérateur
(employé, agent: chiffrage, vérificateur : validation), risque (produit vendu par la compagnie d’assurance),
couverture (description des biens assurés), police (numéro de police, « note » de la police ou du risque,…) ,
transaction (code transaction).
Gestion des sinistres
Pour gérer les sinistres déclarés par les clients, les agents d’assurance ont à leur disposition les transactions
suivantes :
• Créer, mettre à jour ou supprimer une déclaration de sinistre
• Créer, mettre à jour ou supprimer une expertise
• Créer, mettre à jour ou supprimer des paiements
• Clore le sinistre
Une banque distribue une carte de paiement « carte de crédit » à ses clients. Elle décide de réaliser un
Datawarehouse (DW) afin de faire le suivi des paiements suivants effectués avec la carte : a. Voyages
en avion, b. Locations de voiture, c. Hôtellerie.
Elle veut faire un suivi indépendant de chacun des paiements a, b ou c, mais aussi avoir la possibilité
d’un suivi global.
A chaque déplacement en avion, la compagnie aérienne lui envoie un fichier contenant les éléments
suivants: identification de la carte de paiement, coordonnées du client et de la compagnie aérienne;
ville de départ, ville d’arrivée, n° du vol, date du vol, n° du billet, classe du siège, distance parcourue,
date d’achat et prix payé.
Les loueurs de véhicule transmettent après chaque location: identification de la carte de paiement,
coordonnées du client et de la société de location de véhicules, catégorie du véhicule, date de début de
location, date de fin de location, nombre de jours, distance parcourue, date de réservation et prix payé.
L’hôtel transmet à chaque séjour: identification de la carte de paiement, coordonnées du client et de
l’hôtel, catégorie de chambre, date de début de séjour, date de fin de séjour, nombre de nuitées, date de
réservation, prix de l’hébergement et prix de la restauration.
1. Un premier DW ne concerne que les déplacements en avion. Etablir le modèle dimensionnel. Faire
clairement apparaître les dimensions et les indicateurs. Ce DW doit permettre de répondre aux
questions suivantes : quel est le chiffre d’affaires (CA) par client, par date de voyage (et par mois,
trimestre et année), par compagnie aérienne, par ville de destination?
2. De même, établir deux autres modèles dimensionnels, l’un pour les locations de voiture, l’autre
pour l’hôtellerie. Dans le cas de la location de voiture, on souhaite éditer le CA, le nombre de jours de
location, et le kilométrage pour chaque: client, date de réservation, ville, loueur, et catégorie de
véhicule. Dans le cas de l’hôtellerie, on veut des tableaux de bord par client, hôtel, ville, date de début
de séjour, catégorie de chambre, faisant apparaître le nombre de nuitées, le prix total payé.
3. On veut maintenant regrouper ces trois DW en un seul, afin de répondre aux questions
supplémentaires suivantes : Quel est le CA total induit par un déplacement en avion ? Quelle est la
durée du séjour ? Quel est le CA en location de voiture ? En hôtellerie ? On désire ici pouvoir éditer
les détails de CA par période de temps et par client, ville de destination, ville de location (si
différente), ville d’hébergement (si différente), compagnie aérienne, loueur et hôtelier, et faire tous les
regroupements utiles. Figurer le modèle dimensionnel d’un tel DW, en faisant clairement apparaître
les dimensions et les indicateurs.
I. Installation
1. Téléchargement et configuration de l’outils
Vous pouvez utiliser presque n'importe quelle édition de SQL Server, Vous pouvez installer
une version d'essai de SQL Server 2012 que vous pouvez utiliser pendant 180 jours disponible
dans le lien suivant :
https://www.microsoft.com/fr-ma/download/details.aspx?id=35575
Remarque : Merci de bien lire les informations de l’installation figurant dans le lien ci-dessus
pour ne pas avoir des problèmes d’installation.
Sélectionner les fichiers d’installation propres à la configuration de votre PC, x64 pour les
Ordinateurs 64 bits et x86 pour les ordinateurs 32 bits.
Lorsque vous êtes dans la boîte de dialogue de sélection des fonctionnalités du programme
d'installation de SQL Server 2012, choisir obligatoirement lors de l’installation les éléments
suivants :
-- Database Engine Services
-- Analysis services
-- Documentation Components
-- Management Tools - Basic
-- Management Tools – Complete
-- SQL Server Data Tools
Vous devez accéder à une instance de SQL Server 2012 avec une ouverture de session disposant
des autorisations pour créer de nouvelles bases de données, de préférence un qui est un membre
du rôle sysadmin.
Remarque :
La raison derrière le choix de Microsoft Sql Server 2012 est qu’il est stable par rapport à la
plupart des étudiants qui ont des machines moyennes en termes de performance. L’objectif du
TP est de pratiquer les notions théoriques du cours, ainsi la consommation des ressources
(Processeur, RAM,..) peut augmenter surtout lors de l’alimentation du DW (on va alimenter des
dizaines de milles de lignes dans l’entrepôt de données vers la fin des TPs).
Pour ceux qui ont des machines suffisamment performantes, vous pouvez exécuter presque les
mêmes TPs avec la version SQL Server 2019, il suffit de bien installer les éléments cités ci-
dessus.
1
3ACI Option GDC 2020/2021
2. Exigences de Données
Les exigences minimales de données pour réaliser les TP sont les suivants :
AdventureWorks : La suite des TPs utilise les données de traitement transactionnel en ligne
(OLTP) AdventureWorks, qui prend en charge les scénarios de traitement des transactions en
ligne standard pour un fabricant de bicyclettes fictif (Adventure Works Cycles), ainsi que la
base de données datawarehouse AdventureWorks (DW), qui montre comment construire un
entrepôt de données.
Vous devez télécharger les deux bases de données pour SQL Server 2012 AdventureWorks2012
(OLTP) et AdventureWorksDW2012 (data warehouse) sous l’extension mdf.
https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks2012
Remarque : Pour ceux qui ont installé SQL Server 2019 vous téléchargez
adventureworks2019.
2
3ACI Option GDC 2020/2021
1. Lancer SSMS et se connecter à votre instance de SQL Server. Développez le dossier Bases
de données, puis la base de données AdventureWorksDW2012.
2. Cliquer-droit sur le dossier diagrammes de base de données et sélectionnez l'option Nouveau
schéma de base de données.
3. Dans la liste Ajouter une table, sélectionner les tables suivantes (cliquer sur chaque table et
puis cliquer sur le bouton Ajouter) :
-- DimCustomer
-- DimDate
-- DimGeography
-- DimProduct
-- DimProductCategory
-- DimProductSubcategory
-- FactInternetSales
3. Analyser le diagramme
Examiner le schéma AdventureWorksDW2012 pour constater les faits suivants :
-- La table de dimension DimDate n'a pas de tables Lookup supplémentaires qui lui sont
associés et utilise donc schéma en étoile.
-- La table de dimension de DimProduct est snowflaked ; elle utilise la table lookup
DimProductSubcategory, qui utilise encore la table lookup DimProductCategory.
-- La table de dimension DimCustomer utilise un schéma hybride. le premier niveau du schéma
est en snowflake seulement à travers la table lookup DimGeography. La table DimGeography
est dénormalisée.
3
3ACI Option GDC 2020/2021
2. Dans la liste Ajouter une table, sélectionner les tables suivantes (cliquer sur chaque table et
puis cliquer sur le bouton Ajouter) :
-- DimProduct
-- DimProductCategory
-- DimProductSubcategory
4. Essayer de trouver les colonnes utilisées dans les buts suivants : clés , noms , attributs
5. Ajouter la table DimSalesReason au schéma
6. Analyser soigneusement les tables, les colonnes et les relations.
7. Enregistrer le diagramme avec le nom DW_02_02_InternetSales.
4
3ACI GDC 2020/2021
3. D'après le contexte de la base de données master, créer une nouvelle base de données appelée
LightAdventureWorksDW.
-- Il devrait y avoir un fichier de données unique et un seul fichier journal dans le dossier de
LightAdventureWorksDW. Vous pouvez créer ce dossier dans n'importe quel lecteur.
-- Le fichier de données doit avoir une taille initiale de 300 Mo et avoir l’autogrowth permis en morceaux
de 10 Mo.
-- La taille du fichier journal doit être de 50 Mo, avec 10% des morceaux de croissance automatique.
1
3ACI GDC 2020/2021
3. Créer la dimension « Dates ». Utilisez le tableau suivant pour les informations nécessaires pour
définir les colonnes de la table et remplir la table.
2
3ACI GDC 2020/2021
1. Créer la table de faits InternetSales. Ajouter les clés étrangères des trois dimensions créées dans
les étapes précédentes. Ajouter une colonne integer en utilisant la propriété IDENTITY, et
l'utiliser comme clé primaire. Utilisez le tableau suivant pour les informations nécessaires pour
définir les colonnes de la table et remplir la table.
2. Modifier la table de faits InternetSales pour ajouter des contraintes de clés étrangères des
relations avec les trois dimensions.
3. Créer un schéma de base de données, Le nommer InternetSalesDW et l'enregistrer.
3
3ACI Option GDC 2020/2021
La première étape dans la création d'un package dans Integration Services est de créer un projet
Integration Services.
1. Ouvrir SQL Server Data Tools
2. Dans le menu Fichier, pointer sur Nouveau et cliquer sur Projet pour créer un nouveau projet
Integration Services.
3. Dans la boîte de dialogue Nouveau projet, sélectionner Projet Integration Services dans le volet
Modèles.
4. Dans la zone Nom, remplacer le nom par défaut pour SimpleETLDBSSIS.
5. Cliquer sur OK.
6. Par défaut, un package vide, intitulé Package.dtsx, est créé et ajouté à votre projet.
7. Dans la barre d'outils Explorateur de solutions, cliquer droit sur Package.dtsx, cliquer sur Renommer
et renommer le package par défaut en SimpleETLDB.dtsx.
Dans cette étape, vous ajoutez un gestionnaire de connexions de fichiers au package que vous venez de
créer. Un gestionnaire de connexions OLE DB permet à un package d'extraire ou de charger des données
à partir d’une source de données OLE DB conforme. En utilisant le gestionnaire de connexions OLE
DB, vous pouvez spécifier le serveur, la méthode d'authentification, et la base de données par défaut de
la connexion.
Dans cette étape, vous allez créer un gestionnaire de connexions OLE DB qui utilise l'authentification
Windows pour se connecter à l'instance locale d’AdventureWorks2012 (Non pas Datawarehouse).
Le gestionnaire de connexions OLE DB que vous créez sera également référencé par d'autres
composants que vous allez créer plus tard dans ce TP.
Pour ajouter et configurer un gestionnaire de connexions OLE DB
1. Cliquer-droit n'importe où dans la zone Gestionnaires de connexion, puis cliquer sur Nouvelle
connexion OLE DB.
2. Dans la boîte de dialogue Configurer le gestionnaire de connexion OLE DB, cliquer sur Nouveau.
3. Pour le nom du serveur, entrer localhost.
4. Vérifier que l'option Utiliser l'authentification Windows est sélectionnée.
5. Dans le connecter à un groupe de base de données, dans la zone Sélectionner ou entrer un nom de
base de données, taper ou sélectionner AdventureWorks2012.
6. Cliquer sur Tester la connexion pour vérifier que les paramètres de connexion que vous avez
spécifiées sont valides.
7. Cliquez sur OK.
8. Cliquez sur OK.
1
3ACI Option GDC 2020/2021
Après avoir ajouté un gestionnaire de connexions pour se connecter à la source de données, la tâche
suivante consiste à ajouter un gestionnaire de connexions OLE DB pour se connecter à la destination.
Un gestionnaire de connexions OLE DB permet à un package d'extraire ou de charger des données à
partir d’une source de données OLE DB conforme. En utilisant le gestionnaire de connexions OLE DB,
vous pouvez spécifier le serveur, la méthode d'authentification, et la base de données par défaut de la
connexion.
Dans cette étape, vous allez créer un gestionnaire de connexions OLE DB qui utilise l'authentification
Windows pour se connecter à l'instance locale de LightAdventureWorksDW. Le gestionnaire de
connexions OLE DB que vous créez sera également référencé par d'autres composants que vous allez
créer plus tard dans ce TP.
Pour ajouter et configurer un gestionnaire de connexions OLE DB
11. Cliquer-droit n'importe où dans la zone Gestionnaires de connexion, puis cliquer sur Nouvelle
connexion OLE DB.
12. Dans la boîte de dialogue Configurer le gestionnaire de connexion OLE DB, cliquer sur Nouveau.
13. Pour le nom du serveur, entrer localhost.
14. Vérifier que l'option Utiliser l'authentification Windows est sélectionnée.
15. Dans le connecter à un groupe de base de données, dans la zone Sélectionner ou entrer un nom de
base de données, taper ou sélectionner LightAdventureWorksDW.
16. Cliquer sur Tester la connexion pour vérifier que les paramètres de connexion que vous avez
spécifiées sont valides.
17. Cliquez sur OK.
18. Cliquez sur OK.
19. Dans le volet Connexions de données de la boîte de dialogue Configurer le gestionnaire de connexion
OLE DB, vérifier que localhost. LightAdventureWorksDW est sélectionné.
20. Cliquez sur OK
Après avoir créé les gestionnaires de connexions pour les données source et destination, la tâche suivante
consiste à ajouter une tâche de flux de données à votre package. La tâche de flux de données encapsule
le moteur de flux de données qui se déplace entre les données sources et destinations, et fournit la
fonctionnalité pour la transformation, le nettoyage et la modification des données pendant leur
déplacement. La tâche de flux de données est où la plupart des tâches d'extraction, de transformation et
de chargement (ETL) se produisent.
2
3ACI Option GDC 2020/2021
Dans cette étape, vous allez ajouter et configurer le fichier source de votre package. Un fichier source
est un composant de flux de données qui utilise les métadonnées définies par un gestionnaire de
connexions de fichiers pour spécifier le format et la structure des données à extraire du fichier par un
processus de transformation.
Pour ce TP, vous allez configurer le fichier source pour utiliser le gestionnaire de connexions de fichiers
que vous avez créé précédemment.
Pour ajouter et configurer la source OLE DB
1. Ouvrir le concepteur de flux de données, soit en double-cliquant sur la tâche de flux de données
Product Data Flow ou en cliquant sur l'onglet Flux de données.
2. Dans la boîte à outils, glisser une source OLE DB sur la surface de dessin de l'onglet Flux de données.
3. Cliquer-droit sur la source de données nouvellement ajoutée, cliquer sur Renommer et modifier le
nom en Extract Product Data.
4. Double-cliquer sur Extract Product Data.
5. Dans la boîte de dialogue Éditeur de source OLE DB, veiller à ce que localhost.AdventureWorks2012
est sélectionné dans la boîte de gestionnaire de connexions OLE DB.
6. Dans le Mode d’accès aux données, sélectionner Commande SQL
7. Taper ou copier l'instruction SQL suivante :
(Dans le rapport expliquer le fonctionnement des jointures cette requête)
8. Cliquer sur Colonnes et vérifier que les noms des colonnes sont corrects.
9. Cliquer sur OK.
3
3ACI Option GDC 2020/2021
Avant de tester le package, vous devez vérifier que le contrôle et les flux de données dans le package
SimpleETLDB contient les objets présentés dans les schémas suivants.
4
3ACI Option GDC 2020/2021
Bon courage !
5
3ACI GDC 2020/2021
La logique de ce Tp est différente, car au lieu de suivre les étapes prescrites dans le TP et les
exécuter pour alimenter les dimensions comme pour les Tp précédents, je vous donne les
captures d’écran pour la réalisation des transformations des données comme indication. Ainsi
votre livrable sera le même TP en y ajoutant les étapes suivies pour sa réalisation.
Pour y arriver, il faut essayer de bien comprendre et synthétiser le TP3 en mettant l’accent sur
les étapes permettant de se connecter à la source de données (OLTP) et à la destination. Et
réaliser comment faire le mapping pour assurer la correspondance entre les champs sources
transformées et destination.
2. L’extraction de la source de données doit s’effectuer par le Boutton de la génération des requêtes,
analysez la requête (incomplète) pour connaitre les champs extraits et les différents tables utilisées à
partir de la source.
Remarques :
i. le TP focalise sur l’alimentation quelques colonnes de la dimension Customer et pas tous. Seul les
champs customerkey, customerAlternateKey, FullName, Address, Email seront alimentés
ii les tables sources utilisées doivent être toutes reliées par des relations, exécuter la requête pour
s’assurer que les données extraites ne sont pas un résultat d’un produit scalaire (Fausse jointure quand
les lignes se répètent tous).
1
3ACI GDC 2020/2021
3. La transformation à réaliser sur les champs de la source est « Colonne dérivée » pour construire le
champs fullname et address à partir des champs qui leurs correspondent à partir de la source.
2
3ACI GDC 2020/2021
5. Ajouter dans votre TP la capture d’écran contenant les données alimentées dans la dimension
customer après exécution du processus ETL.
3
3ACI GDC 2020/2021
4
3ACI GDC 2020/2021
Bon courage !
5
3ACI Option GDC 2020/2021
2. L’extraction de la source de données doit s’effectuer par le Boutton de la génération des requêtes,
analysez la requête ci dessous pour connaitre les champs extrait et les tables utilisées.
Remarques : le TP focalise sur l’alimentation quelques 2 indicateurs de la table de fait et pas tous.
1
3ACI Option GDC 2020/2021
3. La transformation « colonne dérivée » réalisée pour avoir le calcul des 2 indicateurs ainsi que le
casting (utiles plus tard dans l’ETL) sont paramétrées comme dans la figure suivante :
2
3ACI Option GDC 2020/2021
Remarque : les champs utilisés dans la colonne Expression ne sont pas saisis mais plutôt
sélectionnées depuis « colonnes » du carré à gauche de cette figure. Seuls les noms des champs de la
première colonne sont saisis.
4. Maintenant l’objectif est de connecter la table de fait avec ses dimensions en attachant ( Faisant la
correspondance) entre les champs extraits de la requête source (CostumerID, DueDate, ProductID)
avec les clés primaires des dimensions et assurer ainsi l’intégrité des données : les clé étrangères de la
table de fait doivent être déjà dans les dimensions. On utilise le composant Recherche renommé dans
la première figure par le nom de la dimension qu’il permet de faire la correspondance.
3
3ACI Option GDC 2020/2021
Dans le cas de la dimension Product nous avons préservé le même id qui provient de la source et donc
la correspondance est facile.
4
3ACI Option GDC 2020/2021
Dans ce cas nous avons le champs DueDate qui a été casté dans la question 3 en FullDateN pour
pouvoir le faire correspondre avec FullDate de la dimension Date (sinon lors de l’execution une
exception se lance par rapport au problème de types différents). Enfin il faut s’assurer d’avoir cocher
Datekey pour l’intégrer dans la table de Fait InternetSales.
5
3ACI Option GDC 2020/2021
Dans ce cas customerID de la requête source ne correspond pas à la clé primaire de la dimension
customer customerKey. Il faut mapper CustomerID avec CustomerAlternateKey et cocher la clé
primaire customerKey pour la récupérer à la sortie du composant.
5. vérifier le mappage au niveau de la destination ainsi que la correspondance est correcte entre les
colonnes d’entrée et les colonnes de la table de dimension, ajouter la capture dans votre rapport. Les
clés primaires récupérées à chaque étape de l’ETL doivent être mappées avec leur correspondantes
dans la table de fait. Ajouter dans le rapport la capture du mappage réalisé.
6. Ajouter dans votre rapport la capture d’écran contenant les données alimentées dans Table de fait
ainsi que le nombre des lignes alimentées lors de l’exécution de l’ETL.
Bon courage !
6
3ACI Option GDC 2020/2021
Ce TP explique comment utiliser SQL Server Data Tools pour développer et déployer un projet Analysis
Services, en utilisant la société fictive Adventure Works Cycles.
Prérequis
Avant de commencer ce TP, il est nécessaire d’octroyer le droit d’accès à l’utilisateur du service
Analysis Services pour accéder à la base de données AdventureWorksDW2012.
1. Démarrer SQL Server Management Studio (SSMS) et se connecter à l'instance du Database Engine.
2. Cliquer sur Sécurité, puis cliquer-droit sur Connexions.
3. Cliquer sur Nouvelle Connexion.
4. Dans Nom d’accès ajouter l’utilisateur NT Service\MSSQLServerOLAPService.
Remarque :
Si vous ne trouvez pas l’utilisateur, car il faut pas forcer sûrement il a un autre nom dans votre machine.
Copier le nom du compte associé aux proporiétés du service SQL Server Analysis Services comme
indiquée dans la figure ci-dessous.
5. Cliquer sur OK
2
3ACI Option GDC 2020/2021
14. Dans la page Sélectionner des tables et des vues, sélectionner les tables et les vues depuis
la liste des objets disponibles à partir de la source de données sélectionnée. Vous pouvez filtrer
cette liste pour vous aider à sélectionner les tables et les vues.
15. Dans la liste des objets disponibles, sélectionner les objets suivants
- DimCustomer (dbo)
- DimDate (dbo)
- DimGeography (dbo)
- DimProduct (dbo)
- FactInternetSales (dbo)
16. Cliquer sur Suivant
17. Dans le champ Nom, s’assurer que Adventure Works DW2012 est affiché, puis cliquer sur
Terminer.
18. Le designer contient dorénavant les éléments suivants :
- Un volet Diagramme dans lequel les tables et leurs relations sont représentées graphiquement.
- Un volet Tables dans lequel les tables et leurs éléments de schéma sont affichés dans une
arborescence.
- Un volet Bibliothèque de diagrammes dans lequel vous pouvez créer des sous-diagrammes
pour afficher des sous-ensembles de la vue de source de données.
- Une barre à outils.
3
3ACI Option GDC 2020/2021
Dans la tâche suivante, vous allez changer le nom convivial de chaque table dans la vue de
source de données en supprimant les préfixes "Dim" et "Fact" de ces tables. Cela rendra les
objets du cube et de la dimension (que vous allez définir dans la prochaine étape) plus facile à
utiliser.
19. Dans le volet Tables, cliquer-droit sur la table FactInternetSales, puis cliquer sur Propriétés.
20. Modifier la propriété FriendlyName de FactInternetSales à InternetSales.
21. Procéder de même pour le reste des tables
- DimCustomer -> Customer
- DimDate -> Date
- DimGeography -> Geography
- DimProduct -> Product
4
3ACI Option GDC 2020/2021
10. Sur la page Fin de l’Assistant, dans le volet Aperçu, vous pouvez voir la dimension Date et
ses attributs.
11. Cliquez sur Terminer pour terminer l'assistant.
12. Créer une hiérarchie d’analyse en glissant dans l’ordre les attributs suivants :
- Calendar Year
- Calendar Semester
- Calendar Quarter
- English Month Name
- Date Key
28. Renommer la hiérarchie Calendar.
29. Enregistrer
5
3ACI Option GDC 2020/2021
25. Sur la page Fin de l’Assistant, vous pouvez voir le groupe de mesures InternetSales et ses
mesures. Vous pouvez également voir les dimensions Date, Customer et Product.
26. Cliquez sur Terminer pour terminer l'assistant.
6
3ACI Option GDC 2020/2021
34. Ouvrir la dimension Product. Pour ce faire, cliquer sur la dimension Product dans le noeud
Dimensions de l'Explorateur de solutions.
35. Dans le volet Attributs, remarquer l’attribut Product Key qui a été créé par l'Assistant Cube.
36. Glisser les colonnes suivantes de la table Product dans le volet Vue de source de données
la source de données vers le volet Attributs :
- EnglishProductName
- StandardCost
- Color
- SafetyStockLevel
- ReorderPoint
- ListPrice
- Size
- SizeRange
- Weight
- DaysToManufacture
- ProductLine
- DealerPrice
- Class
- Style
- ModelName
- StartDate
- EndDate
- Status
37. Créer une hiérarchie d’analyse en glissant dans l’ordre les attributs suivants :
- Product Line
- Model Name
- English Product Name
38. Renommer la hiérarchie Product Model Lines.
39. Enregistrer
7
3ACI Option GDC 2020/2021
42. Passer en revue les propriétés de déploiement pour le projet. Par défaut, le modèle de projet
Analysis Services configure un projet Analysis Services pour déployer progressivement tous
les projets à l'instance par défaut d'Analysis Services sur l'ordinateur local, pour créer une base
de données Analysis Services avec le même nom que le projet, et pour traiter les objets après
déploiement en utilisant l'option de traitement par défaut.
Remarque : En cas de problème à ce stade ne pas hésiter à reconstruire (Rebuild) le cube.
43. Cliquer sur OK
44. Dans l'Explorateur de solutions, cliquer-droit sur le projet AdventureWorksAnalysis, puis
cliquer sur Déployer.
Bon courage !