Business Intelligence: introduction et
concepts Datawarehouse
Séminaire UMH
Marie-Laure Cheyns – Hermes Senior Consultant
211/04/23
Agenda Faisons connaissance Un peu d’architecture
Datawarehouse, datamart Composants d’un DWH
Découverte des concepts à partir d’un cas pratique Dimension, fait Star Schema Slowly changing dimensions
Conclusion
311/04/23
Faisons connaissance
Hermès Société de service
Délégation d’experts (Business & IT) Projets « clé sur porte » Études fonctionnelles & techniques Formations
15 ans d’existence 100 collaborateurs en Belgique et au
Luxembourg
411/04/23
Faisons connaissance
Hermès 4 pôles de compétence
Business Intelligence/Datawarehousing ETL, DB, outflow
Architectures Distribuées Java, MS .NET, Mainframe
Solutions d’entreprise ERP, CRM,…
Méthodologies IT, gestion de projet
511/04/23
Faisons connaissance
Notre expérience Marie-Laure
chez Hermès depuis 2004 Analyste fonctionnelle – domaine BI BICS, Dexia
Pierre chez Hermès depuis 2001 BI director – conseil, gestion de projet Cat, Dexia, Ing, Fortis, Unda, Gateway.com,
tele2tango, Robecco, Ucm,…
611/04/23
Un peu d’architecture…
Construire un datawarehouse… C’est-à-dire??
Données « opérationnelles », disséminées… Peut-on travailler directement dessus?
Quels sont les composants d’un DWH et comment les organiser?
711/04/23
Datawarehouse : Définitions C’est le lieu de stockage intermédiaire des différentes
données en vue de la constitution du système d'information décisionnel: entrepôt de données (data warehouse DWH).
Le datawarehouse est ainsi le lieu unique de consolidation de l'ensemble des données de l'entreprises.
« Un datawarehouse est une collection de données thématiques,intégrées, non volatiles et historisées pour la prise de décisions. »
811/04/23
Datawarehouse : Définitions
Ses principales caractéristiques sont donc les suivantes : orienté sujets : les données collectées doivent être
orientées « métier » et donc triées par thème. composé de données intégrées: un « nettoyage »
préalable des données est nécessaire dans un souci de rationalisation et de normalisation.
données non volatiles : n’ont pas vocation à être supprimées.
données historisées, donc datées.
911/04/23
Datawarehouse : Définition
Datamart : Littéralement : magasin de données désigne un sous-ensemble du data
warehouse contenant les données pour un secteur particulier de l'entreprise (département, direction, service, gamme de produit, etc.). On parle ainsi par exemple de DataMart Marketing, DataMart Commercial, ...
1011/04/23
Composants d’un datawarehouse
1111/04/23
Composants d’un datawarehouse
1211/04/23
A la découverte des concepts DWH
Cas pratique : Belgacom International Carrier Services Société ‘wholesale’ : clients = autres
opérateurs de télécom Vend et achète des minutes d’appel – trafic
internationalFranceTélécom
DeutscheTelekom
AllemagneFrance BICS
1311/04/23
Cas pratique : BICS
Besoin du business : surveiller l’évolution de la marge Par destination Par responsable commercial (Account
Manager, buyer) De manière journalière
1411/04/23
Cas pratique : BICS
Données disponibles: Pour chaque appel : 1 Call Data Report
(CDR) numéros appelé/appelant, infos de routage d’appel (transmitting, receiving, destination) + durée
FranceTélécom
DeutscheTelekom
AllemagneFrance BICS
Transmitting op. Receiving op. Destination Duration
FT FRA DTAG DEU DEU 600
1511/04/23
Cas pratique : BICS
Données disponibles Système de billing revenu, coût
FT FRA paie pour que BICS forwarde l’appel: revenu : 0,8 €/min
BICS paie DTAG DEU pour terminer l’appel sur son réseau : coût : 0,6 €/min
On trouve 2 records pour le billing:
Transm op.
Receiving op.
Destination Duration R/E Amount
FT FRA DTAG DEU DEU 600 R 8
FT FRA DTAG DEU DEU 600 E 6
1611/04/23
Cas pratique : BICS
Données disponibles DB Commerciale : allocations des Account
Managers et Buyers aux opérateurs AM : responsable ‘sales’ : côté ‘transmitting’,
revenu Buyer : responsable côté ‘receiving’, coûts
Les tarifs varient aussi en fonction de la qualité de l’appel First Class, Business Class,…
Cette notion est également présente dans les CDR et prise en compte par le billing
1711/04/23
Cas pratique : BICS
Comment répondre à la demande du business? Calcul d’une marge? Allocation d’un responsable commercial? Granularité temporelle? Et si une donnée change?
1811/04/23
Modèle de données
On dispose de différentes données en input
On peut les transformer Quel modèle utiliser pour les stocker
efficacement pour répondre au besoin? A votre avis?
1911/04/23
Modèle dimensionnel
Définir la granularité du modèle= niveau le plus détaillé de données dont
on a besoin dans le reporting!! Pour le process qu’on souhaite
modéliser, pas forcément pour l’entreprise
2011/04/23
Modèle dimensionnel
Concept de fait (‘fact table’): Sujet d’analyse : Ce dont on veut observer
l’évolution Constitué d’une ou plusieurs mesures numériques Souvent continues - additives
Concept de dimension: Critères suivant lesquels on va évaluer, qualifier,
quantifier la mesure Dimensions d’analyse description (‘dimension
table’)
2111/04/23
Modèle dimensionnel
‘Star schema’ (schéma en étoile) Une table contient les faits qu’on va
mesurer, au plus fin niveau de granularité, ainsi que des clés (techniques) vers les dimensions d’analyse
Autour, différentes tables contiennent les descriptions des dimensions
2211/04/23
Modèle dimensionnel Modèle en flocon (snowflake):
Même principe qu’un schéma en étoile Mais certaines dimensions sont décomposées en
‘sous-dimensions’ + : notion de hiérarchie, gain de place - : modèle plus complexe
Modèle en constellation Plusieurs tables de faits utilisent les mêmes tables
de dimensions + : gain de place - : modèle plus complexe (à parcourir par tool de
reporting : notion de ‘contexte’)
2311/04/23
Cas pratique : BICS
Granularité? 1 route complète (transmitting, receiving,
destination + quality) Journalier
Mesures? Durées d’appel Revenu Coût (marge)
2411/04/23
Cas pratique : BICS
Dimensions? Opérateurs Pays Responsables commerciaux Qualité de la route Date
2511/04/23
Cas pratique : BICS
Une solution de modélisation possibleTransformation des données:
Billing : ramener coût et revenu sur une ligne et agréger par route et par jour
date Trans op.
TransCtry
Recv op.
Recv ctry
Dest ctry
quality
Dur. Rev Cost
20/02/2008 FT FRA DTAG DEU DEU FC 600 8 6
2611/04/23
Cas pratique : BICS
Transformation des données: Allocation des responsables
commerciaux Éviter de travailler avec des date-from, date-to Denormaliser par date et par opérateur, les
responsables
Rem : en pratique on travaillera avec une date mensuelle et on utilisera une fonction dans la couche ‘reporting’ pour faire le lien entre date jour et date mois…
Date Operator Acc_manager Buyer
2711/04/23
Cas pratique : BICS
OPERATORtk_oper_idoperator_id
CALENDAR operator_codedate operator_short_namedate_formatted operator_long_namedate_day operator_ctry_iddate_monthdate_year FACT_DAILY COUNTYdate_quarter date tk_ctry_id
tk_transm_op_id country_codetk_recv_op_id country_ISO_codetk_dest_ctry_id OPERATOR_MANAGER country_name
QUALITY tk_quality_id datetk_quality_id duration tk_oper_idquality_code revenue AM_idquality_name cost AM_namequality_descr AM_Abbreviation
Buyer_idBuyer_nameBuyer_Abbreviation
2811/04/23
Cas pratique : BICS
Utilisation d'aliasOPERATOR_TRANStk_oper_id COUNTRY_OP_TRANStk_ctry_id tk_ctry_id
CALENDAR FACT_DAILYdate date OPERATOR_MANAGER_TRANS
tk_transm_op_id datetk_recv_op_id tk_oper_id
QUALITY tk_dest_ctry_idtk_quality_id tk_quality_id OPERATOR_RECV COUNTRY_OP_RECV
tk_oper_id tk_ctry_idtk_ctry_id
OPERATOR_MANAGER_RECVdatetk_oper_id
COUNTRY_DESTtk_ctry_id
‘Alias’ des tables modèle en étoile avec quelques snowflakes
2911/04/23
Cas pratique : BICS Remarque : ‘factless fact’ table
Parfois on a besoin de garder des liens entre des dimensions, sans copier les détails d’une dimension dans l’autre pour chaque occurrence de l’association
On peut utiliser alors une ‘factless fact’ table = une relation
Par exemple pour les allocations de managers on pourrait avoir:
OPERATOR_MANAGER_LINK MANAGERdate tk_manager_idtk_oper_id manager_idtk_manager_id manager_namemanager_role (AM/Buyer) ….
3011/04/23
Concepts DWH
Et si une dimension change au cours du temps?
Par exemple, si la description du type de route ‘FC’ passe de ‘First’ à ‘First Class’…
Que se passe-t-il? Comment gérer cela dans le modèle?
3111/04/23
Slowly changing dimensions
Si un attribut d’une dimension change: 3 solutions pour garder la nouvelle valeur: Ecrasement de l’ancienne version (SCD1) Versionnement (SCD2) Valeur d’origine / valeur courante (SCD3)
3211/04/23
Slowly Changing Dimensions SCD1 : on écrase simplement la donnée dans la
table de dimension pas d’historique, données du passé seront liées à la nouvelle valeur
SCD2 : notion de ‘record actif’ : on historise dans la dimension, on clôture la ligne précédente et on crée un nouveau record avec la nouvelle valeur et une nouvelle clé technique les données du passé sont liées à l’ancienne valeur
SCD3 : on maintient 2 colonnes : valeur d’origine, valeur actuelle toutes les données seront liées aux 2 informations
3311/04/23
Conclusion
A l’heure actuelle: énormément de données disponibles et éparses
Important de les centraliser, les harmoniser et les organiser
Pour en tirer de l’information utile et prendre des décisions
3411/04/23
Conclusion
Un outil : le ‘datawarehouse’ ‘single version of the truth’ Extract-Transform-load; architecture 3-tier Datamarts Modèle dimensionnel Orienté reporting De nombreux tools existent
Aspect important à ne pas négliger: la qualité des données en input! ‘garbage in garbage out’
Recommended