Vous êtes sur la page 1sur 29

Gouttel Zakaria -SIT2-

Résumé
Cours BI
Code Couleur: Connecteurs(Composants), Actions, Objectifs(Finalités)

Chapitre 1 : Intro au Décisionnel


1. La BI ou système décisionnel oriente la stratégie de l’entreprise.
a. Il est utilisé par les managers beaucoup plus que les informaticiens
b. 10 personnes au min travaillent sur la partie DWH.
c. 10 personnes au min travaillent sur la partie BI.
d. Peut être utilisé par l’équipe marketing.
2. La méthode de Kimball est plus simple que celle d’Inmon en pratique (Car celle d’Inmon
est très compliquée)
3. Vue matérialisée: Stocker le résultat d’un select.
4. Le Reporting permet d’avoir une compréhension globale et simplifiée.
5. Informatique Décisionnel (BI ou Business Intelligence) :

Définition 1 : Moyens, Outils et méthodes (MOM) qui permettent de collecter, consolider


et modéliser les données matérielles ou immatérielles d’une entreprise pour offrir une
aide à la décision.

Définition 2 : La BI est un terme générique englobant applications, infrastructure, outils


et les meilleures pratiques permettant l’accès et l’analyse de l’information afin
d’améliorer et d’optimiser les décisions et les performances.

6. SI Décisionnel : Ensemble de données organisées de façons spécifiques, facilement


accessibles et appropriées à la prise de décision, pour piloter une entreprise. (Destiné
Management, il est censé répondre à un certain type de question)
a. Un SI décisionnel doit répondre à des questions imprévisibles, formulées dans
le langage du secteur d’activité concerné et pouvant donner lieu à d’autres
questions.
7. Enjeux du Décisionnel
a. Enjeux Data:
Croisement de multiples informations (Données) provenant des différentes
parties d’une organisation pour prendre une décision stratégique. Des données:
1. Éparpillées
2. Hétérogènes

1
3. Destinées Action et pas analyse (BDD de production comme
exemple)
4. Volatiles (Modification engendre une perte d’historique)
b. Objectifs BI:
i. Transformer les données en Décisions
ii. Analyser l’activité, succès et échecs
iii. Planification
iv. Piloter la performance
c. BI pour qui?
i. Management
ii. Directions (tout niveau)
iii. BI for Masses
d. Pourquoi pas du transactionnel (OLTP) pour l’analyse des données?
i. Affecte les performances (Production)
ii. Données rarement dans une seule source de données
iii. Données non sûres, modifiées régulièrement, et souvent trop précises
iv. Contraintes sur la visualisation des données
v. Entité Association pas adapté pour l’analyse
8. Données, Informations, Connaissances (Métrique Décisionnelle comme dans SIAD)
a. Données: Résultat directe d’une mesure, ne permet pas de prendre une décision
b. Informations: Données à lesquelles ont été attribuées un sens et une
interprétation.
c. Connaissances: Résultat de réflexion sur une information, une réflexion basée sur
expériences, idées, valeurs….
9. OLTP et OLAP
a. OLTP: Online Transactional Processing, Offre à une application l’utilisation d’un
serveur BDD de façon transactionnelle.
b. OLAP: Online Analytical Processing, Permet aux analystes/managers/décideurs,
d’accéder rapidement, d’une manière intéractive et consistante, à des
informations variées, transformées pour refléter les dimensions réelles d’une
entreprise.
10. Un projet Décisionnel: Collecter =>Intégrer => Analyser => Présenter.
11. Phases d’un projet décisionnel
a. Etudes des besoins (et de l’existant)
b. Modélisation et conception
c. Implémentation en DWH
d. Implémentation des outils d’exploitation
12. Facteurs Risque d’un projet décisionnel:

2
a. Orientation technologique projet plutôt qu’utilisateur
b. Fraîcheur insuffisante des informations
c. Outils et architectures techniques inadaptées
d. Alimentation trop longue et irrégulière.
13. Architecture d’un Système décisionnel

14. Caractéristiques d’un Data Warehouse


a. Orienté Sujet
b. Intégré ( Données Standardisées pour éviter les anomalies)
c. Non Volatile (Pas de MAJ ou Suppression)
d. Historisé
e. Destiné à l’exécution des requêtes sur des données statiques
f. Utilisation des vues matérialisées et la dénormalisation (Redondance du DWH)
15. DWH VS DM
a. Un Datamart (DM) est un sous ensemble d’un datawarehouse, destiné à
préagréger les données
b.

DWH DM

Recouvre L’ensemble des données Recouvre qu’une partie des données

Problématiques liées à l’analyse visée Problématique liée à un sujet


par l’entreprise particulier

3
16. Modélisation multi-dimensionnelle: Il s’agit de présenter les données sous forme
standardisée et intuitive, ce qui garantit un accès hautement performant.
17. Le modèle DWH en étoile répond aux besoins de performance et simplicité des
requêtes.
18. Limites du modèle Entité Association
a. Complexe en Jointure
b. Dégradation des performances
c. Pas de compréhension pour l’utilisateur
d. Données historiques difficiles à représenter
19. Objectifs du modèle Décisionnel:
a. Être performant pour le calcul des agrégats
b. Être facile à comprendre pour l’utilisateur final
c. Être suffisamment performant au chargement pour les MAJ (ETL)
d. Être évolutif
20. Outils du Décisionnel
a. ETL: (Extract, Transform, Load) C’est le processus d’extraction des données depuis
les tables du système, vers les tables du datawarehouse.
b. Tableaux de bord: Outil décisionnel puissant qui favorise l’exploration intuitive des
données et la visualisation dynamique des mesures et indicateurs de gestion
pertinents (KPI)
c. Reporting: Agréger les données complexes pour la Création graphique des
rapports, pour avoir une compréhension globale et simplifiée.

