Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL
ETL Le Forum d'entraide ETL (Extract Transform Load) et Datawarehouse : DataStage, SunOpsis, Data Integrator, Informatica, OWB, Data Manager, Talend Open Studio,...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2006, 17h02   #1
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Par défaut ETL Kettle en cours d'intégration

Bonjour,

J'intègre actuellement Kettle (issu du project Pentaho) pour un proto chez un de mes clients (tourisme).
Contexte avec belle volumétrie (une table de faits de 22 millions d'enregistrements entres autres) et un suivi d'évolution des dimensions. Architecture Oracle vers Oracle sur Linux.
Pour l'instant le loading initial a été réalisé, avec de nombreuses dénormalisations, souvent au niveau d'une table unique (indicateurs initialement stockés en ligne avec code spécifique). J'ai externalisé à la base certaines fonctions, notament les timestamps pour les enregistrements et la gestion des PK par commodité ou nécessité.
Le loading initial a montré des performances jusqu'à 3000 enr/sec, sur une petite plateforme HP en AMD64.

Voilà pour l'instant, je prépare un road map plus détaillé pour ceux qui sont intéressé par l'intégration de cet outil open source et je le posterai ici même prochainement (bugs, évolutions, tips, contournements ...).

Vincent
vteyssier@decisionsystems-studio.fr
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 17h08   #2
Membre régulier
 
Inscription : juillet 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 83
Points : 90
Points : 90
Bonjour VinZent,

Trés interressant ta démarche de nous faire partager ton expérience sur un outil d'intégration de données open source du marché.
En attendant les détails dans les jours à venir peux tu nous dire ce qui a conduit ton choix sur Kettle ? Cet outil a t'il été comparé à d'autres ?
Cet outil intégre de la données dans une table de faits, qui dit table de faits et indicateurs dit analyse et rapports.
Comptes tu utiliser Mondrian/Jpivot en restant chez Pentaho pour analyser tes données ? ou va tu t'orienter sur du BO ou autre ?
Merci pour tes réponses.

Cordialement

Selecta
selecta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 22h28   #3
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Bonsoir,

Le choix de l'ETL, sous contrainte primordiale qu'il soit open source (budget client = 0), a vu un benchmark de Talend et de Kettle. La souplesse offerte au niveau de la gestion des batches Kettle, en perspective de l'existant client (présence massive de quartz pour l'ordonnancement des taches par exemple), a fait qu'on s'est orienté vers Kettle. Talend reste un super outil qui a d'ailleurs ma préférence (librairie de transformation riche et gui impeccable) mais aurait eu l'inconvénient d'alourdir la tâche d'intégration dans le contexte existant. Enfin, chose qui peut être sujet à discussions vu le nombre de paramètres en jeu, Kettle a montré de meilleures performances sur un mapping classique de type : input depuis base source-sélection-tri-dénormalisation-output en base cible pour 450 000 rows (ps : bases oracle).

Au delà de l'alimentation, mon client souhaite passer un cap en deux étapes :
1 - Passage d'un mode d'organisation des données de type hiérarchique (appli web ...) vers du relationnel enrichi et optimisé (dénormalisation) pour la refonte des reports.
2 - Passage vers du multidimensionnel pour l'analyse et la découverte de son capital informationnel.

Les reports sont refondus et s'appuient donc sur les nouvelles structures dimensionnelles. Leur présentation est encapsulée par le framework java existant (je ne fais que fournir au dev java un jeu de données par query à ce niveau).

