|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 12 ![]() |
Bonjour,
Je découvre actuellement tout ce qui tourne autour du BI et j'ai la problématique de créer un entrepot pour pouvoir générer des rapports. J'aimerais que les requetes pour generer les rapports soient tres simple (un minimum ou pas de jointure et pas de calculs dans mes requetes (style group by et sum, ...)). Par contre ca ne me derange pas qu'il y ait des calculs complexes dans mon ETL pour remplir des colonnes (enfin, si c'est correct de faire comme ca) ou dans une vue de mon entrepot. Mes rapports a créer contiennent les colonnes suivantes: - Vendeur - chiffre d'affaire pour la periode - progression par rapport a l'annee precedente pour la periode Les periodes possibles sont: - jour - mois - periode entre deux dates La periode est un parametre a saisir par l'utilisateur. J'ai une idée mais elle ne convient pas . La voici: Ma table de faits contient: idVente(PK) - Vendeur - nom de la vente - montant total de la vente - date Dans ce cas je ne vois pas ce que pourrait contenir ma table de dimension. En effet, la dimension date est dégénérée dans ma table de fait. Ensuite, lors de ma creation de rapport je requete sur mon entrepot et je calcul dans cette requete la progression par rapport a la periode rentrée par l'utilisateur. Probleme: Dans cette solution il faut créer des requêtes assez complexes dans la generation de mon rapport (j'utilise Jasper). Ca me plait pas du tout vu qu'un utilisateur non informaticien doit etre capable de comprendre ces requetes pour creer d'autres rapports dans le meme style Est-ce que vous auriez une solution qui permet de simplifier les requetes (en déportant par exemple la complexité dans des vues ou autres solutions)? Autre idée, est ce que ca se fait de faire des calculs complexes lors de l'utilisation d'un ETL. Dans ce cas il y a peut etre une solution pour déporter la complexité coté ETL. J'ai l'impression que le probleme est que l'utilisateur peut saisir 2 dates afin de generer son rapport. ca empeche tout calcul generique sur lequel je pourrais me baser pour faire mes rapports. Par exemple si je devais juste afficher le chiffre d'affaire par mois et par trimestre, il serait simple de faire le calcul en amont. Dans mon cas, comment faire? Merci d'avance pour vos reponses, Chris |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2007 Messages : 29 ![]() |
Bonjour,
Je reprends si vous permettez votre post pour tenter de reformuler votre besoin : Dans l'idéal votre configuration est la suivante. Vos dimensions utiles :
A partir de ces éléments, vous pouvez mettre en place une structure multi-dimensionnelle simple, qui exprimera vos différentes mesures au sein de votre référentiel de dimensions. La structure peut être physique (M-OLAP), ou bien logique (R-OALP). Ce choix doit être validé en tenant compte de :
En ce qui concerne la possibilité pour des utilisateurs non-informaticiens de s'approprier les requêtes, je comprends votre désapprobation à priori. L'expérience prouve que les utilisateurs se répartissent en 3 catégories distinctes :
Espérant répondre à vos attentes, |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 12 ![]() |
Merci pour votre réponse. Apres avoir comparé les possibilités je vais plutot partir sur du ROLAP, c'est à dire sgbd relationnelle + requetes SQL.
Peux-tu me valider la cohérence de mon modèle? L'entrepot: Table de fait de vente: - idVente (PK) - montant - id_vendeur (FK) - id_agence (FK) - id_produit (FK) - date Table Vendeur: - id_vendeur - nom - prenom Table Agence - id_agence - nom - departement - etc... Table produit - id_produit - nom_produit - famille_produit Vue magasin1 (base du premier rapport): - id_vendeur - nom_vendeur - prenom_vendeur - montant_vente - nom_produit - date Vue magasin2 (base du deuxieme rapport): - id_agence - nom_agence - montant_vente - date Voilà, je m'arrete là pour le principe. En fait j'ai l'impression de refaire du relationnel pour l'entrepot. Je pense faire comme ça afin de gérer les "evolutions lentes" des dimensions produit, vendeur et agence. En effet, si on prend par exemple la table vendeur, si le nom du vendeur change (femme qui se marie) alors je trouve ca simple de juste changer le nom dans une table lié à la table de fait par une foreign key. Ensuite pour les magasins, il me serve à eviter de devoir gérer les jointures dans mes requete SQL. Enfin, Tous les calculs complexes seront dans mes requetes SQL (comme Evolution % A/A-1). Qu'est ce que vous en pensez? Quels sont les defauts? Merci d'avance, Chris |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 205 ![]() |
Les termes "relationnel" et "dimensionnel" sont parfois utilisés pour exprimer différentes idées, à tel point qu'il faille à chaque fois préciser de quoi on parle.
Tel que je le comprends lorsque je vous lis, par "relationel" vous entendez tables et jointures comme il en existe dans des systèmes transactionnels. Dans un entrepôt de données, selon Ralph Kimball, le best practice est de construire des tables en les organisant suivant une structure en étoile: une table de faits au milieu, et les tables de dimensions gravitant autour. Cette structure peut se complexifier avec l'ajout d'une deuxieme table de faits et le partage des tables de dimensions communes. C'est ce qu'on appelle faire une modélisation en étoile ou encore faire une modélisation "dimensionnelle". Donc, pour moi, votre modélisation suit parfaitement ces recommandations. Vous modélisez de façon dimensionnelle, mais techniquement, ça reste des tables et des jointures. Le but de l'ETL est de transporter vos données de vos tables sources vers vos tables de votre entrepôt. Il est donc évident que la majeur partie de l'intelligence se situe dans les processus ETL. Personnellement, je préfère prémâcher le travail dans l'ETL et faire ensuite des requêtes simples et rapides, plutôt que me contenter du minimum dans l'ETL pour ensuite faire des requêtes avec calculs (le langage SQL n'est pas adapté aux calculs, ce n'est que mon avis). Enfin, plus vous serez amené à faire des rapports avec des croisements et calculs complexes, plus l'utilité d'un cube vous semblera évidente. Heureusement, les technologies B.I. actuelle propose des outils de modélisation de type cube sans pour autant avoir à en générer. Je connais le DMR chez Cognos par exemple. J'aimerais bien connaître les équivalents chez la concurrence si certains d'entre vous ont envie d'en parler. |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2007 Messages : 29 ![]() |
Bonjour à tous et à toutes
hawat23 : Ton modèle de données semble logique. Cependant, je ne comprend pas très bien la nécessite des vues 'Magasin'. Si le but recherché, est de permettre une certaine 'historisation' liée à l'évolution des dimensions (exemple cité du nom de la femme qui se marie), alors dans ce cas, plusieurs techniques peuvent être également utilisées : - Intégrer les informations nominatives dans la table de faits (étant donné sa 'simplicité'), sous forme de libellé court (ex : formuler une PK sous la forme Id vendeur + un nom court sur 20 car), Idem pour l'agence et le produit. - Fixer une contrainte ne permettant pas l'altération d'un couple Id_vendeur/Nom vendeur en amont ... - etc ... Cela dépend de ta volumétrie et de la fréquence de changement des valeurs de tes dimensions. Si aucune historisation n'est nécessaire, alors dans ce cas, la mise en oeuvre de tes vues est inutile. Une remarque sur les comparaisons A/A-1. Là également, plusieurs possibilités dépendant de ta config et sollicitant soit la base de données, soit le moteur de requêtes. Dans le premier cas, il s'agit de mettre en place des requêtes imbriquées, dans le second de travailler sur le dataset renvoyé par la requête. Tout ceci mis à part, bonne mise en oeuvre ! Au fait, quel est ton environnement (OS, Base, requêteur ...) ? yphilogene : (joli prénom...) LE DMR Cognos me semble être fortement aparrenté à un modèle R-OLAP, non ? Deux autres éditeurs sont spécialisés dans cette technologie : Microstrategy (un pionnier historique), et Latitudes-bi (plus récent, à la techno web). JPP |
|
|
00
|
|
|
#6 | |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 205 ![]() |
Citation:
J'ai regardé un peu les démos de Microstrategy... Les outils de tous les éditeurs commencent franchement à se ressembler! |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 12 ![]() |
Finallement j'ai opté pour un entrepot sans magasins.
Mes requetes SQL sont un peu complexe mais définir des vues ne simplifier pas grand chose. Pour mon environnement, c'est spagobi, jasper report et postgres. En tout cas, merci pour votre aide. Ca m'a permit de voir que j'etait plutot dans le vrai |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 12 ![]() |
Oui c'est bon. Mais comment conclure? On peut changer l'etat de la file de discussion?
|
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : juillet 2006 Messages : 2 662 ![]() |
Vous disposez d'un bouton
en bas de votre discussion
__________________
la culture c'est comme la confiture moins on en a plus on l'étale. Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi Mes tutos |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com