4
Chapitre 2 : Modélisation Multi-Dimensionnelle
P1: Principes de modélisation multidimensionnelle
● Le Datamart est inclu dans le Datawarehouse
● dans le datamart, le niveau de granularité (détail) est supérieur
● on utilise le datamart par souci de performance (pas obligatoire)
● Etude Intégrée: Comprendre les relations entre toutes les données
● Métadonnées: Documentation des tables de faits et les dimensions
● Spool: Orienter l’affichage vers autre chose que l’écran
● Dans la projection, il faut mettre des attributs dans le GROUP BY pour les projeter.
● Le modèle multidimensionnel est un résultat de:
○ Analyse des besoins
○ Analyse des données disponibles (Quantification,Qualification, Intégration)
● Méthode Générale de modélisation
○ Analyse des besoins
○ Analyse des données disponibles
○ Sélection des requêtes réalisables
○ Conception DM/DWH
● Requêtes décisionnelles
○ Syntaxe: Quantité de faits ./dimension 1 ./dimension 2…..
○ Réponse: Rapport sous forme d’une table ou graphique
● Hiérarchie: Ensemble de niveaux de granularité croissants d’une même dimension

5
P2: Techniques de modélisation
a. Etude Séparé des données en terme de qualité/utilité
b. Étude intégrée des données: Comprendre les relations entre elles.
c. Intégration des besoins: Utilisez les besoins réels des utilisateurs
d. Arbitrage pour choix de données: Diagramme Utilité/Qualité (4 Cadrants, top right:
Conserver, Bottom left: Abandonner, 2 restant: Évaluer)

P3: Modélisation Avancée


1. Fact-full Fact table (Table de faits qui comporte des (attributs) faits qui seront agrégés par
la suite selon les dimensions)
2. Factless Fact table (Table de faits sans fait, les mesures dans cette table sont des
événements unitaires, un enregistrement, une ligne dans cette table, la table ne contient
que des clés étrangères, on utilise généralement count pour calculer le nombre des
événements, rien à sommer ‘Possible de rajouter un attribut constant dans chaque ligne
de 1 pour faire sum ‘)

6
3. Clés Artificielles: Des entiers compressés qui permettent de gérer les valeurs nulles, plus
performantes que les clés réelles. Elles assurent l’indépendance aux évolutions futures
du système.
4. Il faut gérer les valeurs nulles + les erreurs dans les données (en ajoutant du text indicatif
ou valeur numérique) dans une table de faits
5. Faits semi Additifs: ne peuvent être additionnés sauf sur une partie des dimensions du
modèle
6. SCD: Slowly Changing Dimension
a. Solutions
i. Type 1: Remplacer les valeurs (sans sauvegarde historique)
ii. Type 2: Ajouter une ligne supplémentaire (multiplie le num de ligne)
iii. Type 3: Ajouter un attribut( gère un seul niveau d’historique)
iv. Type 3+: Ajouter plusieurs attributs
v. Type 6: Combinaison des trois types
7. Types d’attributs de dimension
a. Analyse ( de regroupement, généralement utilisées dans les GROUP BY)
b. Description ( pas utiles à l’analyse, mais peuvent améliorer l’identification d’un
enregistrement particulier)
c. Agrégation de faits (annoté d’un a dans la table des faits, des attributs qui sont
eux mêmes issues d’une table de faits)
8. Attribut Date dans les DWH : Toujours présent (ou presque)

P4: Autres Techniques d’exploitation de données


● Les Fichiers CSV
○ Création: Se fait en 2 étapes
■ Ecrire un script en SQL (ou autre)
■ Exécuter-le pour donner le fichier CSV correspondant à telle condition
○ Variantes:
■ CSV à Largeur de colonne Fixe (Pas de séparateur)
■ XML
■ Tables Externes (Créer le schéma d’une table dans le fichier CSV)
○ Inconvénients:
■ Pas Standardisé
■ Encodage non spécifié => Prb lors du changement des Os
● Agrégations
○ SUM
○ Count
○ MIN

7
○ MAX
○ AVG
● Restriction sur une Agrégation (Avant le GROUP BY, avec un WHERE ou Après avec un
HAVING)
● Projection dans une agrégation (si un attribut est projeté directement, il faut qu’il figure
dans le GROUP BY)
● Fenêtrage des données (Avec ROWNUM, se limiter à un nombre de ligne spécifié, ou un
ensemble défini entre N1 et N2 par exemple)

Chapitre 3: Modélisation MultiDimensionnelle Avancée


P1: Niveau Logique
● ROLAP (SGBD Relationnel, dépend sur les requêtes SQL)
○ Données Stockées dans les tables relationnelles
○ Inconvénients: Pas très performant, stocke beaucoup de données
● MOLAP (Cube, n’est pas standardisé)
○ Données stockées dans une table multidimensionnelle
○ Inconvénient: On ne peut pas stocker beaucoup de données.
● HOLAP (Combinaison de ROLAP et MOLAP)
○ Données peu utilisées dans les tables relationnelles
○ Données fréquemment utilisées dans les tables multidimensionnelles.
○ Requête HOLAP => SQL + MDX
1. Cube OLAP: Modélisation multidimensionnelle facilitant l’analyse d’une mesure
a. Le cube est manipulé via plusieurs opérateurs OLAP (SQL/MDX)
2. Méthode manipulation cube:
a. Forage (Granularité)
i. Rollup (Réduire le degré, Semaine=> Mois=> Année (par exemple))
ii. Drill-Down (Augmenter le degré, Mois=> Semaine=> Jour)
b. Sélection/Projection (l’outil BI génère dans la plupart des cas les requêtes
automatiquement)
i. Slice: Restriction(Where), choisir une tranche de cube selon plusieurs
dimensions
ii. Dice: Select, Projection selon plusieurs axes
c. Restructuration
i. Pivot (Tourner le cube)
ii. Switch (Changer position entre deux membres (valeurs d’attribut) de la
dimension)