L'analyse est assurée par Mondrian, moteur ROLAP et JPivot. Là aussi le choix a été dicté par un budget à 0 (adieu BO, d'ailleurs non adapté à ce contexte) et une volumétrie assez conséquente (par exemple une des tables de faits touche 22 millions de rows) ce qui oriente vers un modèle ROLAP. Bien entendu, j'utilise Mondrian en conjonction avec des tables d'agrégats pour optimiser certaines analyses.
A noter la souplesse extraordinaire des schémas mondrian (tags de description d'un cube), dès qu'on arrive à "accepter" de se taper cette description à la mano dans le fichier xml (le cube designer, proposé par Pentaho est une bouse pour le moment : v0.7).

Un client lourd OLAP vient se greffer à l'offre, pour une partie de la MOA qui souhaite explorer et analyser en toute liberté : j'ai opté pour FreeAnalysis mais il se pourrait que JRubik remonte au sprint.

Voilà, cela fait un peu déballage mais je suis crevé ce soir.
N'hésitez pas à me relancer si d'autres infos vous sont necessaires.
J'ai pris un peu de retard sur le doc de feed back Kettle mais il viendra.
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 22h25   #4
Membre à l'essai
 
Inscription : janvier 2007
Messages : 19
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : janvier 2007
Messages : 19
Points : 21
Points : 21
Envoyer un message via MSN à CONSULTANT_SQLI
Citation:
Envoyé par VinZent
N'hésitez pas à me relancer si d'autres infos vous sont necessaires.
J'ai pris un peu de retard sur le doc de feed back Kettle mais il viendra.
Bonjour,

Je suis consultant en Système d'Information, avec une spécialisation sur l'architecture ETL chez SQLI.
Actuellement je prépare un séminaire : Réussir son projet d'intégration. Ma dernière partie traite de la typologie des différents ETL, et donc étant donné que je vais parler des outils ETL open source (en autre celui de Talend Open Studio).

Donc si tu avais des info au format PPS traitant des éléments ci dessous, je serai preneur :
  • Facilité de prise en main
  • complétude
  • Ergonomie
  • administration
  • support

Merci d'avance si tu peux m'aider.

Cordialement,
CONSULTANT_SQLI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 17h35   #5
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Salut,

A vrai dire je coince un peu avec ta démarche :
- j'aiderai et échangerai volontier avec un développeur/réalisateur/chef de projet dans le cadre d'un projet d'intégration, et cela sans limite. Mais là tu me demandes de d'étoffer ton seminaire (commercial) avec des slides tous cuits, hop copy paste je me foule pas ...
- tu compte intégrer mes infos à ton séminaire mais au final tu vas parler d'une solution que tu n'auras pas utilisé, ni même vu tourner sur ta station ... humm ... SQLI ...

Etant moi même consultant, tu comprendra que je coince.
Je te ferai parvenir la semaine prochaine la réponse, au format texte, aux 5 points que tu soulèves. A toi, après, de compiler, analyser et projeter.

Vincent Teyssier
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2007, 00h01   #6
Membre à l'essai
 
Inscription : janvier 2007
Messages : 19
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : janvier 2007
Messages : 19
Points : 21
Points : 21
Envoyer un message via MSN à CONSULTANT_SQLI
Citation:
Envoyé par VinZent
Salut,

A vrai dire je coince un peu avec ta démarche :
- j'aiderai et échangerai volontier avec un développeur/réalisateur/chef de projet dans le cadre d'un projet d'intégration, et cela sans limite. Mais là tu me demandes de d'étoffer ton seminaire (commercial) avec des slides tous cuits, hop copy paste je me foule pas ...
- tu compte intégrer mes infos à ton séminaire mais au final tu vas parler d'une solution que tu n'auras pas utilisé, ni même vu tourner sur ta station ... humm ... SQLI ...

Etant moi même consultant, tu comprendra que je coince.
Je te ferai parvenir la semaine prochaine la réponse, au format texte, aux 5 points que tu soulèves. A toi, après, de compiler, analyser et projeter.

Vincent Teyssier
Salut,

Je voulais juste éclaircir la situation. Je comprends tout à fait ta position. Mais sache que je ne venais pas pour pomper toutes les informations, mais juste pour étoffer cette dernière partie de séminaire afin d'avoir un deuxième d'ETL Open Source.
Les points que j'avais demandé me suffise largement pour cette dernière partie et je m'étais adressé à toi comme tu connaissais également Open Studio de Talend afin de connaitre ton retour entre les deux produits.

Cordialement,
CONSULTANT_SQLI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2007, 11h08   #7
Invité de passage
 
Inscription : mars 2007
Messages : 1
Détails du profil
Informations personnelles :
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : mars 2007
Messages : 1
Points : 1
Points : 1
Par défaut Temps d'intégration ?

Citation:
Envoyé par VinZent
Bonjour,

J'intègre actuellement Kettle (issu du project Pentaho) pour un proto chez un de mes clients (tourisme).
...
Vincent
vteyssier@decisionsystems-studio.fr

Salut,
je trouve ton expérience très intéressante. J'ai une expérience dans le décisionnelle "classique" BO et cube OLAP Microsoft, et aujourd'hui je suis entrain de m'approcher aux outils open source en vue d'une étude de marché pour me mettre à mon compte.
J'aimerais avoir ton ressenti sur le temps de mise en oeuvre d'une solution complète : installation, paramétrage, prise en main des outils.
Dans tout les cas merci pour ta contribution.

Massimo
massimo_marengo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 15h37   #8
Membre habitué
 
Avatar de GGGGG
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 143
Points : 143
Merci pour le retour d'expérience VinZent
GGGGG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2007, 15h24   #9
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Bonjour à toutes et tous,

Après quelques mois passés quotidiennement sur une partie de l'offre Pentaho (PDI/Kettle + Mondrian/XMLA), voici un retour de ma part (qui n'engage que moi etc etc ...).