8
iii. Split (Éclater le tableau en table croisée)
iv. Nest (Imbriquer des membres de dimensions différentes)
v. Push (Combiner les membres d’une dimension aux mesures)
vi. AddM, DelM (Ajouter ou supprimer une mesure à afficher)
d. Opérations entre cubes
i. Jointures (Entre cubes ou slices du Cubes)
ii. Union

P2: SQL pour OLAP


● Rollup (L’ordre est important)
○ Group By Rollup (Year, month,day)
■ Year,month,day
■ Year,month
■ Year
○ Group by Rollup() => sum
● Group by Cube
○ Group By Cube(Year,month day)
■ Year,month,day
■ Year,month
■ Year,Day
■ Year
■ Month,Day
■ Month
■ Day
● Rank(): Classement
○ Select Rank() over ([Partition by a] order by b) as rank desc) Group by a….
● Rank(N): Projeter le classement d’un enreg hypothétique dont la valeur de b est n
○ Select Rank(N) Within GROUP (Order by b) from ….
● Sum(Sum(a))/Sum(Count(a)): Total Cumulé, permet de calculer la somme cumulé des a
selon l’évolution b (qui doit être un attribut de regroupement)
○ SELECT SUM(SUM(a)) OVER (ORDER BY b ROWS UNBOUNDED PRECEDING)
FROM … GROUP BY b …
● Dans SQL Dev, la somme se fait par type (donc s’il ya des null on aura null comme
résultat)
● Rank(N) permet de répondre aux questions style ‘un nouveau dvd est vendu N fois, quel
est son classement
● RANK avec PARTITION (faut prendre en considération le GROUP BY)

9
Chapitre 4 : MDX
P1: Présentation de MDX
SAP: Première Société qui a créé le CUBE

a. MDX : Construit une vue multidimensionnelle


b. SQL : Construit une vue relationnelle
c. Mesure dans MDX s’appelle Dimension

P2: Composants d’une requête MDX


● SELECT [<spécification d’un axe> [, <spécification d’un axe>...]] FROM [<spécification d’un
cube>] [WHERE [<spécification d’un filtre (slicer)>]]
● { }: Créer une dimension
● ( ) : Sélection d’un tuple dans WHERE
● [ ] : Représentation d’espaces, caractères spéciaux et interprétation non numérique de
chiffres (optionnel)
● Mesure : Élément d’une dimension
● Membre: Valeur
● Mesure: Peut être dans WHERE ou SELECT (par défaut c’est la somme)
● Tuple partiel => Manque d’info
● Si Mesure pas spécifiée donc Valeur par défaut et fct d’agrégation , sinon [TOUS] ou
utiliser le premier membre
● Lorsque on crée un cube, on spécifie la valeur par défaut
● Ensemble (Sets): Plusieurs tuples ordonnées sur la même dimension
● Measure soit par défaut soit la 1ère mesure
● AXE : Ensemble suivi par ON COLUMNS, ROWS ou AXIS() (AXIS(0), AXIS(1))
● Possible d’avoir plusieurs axes

P3: Filtres et Opérateurs


● Filtres: Par exemple un slice dans Where
● Il n’est pas autorisé de préciser une tranche avec plus d’un membre d’une même
dimension
● FROM Spécifie les cubes de départ (ensemble de cubes nécessaires à la création du
cube résultat, Si plusieurs cubes sont nécessaires, cela implique une jointure
multidimensionnelle)

10
● WHERE Spécifie la dimension de filtrage, et select les dimensions (les axes)
● Commentaires en MDX: /* */, //, --

Chapitre 5: MDX Avancé


P1: Résumé MDX
● Instruction MDX simple :
SELECT axis [,axis] FROM cube WHERE slicer [,slicer]

● La clause SELECT est utilisée pour définir les dimensions des axes et la clause WHERE
pour spécifier les dimension de filtrage

● SELECT : si le cube est vu comme une structure à n dimensions, cette clause spécifie les
arêtes du cube a retourner :

○ Exemple :
SELECT Set_1 ON axis_1,
Set_2 ON axis_2,
Set_3 ON axis_3, …
où axis_n peut être COLUMNS ou ROWS, 0, 1, …

● WHERE : Les dimensions de filtrage contiennent les seuls membres avec lesquels le cube
est filtré (slicé)

● Un membre est un élément spécifique de donnée dans une dimension :

○ Exemples
[Time].[2012]
[Customers].[All Customers].[Mexico].[Mexico]
[Product].[All Products].[Drink]

● Un tuple est une collection de membres de différentes dimensions :

○ Exemples :
([Time].[2012], [Product].[All Products].[Drink])
(2012, Drink)
(2012, [Customers].[All Customers].[Mexico].[Mexico])

● Un Set est une collection de tuples utilisée pour construire un axe :

11
○ Exemples
{[Time].[ 2012], [Time].[ 2013], [Time].[ 2014]}
{(2012, Drink), (2013, Drink)}

P2: Gestion des membres et des tuples