L'éditeur / le projet :
Pentaho affiche une forte volonté d'intégration pour tous les modules qui comportent l'offre. L'effort est très louable et je pense qu'ils y arriveront. Pour autant le chemin reste long : pour l'instant il n'y a guère que les chartes graphiques qui soient homogènes et font penser à une suite logicielle plus qu'à une collection de modules.
La communauté participant au projet est vive et assez réactive sur les questions d'évolution, de bug report ou même de débat "idéologiques" (ETL, ELT, EII ...). Matt Casters et Julian Hyde, respectivement responsables de PDI/Kettle (ETL) et Mondrian (ROLAP) sont accessibles directement et tous deux entretiennent des blogs très riches (annonces de features, débats, tricks ...).
Les participants aux forums (pentaho.com) sont, d'une manière générale, de bon niveau et un point bloquant reste rarement plus d'une journée sans réponse/solution. Pas de trolls, pas de débats philosophiques, ces forums sont partitionnés par type d'outil (ETL, ROLAP, Web, Datamining ...) et restent techniques et pragmatiques.
Commercialement, car il faut bien en parler, Pentaho reste pour l'instant assez absent : j'ai demandé à acquérir leur module Spreadsheet Services (très séduisant pour dépasser les fonctions pivot natives de l'outil) et à ce jour je n'ai pas de réponse malgré plusieurs relances et en étant connu auprès d'eux.
Avis sur l'éditeur / projet : une volonté certaine d'intégration des différents modules, des acteurs motivés et joignables, des releases fréquentes (sans régression). A l'inverse, un sentiment que chaque projet au sein de Pentaho avance quand même un peu "en silot".

PDI/Kettle :
Il s’agit là de l’outil d’ETL.
Son approche est de reposer assez fortement sur la DB. Full java, son interface graphique est moins séduisante que l’offre « concurrente » de Talend.
Pour autant, les fonctionnalités, la performance (liée à la DB, tout de même) et la fiabilité est présente. Le développeur dispose depuis la version 2.4 d’une interface unique pour développer et gérer ses transformations et ses jobs (les jobs contenant les transformations et les enchainant à la manière d’un workflow avec conditions et contrôles).
La bibliothèque des transformations est très fournie et intègre dès à présent des fonctions évoluées : suivi d’évolution des dimensions, dénormalisations, normalisations, javascript (à la manière de vbscript pour DTS/SISS), recherches en DB, lecture depuis http, dédoublonneur, XML, fusion, merging, passages de variables entres transformations / opérations, lecture/écriture sur socket. Bref, l’éventail des outils n’est pas du tout limité.
PDI/Kettle peut s’utiliser au travers de deux modes distincts, local ou avec référentiel :
  1. Local : les transformations et les jobs sont stockés et gérés en local sur filesystem.
  2. Avec référentiel : tout le travail du développeur est stocké dans le référentiel PDI/Kettle qui repose sur un schéma dédié créé sur la DB de votre choix (sur système cible par exemple). Il s’agit là d’une fonctionnalité idéale : plus de fichiers à gérer, tout est centralisé. En cas de changement de paramétrage d’une de vos DB, il vous suffira de changer une seule fois la connexion correspondante dans le référentiel ; le changement sera alors répercuté sur toutes les transformations / jobs qui utilisent cette connexion. Du travail propre, industrialisé et fiabilisé.
PDI/Kettle est livré avec des exemples de scripts pour le lancement des jobs / transformations en mode batch. Très utile dans mon contexte actuel (Solaris), j’ai rapidement pu mettre au point un pool de scripts qui assurent le déclenchement des jobs (certains en parallèle !), leur contrôle ainsi que la reprise sur anomalie.
Les fonctionnalités de logs sont très verbeuses mais leur lecture reste aisée. Une anomalie se remonte très vite avec un simple parseur, voire un Ctrl-F « ano » lors des mises au point.
A noter que le lancement d’un job/transformation en interactif (via la gui) est bien entendu possible et que les logs sont du même niveau de qualité.
Autres fonctions intéressantes, dont j’ai abusé au possible :
  • - contrôle et validation des transformations,
  • - points de contrôles avec extraction et affichage des données au un moment donné,
  • - copy tables wizard (ben oui … des fois),
  • - exploration du référentiel avec la possibilité de renomer, mover, deleter les jobs et transformation sans avoir à les ouvrir !

Les performances sont globalement au rendez-vous. Bien entendu, plus votre DB sera performante, meilleur sera le comportement de PDI/Kettle. Pour autant, en environnement de dev, sur un Solaris de base et un hardware peut optimisé, il m’est arrivé d’atteindre du 5000 rows/ seconds sur des transformations incluant des tris. Par ailleurs, je régénère un historique quotidien de 13 semaines sur des volumes allant de 500 000 rows à plus de 22 millions, incluant le calcul des agrégats ; cette phase se déroule en 2h50 – 3h00 la nuit.

Il manque cependant un module à PDI/Kettle, qui se fait cruellement sentir dès lors que l’on travaille avec de multiples environnements (dans mon cas, dev, recette, prod) : un gestionnaire de transformations / jobs. Actuellement, pour migrer une transformation ou un job d’un environnement à un autre ( = un référentiel à un autre), il faut passer par une sauvegarde/export local, puis reconnexion au nouveau référentiel pour publication. Un module de gestion des transformations et des jobs serait super utile pour gérer au mieux la phase de montée en environnement. A imaginer comme un « CVS light » ou encore un « SourceSafe ».

Avis sur PDI/Kettle : très bon outil qui s’est montré au rendez vous. Les fonctionnalités sont très riches et couvriront facilement, je pense, un minimum de 80% de vos besoins de traitement. Pour le reste, le Jscript et la débrouille (comme délocaliser certains traitements très lourds directement sur la DB – pourquoi ne pas en profiter) vous permettront de finaliser les transformations nécessitant de la haute couture.
La débrouille, parlons en. La documentation de PDI/Kettle est bien fournie en volume mais s’avère parfois lapidaire (un snapshot et un titre …). Il faut donc parfois tatonner avant de trouver le fonctionnement idéal, sans parler des tricks de tordus (le dernier que j’ai trouvé impose de linker un « insert row » à un « call DB procedure » afin de réellement déclencher l’exécution d’une procédure stockée sur la DB …). La aussi la communauté documente elle-même ce genre d’astuces, moi y compris au travers de mon blog (http://open-bi.blogspot.com).
Au final, les logs sont assurés à deux niveau : fichier de logs et tables de logs en base. C’est là un gage de suivi qui, de mon coté, n’a jamais été pris en défaut.


Mondrian :
Mondrian est le moteur ROLAP de Pentaho. Il est maintenu par Julian Hyde qui en est le papa historique. Là aussi, full java.
Mondrian peut fonctionner suivant deux modes :
  • - Full Mondrian,
  • - XML/A
La mise en place est aisée, il s’agit du déploiement d’une webapp classique sur un tomat tout aussi classique (ou autre serveur d’application bien entendu – SunOne dans mon contexte actuel). Le paramétrage est lui aussi aisé : édition de fichiers xml contenant les datasources, les connexions, les queries …).
Le développement, de son coté, est un peu plus ardu. Un cube se crée via sa définition logique au sein de fichiers XML. Ces derniers sont structurés de manière à designer les dimensions de votre cube ainsi que les indicateurs. Pour faire simple : une dimension ou un indicateur mappe directement une colonne d’une de vos tables de dimension ou de faits. Dans la pratique, cela va beaucoup plus loin : les dimensions peuvent être partagées entre différents cubes, elle peuvent reposer sur des clauses SQL passées « in line », les indicateurs peuvent être natifs ou calculés. Par ailleurs, un virtual cube peut mapper deux autres cubes (très utile mais attentions au performances dans ce cas !!).
Voici un exemple de fichier de définition d’un cube, assez simple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0" encoding="UTF-8"?>
<Schema name="planning">
    <Cube name="planning">
        <TABLE name="PLANNING"/>
        <Dimension name="HOTEL" foreignKey="CODE_HOTEL">
            <Hierarchy name="HOTEL" hasAll="true" allMemberName="All hotel" primaryKey="CODE_HOTEL">
                <TABLE name="HIERARCHIE_HOTEL"/>
                <Level name="ENSEIGNE" TABLE="HIERARCHIE_HOTEL" COLUMN="ENSEIGNE" uniqueMembers="false"/>
                <Level name="MARQUE" TABLE="HIERARCHIE_HOTEL" COLUMN="MARQUE" uniqueMembers="false"/>
                <Level name="PAYS" TABLE="HIERARCHIE_HOTEL" COLUMN="PAYS" uniqueMembers="false"/>
                <Level name="VILLE" TABLE="HIERARCHIE_HOTEL" COLUMN="VILLE" uniqueMembers="false"/>
                <Level name="NOM HOTEL" TABLE="HIERARCHIE_HOTEL" COLUMN="NOM_HOTEL" uniqueMembers="false"/>
                <Level name="DGO" TABLE="HIERARCHIE_HOTEL" COLUMN="DGO" uniqueMembers="false"/>
                <Level name="DGR" TABLE="HIERARCHIE_HOTEL" COLUMN="DGR" uniqueMembers="false"/>
                <Level name="DOP" TABLE="HIERARCHIE_HOTEL" COLUMN="DOP" uniqueMembers="false"/>
                <Level name="MODE EXPLOITATION" TABLE="HIERARCHIE_HOTEL" COLUMN="MODE_EXPLOITATION" uniqueMembers="false"/>
            </Hierarchy>
        </Dimension>
 
        <Dimension name="SERVICE" foreignKey="CODE_SERVICE">
            <Hierarchy name="SERVICE" hasAll="true" allMemberName="All service" primaryKey="CODE_SERVICE">
                <TABLE name="LIBELLE_SERVICES"/>
                <Level name="SERVICE" TABLE="LIBELLE_SERVICES" COLUMN="LABEL" uniqueMembers="true"/>
            </Hierarchy>
        </Dimension>
 
	<Dimension name = "FAMILLE DE SERVICE" foreignKey="CODE_FAMILLE_SERVICE" >
    	<Hierarchy hasAll="true" allMemberName="Tous Services" primaryKey="CODE_FAMILLE_SERVICE">  
        	<VIEW alias="FAM_SERVICES">
        			<SQL dialect="generic">
				SELECT DISTINCT(CODE_FAMILLE_SERVICE), LIBELLE_FAMILLE_SERVICE
				FROM HIERARCHIE_SERVICES
     				</SQL>
    		</View>
        	<Level name="FAMILLE DE SERVICE" COLUMN="LIBELLE_FAMILLE_SERVICE" uniqueMembers="true"/>
   		</Hierarchy>
	</Dimension>
 
        <Dimension name="TEMPS" foreignKey="IDMOIS">
            <Hierarchy name="TEMPS" hasAll="true" allMemberName="All temps" primaryKey="IDMOIS">
                <TABLE name="CALENDAR_MOIS"/>
                <Level name="ANNEE" TABLE="CALENDAR_MOIS" COLUMN="ANNEE" uniqueMembers="false"/>
                <Level name="MOIS" TABLE="CALENDAR_MOIS" COLUMN="MOIS" uniqueMembers="false"/>
            </Hierarchy>
        </Dimension>
 
        <Measure name="DUREES" COLUMN="DUREE" aggregator="sum" datatype="String" formatString="Standard"/>
    </Cube>
</Schema>
Bien entendu, l’écriture de ces fichiers peut paraitre rebutante mais au bout d’une journée le plis est pris. Au final, la structure est assez plaisante et l’on avance vite.
A noter que Pentaho met à disposition un générateur de cube graphique. A éviter absolument car il est en version 0.7, instable et surtout non abouti pour des cubes impliquant plus d’une table … Pour autant l’outil est prometteur et je pense que la prochaine release majeure (1.x) devrait frapper très fort.

Parlons maintenant de l’accès aux données. Cet accès est réalisé au travers d’un librairie complémentaire qui s’appelle JPivot. Son but est d’interpréter les données renvoyées par le moteur Mondrian (système de coordonnées X, Y, Z … avec les indicateurs au milieu) et d’en assurer l’affichage avec tous les attributs graphiques souhaités (passés via le MDX).
A noter que sur le projet actuel dont j’ai la charge, je n’utilise pas JPivot mais remets complètement en forme les données retournées (contrainte interne au projet). Je gagne donc un peu en performances (pas d’interprétation JPivot).
La visualisation s’effectue sous un browser web, tout comme la navigation (drill down, up, through, slicing …) et l’écriture de queries MDX personnalisées. A noter que l’interface livrée est standard, dans le cas d’une intégration à un projet web existant (mon cas actuel), il faudra utiliser le SDK livré afin de développer la greffe (SDK très bien documenté).

Voici deux aperçus, générés respectivement avec JRubik et JPivot, en phase de développement des queries MDX sur un cube Mondrian.
Les performances, parlons en.
De nombreuses personnes se plaignent des performances, cela est fréquent. Cependant, si l’on regarde de plus près le mode de fonctionnement et l’architecture de ces plaignants, on s’aperçoit très souvent qu’ils font tous les mêmes erreurs :
  • des cubes gigantesques, mèlant des notions fonctionnelles complètement différentes,
  • des cubes qui mappent des tables énormes, sans agrégation ni optimisation.
Mondrian est un moteur s’appuyant / consommant beaucoup de RAM (les données montent au maximum dans un cache dédié à Mondrian) et reposant sur une base de données relationnelle (réviser le concept ROLAP …). Pour de bonnes performances, il faut :
  • partitionner ses cubes, souvent suivant un angle tout bètement fonctionnel (pourquoi mélanger le contrôle de gestion et le marketing ?),
  • optimiser les structures de données sous – jacentes :
  • créer des tables partitionnées,
  • créer des agrégats
  • indexer généreusement,
  • allouer de la RAM au moteur,
  • jouer avec le cache !
Dans mon cas précis, voici ce que cela donne :
  • tables partitionnées sur l’axe temporel (2003, 2004 …),
  • tables agrégées sur lesquelles sont bâtis les cubes : de 15 millions de rows pour une table de faits, j’agrège à 12500 rows correspondant au périmètre fonctionnel strict demandé,
  • indexation partitionnée (oracle) classique mais à faire …
  • 512 Mo RAM alloués au moteur Mondrian
  • Après chaque alimentation quotidienne, je vide le cache (méthode livrée avec le SDK) et je rejoue toutes mes stats en pleine nuit afin de refaire monter en cache les données updatées. Malin, au final les performances décollent.

Coté MDX, Mondrian a la bonne idée d’intégrer pratiquement toutes les fonctions classiques que l’on retrouve par ailleurs (dont le fameux yeartodate et le paralleperiod !!).

Coté tips et tricks, là aussi les amateurs vont être servis !
En voici un croustillant au hasard (presque) :
Lors du passage d’un mode de fonctionnement « full Mondrian » vers un mode XML/A, il faut renomer les tags « Dimension name » en « Dimension caption » dans les fichiers XML de définition des cubes. Cela ne vous dira surement rien pour l’instant, mais sachez juste que ce trick n’est pas documenté et a lui-même surpris les mainteneurs du projet qui ont validé le phénomène.

Avis sur Mondrian : très bon produit, qui a pris le parti du ROLAP et du système sollicitant le cache. Le développement peut paraitre un peu contraignant et lourd à première vue mais il devient facile dès lors que l’on s’entoure d’autres produits complémentaires tels que JRubik pour le codage des ordres MDX ou XML Marker pour l’édition et la manipulation des fichiers XML (tous deux open source). Lors du passage en production de Mondrian, de mon coté, des développeurs m’ont remonté que certaines libs intégrées commencent à dater et sont en release dépassées mais rien à signaler à part cela.
Dès lors que l’on joue avec le cache pour y faire monter au maximum les données, on dispose de bonnes performances. Ne pas oublier d’optimiser au mieux les structures de données sources, la majeure partie des efforts est d’ailleurs à porter à ce niveau.
Attention au mode XML/A, qui nécessite quelques tâtonnements avant de fonctionner idéalement. Prévoir aussi eu peu de développement web si l’on souhaite intégrer les fonctionnalités de JPivot au sein d’une application déjà existante.

Mot de la fin :
J’espère que ce retour d’expérience vous a plu et surtout vous éclairera pour d’éventuels choix. Je n’ai pas pu tout consigner, car il y a tellement à dire, aussi n’hésitez pas à me poser vos questions, qu’elles soient précises ou génériques. N'hésitez pas non plus à me bacher si j'ai écrit une quelconque bétise.
Autre lieu qui pourrait vous intéresser, mon blog (http://open-bi.blogspot.com). Je ne vous envois pas là bas pour générer du traffic, rassurez vous, mais vous y trouverez un retour similaire avec en plus des snapshots. A noter qu’à l’avenir je m’efforcerai de maintenir un parallèle entre mon blog et developpez.com …
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2007, 09h13   #10
Nouveau Membre du Club
 
Inscription : septembre 2003
Messages : 92
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 92
Points : 30
Points : 30
Bonjour,

tout d'abord un grand merci pour cette critique des différents produits relatif au monde des entrepôt de données.
Ayant à travailler autour des mêmes problématiques dans le cadre d'une administration de l'état, je suis heureux de voir que tu partages les mêmes points de vue sur certains produits open source.

Je suis surpris qu'à aucun moment tu ne fais allusion à OPENI.
Est ce voulu ?
L'as tu testé ?
Est ce à ton avis un produit valable actuellement ?

Eric
greatmaster1971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 12h25   #11
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Citation:
Envoyé par greatmaster1971
Bonjour,
tout d'abord un grand merci pour cette critique des différents produits relatif au monde des entrepôt de données.
Je suis surpris qu'à aucun moment tu ne fais allusion à OPENI.
Est ce voulu ?
L'as tu testé ?
Est ce à ton avis un produit valable actuellement ?
Eric
Merci Eric,
OPENI est un projet valable et l'effort d'intégration qu'ils poursuivent est louable (et nécessaire à des fins de cohésion, ce qui manque parfois dans le libre, tous domaines confondus). Leur approche, par exemple, orientée utilisateur final / analyste de données (plutôt que développeur BI) est admirable et à encourager !!

Pour autant, et dans le contexte vécu actuellement, OPENI m'est plus apparu comme une autre compilation de briques déjà connues :
  • Mondrian pour le ROLAP,
  • XML/A pour les accès,
  • JPivot / JFreeCharts.
C'est à dire les briques de l'offre Pentaho, dont la communauté utlisateurs / développeurs est sans aucun doute plus nombreuse et plus active, ce qui compte beaucoup avant une intégration de ce type.
D'autre part, la partie partie serveur d'application et rendu final ne me sont d'aucune utilité car refondue sur SunOne dans mon contexte.

Attention, je ne veux pas que mon avis passe pour arbitrairement négatif :
  • Projet important et sexy car clairement orienté utilisateur final (enfin, de la BI pour "simples gens" !),
  • Repackaging de briques connues dans une sorte de "black box aglomérée", ce qui n'entre pas dans mes besoins actuels. En effet, je dois disposer de chaque brique de manière immédiate et transparente afin de les contraindre à des besoins très spécifiques (les modifier, comme par exemple passer par un taglib personnel et différent de JPivot).
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 18h42   #12
Invité de passage
 
Inscription : avril 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 1
Points : 1
Points : 1
Je travaille avec mondrian&Jpivot pour mon sujet de PFE.
pour les tools déja choisies
Je voudrais bien savoir est cela est possible:
je suppose :
Scénario : lors de l'exécution d'une transformation avec kettle, une erreur s'est déclenchée avant la fin de la transformation, donc l'arrêt de la transformation en cours.
Conséquence : des données ont étè déjà insérées dans ma table target, sans qu'une transformation aboutisse à sa fin.
Question : est ce que ce cas est toléré pour la réalisation des datawarehouse?

Merci
3aliosse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 10h56   #13
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Citation:
Envoyé par 3aliosse
Question : est ce que ce cas est toléré pour la réalisation des datawarehouse?
Ce cas est bien entendu inenvisageable.
L'architecture décisionnelle doit mettre à disposition des données valides, vérifiées et cohérentes. Tout état intermédiaire, c'est à dire incohérent, n'a pas lieu d'être.

Au delà de tes jobs d'alimentation et de transformation, il faut prévoir un contrôle qualité des données. Si ce contrôle passe, alors l'entrepôt peut être ouvert aux requêtes et analyses de tes clients.
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 22h17   #14
Nouveau Membre du Club
 
Inscription : septembre 2003
Messages : 92
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 92
Points : 30
Points : 30
Par défaut Fonctionnalités JPIVOT

Bonjour,

dans d'un de nos projet je tente d'utiliser JPIVOT pour accéder via Xmla à un serveur Mondrian.

Je rencontre des problème avec XMLA :
- je ne peux pas lancer de requetes via XMLA sur un cube alors meme que je peux interroger le meme cube à partir des composants jpivot intégrés au serveur mondrian
- mon 2ème problème concerne les caractères spéciaux, comme les caractères accentués en Francais par ex. . Sont ils à proscrire totalement du schema mondrian (XML) ? Si oui comment faire apparaître du francais avec caractères accentués dans les noms de membres comme "Tous les ééé" ?

Eric
greatmaster1971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2007, 08h53   #15
Invité de passage
 
Inscription : juin 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 3
Points : 3
Points : 3
Bonjour.

J'ai lu avec intérêt votre discussion à propos de mondrian et des outils d'exploration de cubes.

Sachez que si JPivot est fourni avec Pentaho, l'éditeur ne le soutient pas et le projet n'est plus appelé à évoluer.

C'est dans cet optique que nous développons FreeAnalysis, un explorateur de cube capable de se connecter aux cubes Mondrian et XMLA.

Celui ci est disponible sur SourceForge : http://sourceforge.net/projects/freeanalysis/

Actuellement il est décliné en 2 versions, un client lourd Java (Eclipse RCP) et une application Web déployable sous JBoss (mais il devrait pouvoir l'être sur n'importe quel conteneur de servlet ou serveur applicatif). Un composant Pentaho a également été développé afin de permettre l'appel à FreeAnalysisWeb depuis des xactions.

Je me ferais une joie de vous fournir du support si vous souhaitez tester ces produits et que vous rencontrez de quelconques difficultés, ou tout simplement si vous souhaitez plus d'informations à ce sujet.

Ronan Dunklau, développeur FreeAnalysisWeb
ronan.dunklau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 22h25   #16
Nouveau Membre du Club
 
Inscription : septembre 2003
Messages : 92
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 92
Points : 30
Points : 30
Citation:
Envoyé par ronan.dunklau
Bonjour.

J'ai lu avec intérêt votre discussion à propos de mondrian et des outils d'exploration de cubes.

Sachez que si JPivot est fourni avec Pentaho, l'éditeur ne le soutient pas et le projet n'est plus appelé à évoluer.
Es tu sur de ça ?
Je suis d'accord pour dire que Jpivot ne bouge pas beaucoup mais de là à dire que ca ne va jamais plus évoluer y'a une grosse marge !

Citation:
C'est dans cet optique que nous développons FreeAnalysis, un explorateur de cube capable de se connecter aux cubes Mondrian et XMLA.
En quoi votre approche diffère t elle de Jpivot et qu'est ce qu'elle apporte de plus ?

L'approche Jpivot m'a paru intéressante principalement car c'est facile à intégrer dans une appli J2EE existante (une appli JSF dans mon cas).
Est ce que FreeAnalysis offre cette possibilité ?

Eric
greatmaster1971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 15h22   #17
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Citation:
Envoyé par greatmaster1971
L'approche Jpivot m'a paru intéressante principalement car c'est facile à intégrer dans une appli J2EE existante (une appli JSF dans mon cas).
Eric
Je rebondis là dessus pour vous indiquer que la présentation des données, dans le cadre du projet que j'ai monté, s'est fait au travers de la taglib de mon client. La couche JPivot a été purement et simplement évitée, nous avons géré le retour direct de Mondrian (jeu de données avec "coordonnées" de type ligne1, Colonne1 ...).
Et là, on accélère beaucoup les affichages ...
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 15h47   #18
Nouveau Membre du Club
 
Inscription : septembre 2003
Messages : 92
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 92
Points : 30
Points : 30
Merci pour cette précision.
Mais cela suppose d'avoir à dispo une taglib qui permet d'attaquer les schema mondrian dans l'appli J2EE.
Que fait on quand on ne possède pas cette taglib ?

D'autre part tu sembles dire que la couche JPivot introduit des problèmes de performance.

Me trompe je ?

Eric
greatmaster1971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 17h03   #19
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 74
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2005
Messages : 74
Points : 39
Points : 39
Citation:
Merci pour cette précision.
Mais cela suppose d'avoir à dispo une taglib qui permet d'attaquer les schema mondrian dans l'appli J2EE.
Que fait on quand on ne possède pas cette taglib ?
Tout à fait, mais cela n'est pas très compliqué. Je t'invite à voir ce que renvoie Mondrian (le format des données), c'est assez facile à parser et à afficher.

Citation:
D'autre part tu sembles dire que la couche JPivot introduit des problèmes de performance.
Me trompe je ?
Eric
Oulà, sujet sensible.
Vu que je ne passe pas par JPivot, mais par une taglib très réduite et compacte, oui je gagne en performances (une couche de moins).
Je reconnais, et cela n'engage que moi et dans la limite de ce que j'ai pu réaliser, que JPivot n'est pas forcément un exemple de rapidité.
D'autre part, j'ai fait examiner JPivot par un de mes expert Java J2EE, et il m'a été rapporté que les certaines des libs utilisées étaient deprecated, abandonnées ou en versions très mineures ...

Au final, JPivot reste une lib très utile, et "qui fait le job" dès que l'on veut un rendu graphique réussi et sexy en sortie de Mondrian. Je l'utilise sur d'autres projets.
VinZent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 17h44   #20
Invité de passage
 
Inscription : mai 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 2
Points : 1
Points : 1
Bonjour tout le monde

bon je vais déterrer un peu ce post extremement intéressant avec lequel j'ai compris bcp bcp de chose!

je voulais savoir comment voir justement ce jeu de donnée renvoyé par mondrian à Jpivot?

pourrait on dire que mondrian est finalement comme un SGBD en ROLAP mais pour des cubes?

dernière question pourrait on mettre JPivot directement en amont d'une base de donnée relationnelle normal (forme normalisée, là je sens qu'on va me taper)??

je suis un bon petit newbie dans le domaine et je me forme tout seul car j'ai envie de m'orienter justement dans ce domaine dans mes études!

Salutations marocaines et merci d'avance!!
Salim_Brrr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h53.


 
 
 
 
Partenaires

Hébergement Web