● Requête MDX à 3 Axes, le résultat est un Cube à 3 dimensions (Axes) est difficile à
interpréter mais c’est correct
○ Exemple de requête: SELECT { Continent.[Europe], Continent.[Asia] } ON AXIS(0),{
Product.[Computers], Product.[Printers] } ON AXIS(1), { Years.[2012], Years.[2013] }
ON AXIS(2) FROM Sales
○ Il est possible de réécrire la requête en utilisant le nesting (Emboîtement), on
utilise deux dimensions (axes) avec une dimension qui emboîte la troisième.
○ Nouvelle requête: SELECT { Year.[2012], Year.[2013] } ON COLUMNS, { (
Continent.Europe, Product.Computers ), ( Continent.Europe, Product.Printers ),
( Continent.Asia, Product.Computers ), ( Continent.Asia, Product.Printers ) } ON
ROWS FROM Sales
● Il est possible d’étendre le cube avec les membres calculés;
○ Syntaxe: WITH MEMBER parent_dim.new_name AS 'expression' (Avant le SELECT)
○ Les membres calculés peuvent être utilisés comme les membres ordinaires, dans
la définition des axes et dans les filtres WHERE
○ Il est possible de définir des membres calculés à partir d’autres membres calculés
○ N’est pas stocké dans le cube
○ Utiliser FORMAT_STRING pour définir le format d’affichage (#.#%)
○ Si on utilise TIME, le calcul est basé sur la dimension TIME et non pas sur la
measure
● Previous Member (prevmember) retourne le membre précédent du membre spécifié
● Au lieu de retourner une erreur, MDX utilise la notion de membre NULL.
○ Quand une cellule contient un membre null, la valeur numérique de cette cellule
est 0
○ Toute fonction appliquée à un membre null retourne null
○ si un membre null est inclu dans un Set il est ignoré
● La Cellule EMPTY est une notion liée à celle de membre NULL.
○ Donnée n’existe pas dans le cube (hors cube) => dite EMPTY
○ Lorsqu' une donnée n’existe pas, sa valeur numérique = 0
○ Pour les traiter, MDX propose 3 solutions

12
■ Le prédicat IsEmpty, appliqué sur un tuple, il retourne TRUE si c’est une
cellule EMPTY
● Exemple: SELECT [City] ON 0, [Measures].[SalesAmount] ON 1
FROM [Sales] WHERE NOT
IsEmpty( ([Time].[2010],[Measures].[SalesAmount]) )
■ La clause NON EMPTY, qui permet de filtrer dans une requête MDX pour
afficher que les cellules non EMPTY
● Exemple: SELECT ([Date].[Year].[2005]) ON 0, NON EMPTY
[Date].[Quarter].MEMBERS ON 1 FROM [Sales] WHERE
[Measures].[SalesAmount]
■ La fonction NON EMPTY, pour exclure les membre EMPTY d’un AXE lors
du SELECT (mais peut être utilisé autre part dans la requête)
● Exemple: SELECT ([Date].[Year].[2005]) ON 0,
NONEMPTY([Date].[Quarter].MEMBERS,
[Measures].[SalesAmount]) ON 1 FROM [Sales] WHERE
[Measures].[SalesAmount]

P3: Fonctions MDX


● Fonctions Simples :
○ level.MEMBERS: affiche tous les membres d’un certain niveau hiérarchique, inclut
le membre ALL s’il existe
○ level.children: retourne un ensemble ordonné des enfants d’un membre (All pas
considéré)
○ Descendants(X,L) : Ensemble des descendants d’un membre x au niveau L
■ Exemple: SELECT {([Measures].[Store Sales])} On COLUMNS,
DESCENDANTS ([Time].[1998], [Quarter]) ON ROWS FROM [SALES]
○ CROSSJOIN( ) : Retourne le produit croisé de deux ou plusieurs sets
■ Exemple: SELECT {CrossJoin ({([Time].[1997].[Q1]), ([Time].[1997].[Q2])},
{([Measures].[Unit Sales]), ([Measures].[Store Sales])} )} ON COLUMNS,{
([Product].[Drink].Children) } ON ROWS FROM [Sales]
● Fonctions de Navigation :
○ CurrentMember : Retourne les coordonnées d’une cellule dans le sous espace de
la requête
■ Exemple: WITH MEMBER Measures.PercentageSales AS
'(Regions.CurrentMember, Sales) / (Regions.CurrentMember.Parent,

13
Sales)',FORMAT_STRING = '#.00%' SELECT { Sales, PercentageSales } ON
COLUMNS, Regions.Cities.MEMBERS ON ROWS FROM Sales
○ Parent / FirstChild/ LastChild: Déplacement vertical sur la hiérarchie, changement
de niveau
○ NextMember / PrevMember : Déplacement horizontal à l’intérieur d’un même
niveau
● Fonctions sur les Sets
○ Head
■ Head(<< Set >> [,<< Numeric Expression >>])
■ Retourne les éléments de tête d'un set
○ Tail
■ Tail(<< Set >> [,<< Numeric Expression >>])
■ Retourne les derniers éléments d’un Set
○ Subset
■ Subset(<< Set >>, << Start >> [,<< Count >>])
■ Retourne un sous-ensemble d'éléments d'un set
○ TopCount
■ TopCount(<< Set >>, << Count >> [,<<Numeric Expression >>])
■ Retourne les premiers éléments ayant la plus grande valeur de la mesure
○ Order
■ Order (<< Set <<, {<<String Expression>> | <<Numeric Expression >>} [, ASC |
DESC | BASC | BDESC]) (BDESC, BASC, sans partition)
■ Tri des éléments d’un set
○ Filter
■ Filter(<< Set >>, << conditions >>)
■ Retourne les éléments d'un set qui satisfont le filtre

P4: Expressions Avancées en MDX


● Analyse Comparative: Présenter une mesure à côté de la même mesure dans une
période de temps antérieure
○ En utilisant la fonction ParallelPeriod : ParallelPeriod(["Level"[, "expression
numérique" [, "MEMBERS" ]]])
○ Exemple: WITH MEMBER [Measures].[Unit Sales Q-1] AS ( ParallelPeriod(
[Time].[2012].[Q1], 1) ) SELECT { ([Measures].[Unit Sales]), ([Measures].[Unit Sales
Q-1]) } ON COLUMNS, { ([Time].Children) } ON ROWS FROM [Sales]
● Calcul Cumulatif: Calculer les cumuls sur une période de temps
○ Accès par membre génère une requête trop longue
○ Solution: Utiliser la fonction Descendants ( 1er Param , 2eme Param )

14
■ 1er paramètre : retourne un ensemble de descendants d'un membre sur
un niveau ou d'une distance spécifiée
■ 2ème paramètre peut être soit une expression de niveau spécifique, soit
un nombre indiquant le nombre de niveaux à parcourir
○ Exemple:
■ SELECT {([Measures].[Unit Sales]) } ON COLUMNS, {
Descendants([Time].[2012],2)} ON ROWS FROM [Sales] ( Calcul des
descendants d'une distance égale à 2 niveaux (mois) à partir de l'année
2012
■ SELECT { ([Measures].[Unit Sales]) } ON COLUMNS, {
Descendants([Time].[2012].[Q2],[Time].[Month]) } ON ROWS FROM [Sales] (
calcul des descendants du niveau mois du membre, dont la valeur est le
2ème semestre
● Expressions conditionnelles (IIF): Pour réaliser des tests conditionnels
○ Exemple: Afficher une interprétation textuelle de la performance par rapport à la
même période antérieurement
■ Définition des membres:
WITH
MEMBER [Measures].[Q-1] AS ( ParallelPeriod([Time].[2012].[Q1],1,
[Time].CurrentMember), [Measures].[Unit Sales] )
MEMBER [Measures].[Evolution] AS ( ([Time].CurrentMember,
[Measures].[Unit Sales]) - (ParallelPeriod([Time].[2012].[Q1],1,
[Time].CurrentMember),[Measures].[Unit Sales]) )
MEMBER [Measures].[%] AS ( [Measures].[Evolution] /
(ParallelPeriod([Time].[2012].[Q1],1, [Time].CurrentMember), [Measures].[Unit
Sales]) ), format_string = "Percent"
MEMBER [Measures].[Performance] AS IIF([Measures].[Q-1]<>0,
IIF([Measures].[%] < 0, "-", IIF([Measures].[%] > 0 and [Measures].[%] < 0.01,
"+", IIF([Measures].[%] > 0.01 and [Measures].[%] < 0.05, "++", "better
performance") -- Mieux que 5% ) ), "null")
■ Affichage du résultat
SELECT { ([Measures].[Unit Sales]), ([Measures].[Q-1]),
([Measures].[Evolution]), ([Measures].[%]), ([Measures].[Performance]) } ON
COLUMNS, Descendants([Time], 1) ON ROWS FROM [Sales]

15
Chapitre 6 : Intégration des données
P1: Définitions & Généralités
● Définition de l’intégration des données:
○ Il s’agit d’un processus qui permet de regrouper et fusionner des données
provenant d’une multitude de sources de données hétérogènes.
○ Il permettra d’homogénéiser les données.
○ Pour pouvoir par la suite répondre aux interrogations des décideurs ( via
dashboard, reporting..)
● Pourquoi Intégrer les données:
○ Sources diverses.
○ Cross-plateforme.
○ Applications ‘legacy’ utilisant des technologies de BD obsolètes (H2, …)
○ Historique de changement non préservé.
○ Qualité douteuse et instable des données.
○ Structure changeante.
○ Incohérence entre les différentes sources.
○ Formats ambigu ou difficiles à comprendre.
● à Quoi ça va servir:
○ Piloter l’ensemble des BD internes & externes de l’organisation.
○ Organiser le processus de collecte et formattage des données informatives.
○ Assurer un accès rapide, simple, efficace aux données.
○ Améliorer la consultation et l'analyse des données.
○ Organiser et homogénéiser les données de l’entreprise
○ Réaliser des analyses précises (reporting, Dashboard..)
○ Améliorer la prise de décision.

P2: Approches d’intégration des données


● ETL (Extract, Transform, Load)
○ Permet la consolidation des données à travers ces trois opérations:
■ Extract : Identifier et extraire les données ayant subi des modifications
durant la dernière exécution du ETL
■ Transform: Nettoyer, agréger et intégrer les données par des
transformations diverses.

16
■ Load: Charger les données dans le DWH et gérer le changement des
données modifiées.
● EII (Enterprise Information Integration)
○ Les sources de données forment une fédération (vue unifiée)
■ Vue unifiée via une BD virtuelle transparente aux applications
■ Toute requête à cette BD est décomposée en sous requêtes aux sources
concernées, les résultats ensuite assemblés en un seul.
■ Consolide uniquement les données utilisées
■ Traitement en ligne coûteux
● EAI (Enterprise Application Integration)
○ Repose sur l’intégration et partage des fonctionnalités des applis sources via une
architecture SOA (Service Oriented)
■ Utilisé en temps réel (semi-temps réel)
■ Ne remplace pas ETL , mais le simplifie
■ Fournit au DWH des données provenant de plusieurs sources (source data
pushing)
■ Repose sur le principe des Web services pour communication entre les
différents tiers qui fournissent leurs services (réaliser des traitements)
● Avantages & Inconvénients

Avantages Inconvénients

ETL ● Optimisé DWH ● Processus de développement coûteux


● Traitement par lot (grande quantité de données) ● Gestion manuelle des changements
● Agrégation & transformation complexe des données ● Changements requiert de l’espace
● Planification de l’exécution ETL par administrateur disque (staging area)
● Outils GUI disponibles, améliorant la productivité. ● Exécution indépendante du besoin réel
● Unidirectionnel (Source vers DWH)
● Données latentes entre source et DWH

EII ● Accès relationnelle aux BD non relationnelles ● Requiert la correspondance des clés
● Exploration des données possible avec le modèle du DWH entre sources
● Adapté à l’intégration des sources Web ● consolidation plus complexe que ETL
● Déploiement accéléré ● Surcharge les systèmes source
● Réutilisable par ETL dans une itération future ● Limité en quantité de données
● Aucun déplacement ou stockage supplémentaire ● Transformations limitées
● Consommation bande passante

17
EAI ● Facilite l’interopérabilité ● Support limité aux transformation et
● Temps réel (semi) agrégation des données
● Transfère que les données nécessaires ● Taille des transactions limitées (en rows)
● Contrôle de flot d’information ● Développement complexe
● Gestion complexe de l’intégrité
sémantique
● Consomme la bande passante, affecte
performances

● Comparaison entre approches

ETL EII EAI

Flot de données Unidirectionnel Bidirectionnel Bidirectionnel


(Source=>Entrepôt)

Mouvement de données En lots au moment de la déclenché par une


requête transaction

Latence Journalier à Mensuel Temps Réel Quasi temps réel

Transformations/Agrégations Grande capacité Moyenne Capacité Faible capacité

Volumétrie Grande (Milliards de ligne) Moyenne (1 million) Petite (1000 lignes)

Quand l'utiliser? Transformations Relier un DWH Intégration de


Complexes + Grand existant avec des transaction + Requêtes
volume de données données de sources analytiques simples +
spécifiques + sources de données
requêtes simples non accessibles
directement

18
● ELT (Extract, Load & Transform) :
○ Variante d’ETL, largement utilisée dans le Big Data, utilise le principe de Data
Lake
○ Dépasser les limites d’ETL (Développement long et coûteux + traitement de
données important lors de la conception)
○ Solutions:
■ Utiliser les technologies Big Data (Hadoop, Spark)
■ Changement rapide (presque temps réel)
■ Les lacs de données pour stockage des données non structurées
■ Transformations au moment de la requête
■ Technologies moins matures que ETL avec implémentation plus complexe
○ Comparaison entre DWH et Data Lake

Data Warehouse Data Lake

Données Structurées, traitées semi-/non-structurées,


brutes

Traitement Schéma-à-l’écriture Schéma-à-la-lecture

Stockage Coûteux pour grande Stockage à faible coût


quantité

Agilité Config Fixe, moins agile Hautement agile,


reconfig au besoin

Sécurité Mature Moins mature

Utilisateurs Professionnel Business Experts Data Science

P3: Outils d’intégration de données

● Propriétaires
○ ETL
■ Oracle (Warehouse Builder, Data Integrator)
■ IBM ( Infosphere Information Server )
■ Microsoft (SQL Server integration services)
○ EII
■ SAP ( BusinessObjects Data Federator)

19
■ IBM (Websphere Federation server)
○ EAI
■ IBM (Websphere Message Broker)
■ Microsoft (BizTalk Server)
■ Oracle (SOA Suite)
● Open Source (ETL)
○ PDI (Pentaho Data Integration)
■ Marche avec tout type de données
■ Nettoyage des données
■ Traitement parallèle multi-task
■ Visualisation & Modélisation dimensionnelle intégrée
■ Requêtes & composants de transformation réutilisables
■ Basé sur JAVA
■ Intégré avec la suite open source de Pentaho
■ Extensible
○ TOS (Talend Open Studio)
■ Intégrable dans Eclipse
■ ETL générateur de Code (Java, PERL)
■ Offre des solution Big Data, Data Integration, Data Quality & ESB
○ Job avec TOS
■ Définir les sources et destination du flux de données
■ Utiliser Tmap pour connecter plusieurs sources
■ Orchestration & Gestion de flow
■ Gestion des erreurs et déploiement

20
Chapitre 7 : ETL

P1: Définition & Architecture

● L'ETL est le processus qui permet d’alimenter un Datawarehouse à partir de données


externes généralement issues de bases transactionnelles.
○ Il récupére les données et les traite pour qu’ils correspondent au modèle
multidimensionnel
○ Traitement peut comprendre le nettoyage.
○ ETL= 80% du travail dans un projet décisionnel, car complexe et ne doit rien
laisser échapper (sinon mauvaises data dans le DWH)
○ Un Bon ETL= Complétude + L'exhaustivité + Prise en charge data depuis source
jusqu’au DWH
● Caractéristiques techniques d’un Bon ETL
○ NB Élevé de connecteurs
○ Open Source
○ Simple à utiliser
○ Cloud-Compatible
● Modes de fonctionnement d’un ETL
○ Batch: Alimenter le DWH par processus batch périodiques
○ Flux: DWH alimenté en temps réel et en flux (pour des applis particulières)
● Types d’ETL:
○ Incrémental:
■ Données modifiées dans les différentes sources
■ ETL répercute les changements dans le DWH (mise à jour des faits ou dim)
○ Non-Incrémental
■ One Shot ETL
■ ETL qui refait 100% du processus à chaque changement (vider et re
remplir)
■ Pas d’historisation
● Architecture des ETL
○ E: Zone d’extraction (unifier les datasources, en faire une seule entrée)
■ Vue transactionnelle intégrée
○ T: Zone de transformation (Traiter les données entrées et fournir des points
d'accès “API”)
■ Peut être caché dans l’architecture (2 niveaux)

21
○ L: Zone de chargement (loading) (Implémenter les DWH/DM)

P2: Tâches & Étapes

● Tâches:
○ Déterminer les données relatives à la solution
○ Déterminer les sources (internes/externes)
○ Définir les règles d’extraction
○ Définir les règles de transformation & nettoyage
○ Planifier l’agrégation
○ Préparer ‘Staging Area’ & les outils AQUA
○ Définir les procédures pour chargement des données
○ ETL des tables DIM
○ ETL des tables FAIT
● Phases:
○ Extraction
■ 3 façons de faire:
● Push: Pousser les données dans l’ETL (si occupé, pas de
chargement)
● Pull: Tirer les données vers l’ETL (possible de surcharger le
système)
● Push-Pull: Mélange (communication existante entre ETL et Source)
■ Poser les bonnes questions pour déterminer les caractéristiques du
système (disponibilité, modalités d'accès, extraction…)
■ Deux Types d’extraction
● Temps réel: au moment où les transactions sont faites dans les
sources
○ O1: Capture grâce au journal des transactions (avant
refresh, ne marche pas avec legacy) (ne nécessite pas mod
aux sources)
○ O2: Capture avec Triggers (exige modification de la source,
pas possible avec legacy)
○ O3: Capture avec les applications sources (exige des
modifs aux applis, coûts supplémentaires de dév, marche
pour legacy)

22
● Différé: Extraire les changements durant une période donnée
(mensuel, journalier, …)
○ O1: Capture basée sur Timestamps (exige modifs aux
sources, marche avec legacy, suppression compliquée)
○ O2: Capture par comparaison des fichiers (Extraire les diff
entre deux captures successives, marche sur legacy,
coûteuse en stockage)
○ Traitement
■ Poser les bonnes qsts (les transformations à faire, zone
intermédiaire,politique de traitement des erreurs, affichage à l’utilisateur)
■ Exemples
● Standardisation
● Déduplication
● Tri
● Agrégation
● Fusion de champs…
■ Clés artificielles pour identifier les dimensions (attribut PK pour chaque
table)
● Mémoriser la correspondance entre transactionnel et PK dans le
multidimensionnel (persister les changements dans staging, ou
conserver les clés transactionnelle dans le DWH)
○ Chargement
■ Routine d’insertion SQL (insertion d’un enreg à la fois, lente mais fait
vérifier la qualité de data)
■ En masse: Plus rapide mais ne compte pas l’intégrité des données
■ Questions à poser (cas d’échec, rollback, version control, validation et
détection des erreurs)
■ Gestion des erreurs:
● Arrêt de chargement pour régler l’erreur (coûteux dans
l’incrémental)
● Rejeter la donnée erronée (marche si erreur minime, répartis sur
les faits, traités au fur et à mesure)
○ Pour faire ça, il faut créer une copie du DWH pour les
données rejetées uniquement
○ Prévoir espace de stockage des commentaires
● Laisser passer avec journalisation pour vérification en aval (marche
si erreur minime, répartis sur les faits, traités au fur et à mesure)
○ Ajouter des valeurs par défaut pour indiquer l’erreur

23
○ journaliser les cas traités par défaut dans une table temp
■ Chargement et ETL incrémental

● DWH mis à jour par ajout de nouveaux faits ou ajout/modif des dim
○ pour ajouter des faits, on peut remplacer la source des faits
à chaque incrément (remplacer old par new) ou ajouter de
la mm source à chaque incrément (savoir quel fait est déjà
intégré et quel fait ne l’est pas)
○ Ajouter des dim implique ajouts de nouveaux faits et des
dimensions dans les sources transactionnelles
■ Solution: Supprimer et recréer dim ou Gérer l’ajout
des nouveaux enreg après identification
■ Stratégie pour gestion des SCD nécessaire
○ La mise à jour d’une Dim implique ajouter des nouveaux
faits ou modifs des données de dimensions dans les
sources transactionnelles
■ Dans le cas ou il ya plusieurs sources, il faut
contrôler les doublons et comparer/confronter les
différentes sources

P3: Voir cours + TP PDI/Tableau….

24
Chapitre 8 : Applications BI
● Applications fournies pour répondre aux besoins analytiques de l’utilisateur
○ C’est ce que voit la majorité des utilisateurs finaux
○ Chaque type d’appli => besoin analytique différent
● Critères de conception d’une application BI
○ Validité (Fournir info correctes et précises aux utilisateurs)
○ Performance (Délai réponse aux requêtes)
○ Convivialité (système simple à utiliser même pour utilisateur non expérimenté)
○ Apparence
○ Maintenabilité (Appli documentée avec plans d’amélioration)
● Types d’applis BI
○ Requêtes Analytiques (OLAP)
■ Analyses Multidim
■ Traduire le besoin business en requêtes SQL/MDX
■ Rend la complexité des données transparente aux utilisateurs
■ Techniques :
● Utilisation des vues
● Table des faits agrégée
● Transformation des requêtes pour tenir compte de l’emplacement
des données et les optimiser.
● Techniques OLAP
■ Obtenir les résultats d’une manière sécurisée
■ Présentation variée des résultats (Tab croisée ou autre)
■ Gestion des requêtes (surveiller les problèmes, réutilisation des requêtes
fréquentes)
■ En Oracle (Fonctions Analytiques) :Partition,Order By et ROWS UNBOUND
PRECEDING, la dernière étant une fonction appliquée sur une fenêtre
allant de la ligne courante jusqu’au début de la table
○ Reporting
■ Technique de préparation de rapports, qui consiste à extraire des données
pour les présenter d’une façon plus lisible.
■ Aide à la décision par visualisation de situation actuelle (stats, évolutions
temporelles….)
■ Application la plus utilisée en BI
■ Fonctionnalités
● Séléctionner les données relatives à une période, secteur…

25
● Trier, regrouper, partitionner selon critères de choix
● Calculer des divers (moy, ecart,...)
● Présenter des synthèses ou des rapports détaillés (contrôle sur le
niveau de granularité, et la forme de présentation selon les
besoins)
■ Types de rapport
● Prédéfini: Librairie de rapports fréquemment utilisés avec leur
description
● Paramétrables: Modifier le contenu du rapport grâce aux
paramètres
■ Utilise le mode ‘push’ pour envoyer les infos aux utilisateurs, contrairement
aux requêtes
■ Format souvent prédéfini, peu flexible
■ moins de contrôle sur les données présentées
■ Ne nécessite pas beaucoup de connaissances techniques ou interaction
■ Présenté dans un format qui facilite la lecture
■ S’exécutent sur le serveur
■ planification et choix de méthode d’envoi possible
■ Outils: GDS (Google), iReport (JasperReports) PowerBI, Tableau…
● JasperReports: software Open Source pour génération des
rapports, construit en JAVA
● iReport est associé à JasperReports, outil de conception
WYSIWYG, il crée des fichier jrxml pour Jasperreports à exploiter
pour création de rapports
● Marche avec plusieurs datasources, et possible d’ajouter d’autres
avec extension ( jdbc)
● Formats de sortie divers (pdf, odf,rtf, csv…)
● Cycle de vie: Création du rapport en xml ( jrxml) -> compiler le jrxml
pour utilisation ->Produire le rapport dans le format souhaité via les
paramètres

○ Les KPI (Key Performance Indicators)


■ Elément chiffré (mesure) à déterminer avant le lancement d’une action
pour évaluer les retombées (fallout) et le ROI (return on investment)
■ L’analyse doit prendre en compte plusieurs et non pas un seul KPI
■ Suivis quotidiennement, les KPI sont intégrés dans les tableaux de bord
■ Ce sont des mesures permettant d’évaluer la performance d’une
entreprise et le progrés qu’elle réalise dans le cadre de ses objectifs

26
■ Caractéristiques
● Mesurables
● facile à comprendre
● reliés à des objectifs d’affaires concrets
● décidé par les gestionnaires/haut direction
● Associés à des individus responsables de leurs résultats
■ KPI=> déterminer les objectifs stratégiques de l’entreprise en gardant l’oeil
à l’opérationnel, mais il Faut se poser les bonnes questions pour
déterminer les KPI(stratégie,besoins, bonne méthode de mesure, valeurs
seuils, évolution des KPI, évaluation data)
■ Seuil d’état: Valeur correspondante à une couleur (statut) du KPI
■ Représentations graphiques des KPI (bar chart,radar, jauge, courbe, feu
tricolore….)
○ Dashboard (Tableau de bord)
■ Outil de gestion qui présente une synthèse d’activité et résultat de
l’entreprise par processus, via des indicateurs permettant le contrôle de la
réalisation des objectifs fixés et de prendre les décisions nécessaires
dans un délai limité selon des périodicités
■ Il est composé d’un nombre limité d’indicateurs qui permettent aux
dirigeants de prendre connaissance de l’état actuel de l’entreprise, suivre
l’évolution et identifier les corrections à apporter.
■ Caractéristiques
● Mettre en valeur les indicateurs et problèmes via élément visuel
● Requiert très peu de connaissances techniques
● combiner les données de plusieurs systèmes pour donner une
version unifiée
● Tenir souvent compte des changements ponctuels en données
■ Conception (méthode GIMSI)
● Identification (contexte & axes stratégiques)
● Conception (que faut faire)
● Mise en oeuvre (comment le faire)
● Suivi dans la durée
■ Types de dashboards
● Stratégiques: déclinent la stratégie en 4 axes (financier,
performance envers client, processus internes, apprentissage
organisationnel)
● Contrôle de coût: Mettre en évidence les écarts entre les
prévisions et la réalité

27
● Performance (opérationnel): Mesurer l’avancement et l’impact des
actions planifiées

Chapitre 9 : Data Mining


● Ensemble d’approches statistiques (méthodes,outils, technologies) permettant d’extraire
de l’information de grands jeux de données dans une perspective d’aide à la décision.
○ Sert à mesurer les observations pour en cerner des caractéristiques ou des
comportements du phénomène.
○ Statistiques est l’origine historique du datamining (descriptive,ACP,AFC,AD…)
● Données en Data Mining
○ Forme Matricielle
○ Données de différents types (quantitatives ou qualitatives, image, text, web data…)
● Processus de découverte des connaissances
○ Inventaire, sélection et intégration des données
■ Comme dans la modélisation des DWH
■ Définir et identifier l’étude, son type (découverte, prédiction) et les
observations à utiliser.
■ Rassembler les données relatives à l’étude (les variables descriptives,les
variables liées, et leur intégration dans un jeu de données)
○ Exploration et transformation des données
■ Utilisation des statistiques descriptives
● Univariée (Dispersion, tendance)
● Bivariée (Corrélation) pour identifier les variables corrélées
● ACP, AFC, ACM (méthodes exploratoires pour grandes tendances)
● Graphiques (pour visualisation)
■ Gestion des données manquantes (null values) par suppression ou
amputation (remplacement par moyenne médiane…)
■ Gérer les observations anormales ( demander aux experts et corriger si
erreur)
■ Normalisation des variables quantitatives (mm echelle, centrer et réduire)
■ Transformation des variables qualitatives en quantitatives ou vice-versa
○ Analyse Statistique (segmentation, classification, régression)
■ La partie qui permet d’extraire d’informations
● Méthodes Descriptives:
○ Décrivent un ensemble de données pour compréhension
humaine, socle dans le développement de modèles
prédictifs

28
● Méthodes prédictives:
○ Prédiction en support de la prise de décision
● Exemples
○ Clustering (c’est aussi dit segmentation)
○ Régression
○ Classification
○ Sequencing (association des valeurs qui s’associent en
général)
○ Validation, Visualisation et Interprétation des résultats
■ Types de validation
● Statistique (auto)
● Expertise métier
■ Méthodes de validation
● Non Supervisée (Experts + Stats)
● Supervisée (Stats)
● Croisée
● Outils de Data Mining
○ Outils multiples=>Forces multiples à combiner pour en profiter au maximum
○ Propriétaires: SAS, SPSS
○ Open Source: RapidMiner, R, Python, Orange, Knime…

FIN !

29

Vous aimerez peut-être aussi