IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Pentaho Discussion :

Comment faire cohabiter ETL (avec Kettle) + JPivot + Weka et Mon application web


Sujet :

Pentaho

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut Comment faire cohabiter ETL (avec Kettle) + JPivot + Weka et Mon application web
    Bonjour,

    j'espère avoir choisi un bon intitulé de message

    je développe actuellement une application web (architecture 3-tiers : serveur http, serveur tomcat, poste client) qui a pour but de faire l'analyse OLAP et data mining des données utilisées dans un réseau local
    en résumé, elle permet d'alimenter la BD source et faire une analyse décisionnelle à partir d'un poste client

    j'ai réussi à faire ETL pour alimenter mon data warehouse, j'ai pu générer les fichiers arff et csv grâce à KETTLE, pour pouvoir utiliser WEKA et faire le data mining, et je vais bientôt passer aux requêtes MDX pour faire OLAP avec JPIVOT, mais je ne sais pas comment déployer tout ça, puisque l'utilisateur final veut accéder à tout à partir de l'application web

    j'aimerais avoir votre avis et vos conseils, s'il vous plait

    - pour commencer j'ai pensé à utiliser PAN de kettle pour alimenter le data warehouse périodiquement, en utilisant la ligne de commande "at" dans le serveur et lancer un fichier .bat qui contient les lignes de commandes qui lancent mes transfo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Pan.bat /file:chemin ...ktr /level:basic"
    - dans la page web correspondant à l'utilisateur "décideur/analyste" je mets des liens vers les pages .jsp qui contiennent mes requêtes MDX et qui sont exécutées par JPivot (dans le répertoire queries)
    le lien ressemble à ça :
    http://IPSERVER:8080/jpivot/testpage...uery=MaRequete

    - pour le data mining je sèche complètement, weka est au niveau du poste client (j'ai programmé une applet java pour lancer weka à partir de mon application), et mes transformations qui génèrent les fichiers arff et csv sont au niveau du serveur, comment je fais pour que le client fasse le data mining à son niveau?
    est ce que ces transformations sont elles aussi périodique? ou dois je laisser l'analyste les exécuter manuellement via l'application? est qu'est ce que je fais avec ces fichiers csv et arff? je les laisse sur le serveur et je les partage pour que l'utilisateur puisse les ouvrir à partir de son poste? ou est ce que je lance un download pour qu'il les télécharge à son niveau?

    Mes idées sont toutes chamboulées et mon message encore plus
    j'ai essayé d'être claire, si ce n'est pas le cas, dites le moi, je reprendrais les points "bizarres" de ce post

    j'attends impatiemment vos réponses/conseils/avis/critiques et je vous remercie d'avance

    bonne journée à tous

    cordialement
    Yasmine

  2. #2
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 43
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser une plateforme comme SpagoBI (100% open-source) ?
    Spago permet d'exécuter des jobs ETL, et intègre JPivot et Weka, le tout sous forme d'une application Web. Ça te permettra donc de tout centraliser, et en plus de bien gérer les utilisateurs et la sécurité.
    Je ne sais pas si c'est ce que tu recherche.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut ça m'interesse même si c'est pas ce que je cherchais
    bonsoir,

    merci pour votre réponse, je ne connais pas SpagoBI mais je viens de faire une petite recherche et je vois que cette plateforme ressemble à Pentaho, vous dites que Weka est intégré à SpagoBI, ça m'intéresse est ce que vous pouvez me donner des liens svp?

    cordialement
    Yasmine

  4. #4
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 43
    Points : 44
    Points
    44
    Par défaut
    Ca ressemble à Pentaho dans le sens où c'est aussi une plateforme BI Open-Source et dans le sens où certains modules sont communs aux deux, mais sinon ce sont deux approches différentes.

    Site officiel :

    http://spagobi.eng.it/ecm/faces/publ...utions/spagobi

    (il y a un lien vers la démo online sur la gauche)

    Téléchargements :

    http://forge.ow2.org/project/showfiles.php?group_id=204

    Wiki (pour l'installation) :

    https://wiki.spagobi.org/xwiki/bin/view/Main/

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Megalomanu Voir le message
    Ca ressemble à Pentaho dans le sens où c'est aussi une plateforme BI Open-Source et dans le sens où certains modules sont communs aux deux, mais sinon ce sont deux approches différentes.

    Site officiel :

    http://spagobi.eng.it/ecm/faces/publ...utions/spagobi

    (il y a un lien vers la démo online sur la gauche)

    Téléchargements :

    http://forge.ow2.org/project/showfiles.php?group_id=204

    Wiki (pour l'installation) :

    https://wiki.spagobi.org/xwiki/bin/view/Main/
    merci beaucoup je vais me documenter là-dessus, mais mon thread reste ouvert, j'attends d'autres réponses (vous comprenez que je ne peux pas changer tout ça une semaine avant la remise de mon mémoire )

    Bonne journée à tous
    Cordialement
    Yasmine

  6. #6
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Citation Envoyé par -yasmine- Voir le message
    merci beaucoup je vais me documenter là-dessus, mais mon thread reste ouvert, j'attends d'autres réponses (vous comprenez que je ne peux pas changer tout ça une semaine avant la remise de mon mémoire )
    Alors c'est mort, parce que mettre en place SpagoBI ça demandera plus d'une semaine.


    Citation Envoyé par -yasmine- Voir le message
    - pour le data mining je sèche complètement, weka est au niveau du poste client (j'ai programmé une applet java pour lancer weka à partir de mon application), et mes transformations qui génèrent les fichiers arff et csv sont au niveau du serveur, comment je fais pour que le client fasse le data mining à son niveau?
    est ce que ces transformations sont elles aussi périodique? ou dois je laisser l'analyste les exécuter manuellement via l'application? est qu'est ce que je fais avec ces fichiers csv et arff? je les laisse sur le serveur et je les partage pour que l'utilisateur puisse les ouvrir à partir de son poste? ou est ce que je lance un download pour qu'il les télécharge à son niveau?
    Moi je mettrais les données sur le serveur, dans une base de données. Et Weka coté serveur aussi avec une interface web en face (simplifié par rapport à la GUI de Weka). M'enfin en une semaine c'est mort aussi.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Jester Voir le message
    Alors c'est mort, parce que mettre en place SpagoBI ça demandera plus d'une semaine.




    Moi je mettrais les données sur le serveur, dans une base de données. Et Weka coté serveur aussi avec une interface web en face (simplifié par rapport à la GUI de Weka). M'enfin en une semaine c'est mort aussi.
    tu m'as déjà condamné le rapport c'est pour la semaine prochaine, mais l'application je travaille toujours dessus, j'ai un mois devant moi, est ce que tu peux m'expliquer ton idée sur weka stp ? parce que j'ai pas su comment gérer l'accès vers Weka à partir du poste client, Weka doit s'executer au niveau du client et non du serveur
    merci beaucoup pour ta réponse

    cordialement
    Yasmine

  8. #8
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Ce n'était pas pour condamner, mais pour te proposer de trouver une solution alternative plus rapide.

    Weka peut s'exécuter où tu veux. Le plus logique c'est de l'exécuter sur le serveur afin d'avoir accès aux ressources (fichiers arff et base de données) qui sont sur le serveur.

    Comme Weka est en Java, il est possible de l'utiliser directement dans le code de tes servlets de ton Tomcat.

    Le problème c'est bien sur que l'interface graphique de Weka ne sera plus utilisable, il faudra faire des servlet d'interface.

    Par exemple sur ici j'ai fait une interface simpliste qui prend un fichier arff et qui mouline avec weka derrière et retourne un rapport en pdf (mais ça pourrait être du html). Forcément faire une interface web ça prend un peu de temps.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut Merci excellente idée, je n'y ai pas du tout pensé
    elle est excellente ton idée Jester, je l'adore! c'est exactement ce que je souhaitais faire au début mais j'ai pas su si c'était possible
    s'il te plait, est ce que tu peux me donner ton code source, oh! please! je t'en supplie! je l'adore trop ton idée, j'en suis même tombée amoureuse tellement elle est superbe, et je suis débutante je pense pas que je pourrais le faire en 15 jours
    dis : tu me le donnes ton code stp

  10. #10
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Ce n'est possible et ce n'est pas une bonne idée (trop complexe).

    Mais c'est facile de refaire la même chose en plus simple. Un formulaire HTML. Une servlet qui prend le contenu appelle Weka et écrit une réponse html.

    J'ai utilisé jfreechart pour faire les graphiques, mais si tu peux faire sans graphique ce sera beaucoup plus simple. iText pour faire le pdf, mais ça aussi c'est pas une bonne idée, ça prend du temps.

    La partie web est réalisé chez moi en grails. C'est pour faire des appli web facilement, je ne sais pas si c'est une bonne idée pour toi.

    Voici le code de la page, le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <html>
    <head>
    <title>Welcome to Grails</title>
    <meta name="layout" content="main" />
    </head>
    <body >
    <h1>Submit a weka dataset as a file</h1>
     
    <g:form name="submitForm" action="submitFile"
    	enctype="multipart/form-data">
    	<input type="file" name="file"/>
    	<input type="submit" />
    </g:form>
    <h1>Or a weka dataset as buffer</h1>
    <g:form name="submitForm" action="submitText">
    	<textarea name="content"  rows="20" cols="80">${content}</textarea><br />
    	<input type="submit" />
    </g:form>
    </body>
    </html>
    et le code du controlleur, avec des indices de ce que tu dois faire ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    import esotech.rosetta.*;
    import esotech.rosetta.renderers.*;
    import esotech.rosetta.plugins.*;
    import org.jdom.Document;
     
    import esotech.analysis.analyser.CorrelationAnalyser;
    import esotech.analysis.analyser.ScatterPlotAnalyser;
    import esotech.analysis.analyser.AttributeAnalyser;
    import esotech.analysis.analyser.ACPAnalyser;
    import esotech.analysis.AnalysisReport;
    import esotech.data.AttributeTypeNumeric;
    import esotech.data.Dataset;
    import esotech.data.DatasetStructure;
    import esotech.data.extract.ArffExtractor;
     
    class AnalysisController {
    	def defaultContent = "@RELATION iris\n"+
    	"\n"+
    	"@ATTRIBUTE sepallength	REAL\n"+
    	"@ATTRIBUTE sepalwidth 	REAL\n"+
    	"@ATTRIBUTE petallength 	REAL\n"+
    	"@ATTRIBUTE petalwidth	REAL\n"+
    	"@ATTRIBUTE class 	{Iris-setosa,Iris-versicolor,Iris-virginica}\n"+
    	"\n"+
    	"@DATA\n"+
    	"5.1,3.5,1.4,0.2,Iris-setosa\n"+
    	"4.9,3.0,1.4,0.2,Iris-setosa\n"+
    	"les autres ligne du jeu de données iris.arff \n"+
    	"5.9,3.0,5.1,1.8,Iris-virginica\n";
     
     
    	def index = {
    			[content:defaultContent]
    	}
     
     
    	def submitText = {
    			processAndRender(params.content);
    	}
     
    	def submitFile = {
    	  processAndRender(request.getFile('file').inputStream.text)
    	}
     
      def processAndRender(content) {
    // Là il faut que tu utiliser un ArffReader de Weka.
    		ArffExtractor extractor = new ArffExtractor(new StringReader(content));
     
    // Faire ton traitement avec Weka
    		AnalysisReport report = new AnalysisReport(extractor.extract());
    		report.addAnalysis(new AttributeAnalyser());
    		report.addAnalysis(new CorrelationAnalyser());
    		report.addAnalysis(new ACPAnalyser());
     
    // Gérer l'affichage, ici j'utilise ma lib pour faire du pdf, mais tu peux sortir du html ce sera plus simple
    		println report
    		RosettaEngine engine = new RosettaEngine();
    		def document = engine.parseString(report.toString());
    		engine.process(document);
     
    	  // Create the pdf renderer which will be tested.
    		PdfRenderer renderer = new PdfRenderer();
     
    		// use a buffer to store the generated pdf.
    		ByteArrayOutputStream buffer = new ByteArrayOutputStream();
     
    		// Wrap it in a printstream
    		PrintStream ps = new PrintStream(buffer);
     
    		// Generate the pdf.
    		renderer.render(document, ps);
    		ps.close();
     
    /*		println buffer.toString()*/
    		 response.contentType = "application/pdf" 
    		 response.outputStream << buffer.toByteArray() 
    	}
     
    }

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Merci beaucoup Jester, ça me parait faisable mais impossible en quelques jours pour une débutante comme moi, surtout que tout se bouscule en ce moment

    j'ai bien compris ton code, mais il y a 2 choses qui m'échappent, RosettaEngine et ton parsing
    - est ce que RosettaEngine est "ta" lib qui utilise jfreechart et iText? (j'ai l'impression de dire une grosse bêtise là)
    - pour le parsing, je vois que tu utilises JDOM, si je ne me trompe pas tu parses seulement pour obtenir une arborescence à la fin (doc) c'est ça?

    j'ai une idée assez clair maintenant de comment commencer tout ça, mais je ne vois pas comment afficher le résultat aux utilisateurs, j'ai besoin du nuage de points, il va falloir que je fasse des recherches sur jfreechart et le temps passe trop vite, j'y arriverai jamais, mais je compte bien tester tout ça plutard

    merci pour tout

  12. #12
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Citation Envoyé par -yasmine- Voir le message
    j'ai bien compris ton code, mais il y a 2 choses qui m'échappent, RosettaEngine et ton parsing
    - est ce que RosettaEngine est "ta" lib qui utilise jfreechart et iText? (j'ai l'impression de dire une grosse bêtise là)
    - pour le parsing, je vois que tu utilises JDOM, si je ne me trompe pas tu parses seulement pour obtenir une arborescence à la fin (doc) c'est ça?
    Ouaip tout ça c'est pour mon système de rendu. Toi tu dois juste faire des points (en transformat le arff en instances de weka) et remplir un graphique jfreechart.

    A noter que por faire plus simple, google propose une api en ligne pour faire des graphiques. Tu construit une url genre http://google.com/xyploy?x1=0&y1=0&...&y65=2&x65=6 et ça te donne le graphique. Je n'ai plus l'url par contre.

    PS : en fait si http://code.google.com/intl/fr/apis/chart/

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Salut Jester,

    merci pour ta réponse, j'ai l'impression que c'est la chose la plus importante que j'ai appris de toute ma vie
    .... j'exagère?! je sais

    merci pour le lien, c'est vrai que c'est pratique mais j'aimerais bien essayer d'abord avec jfreechart et itext, j'ai très bien compris le principe, encore merci, c'est dommage que je ne puisse pas le faire maintenant, mais j'essayerai ça après la soutenance

    Bonne journée
    Yasmine

  14. #14
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Mais de rien. Il faut bien que quelqu'un promeuve l'utilisation de Weka

Discussions similaires

  1. comment faire cohabiter jquery avec FormCheck de Mootools ?
    Par clavier12AZQSWX dans le forum jQuery
    Réponses: 5
    Dernier message: 11/05/2010, 14h26
  2. [JDBC][Access] comment faire un lien avec la BD
    Par pmartin8 dans le forum JDBC
    Réponses: 4
    Dernier message: 19/10/2005, 14h35
  3. [Configuration] comment faire cohabiter php3 et php4 ?
    Par a_me dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 30/09/2005, 16h44
  4. comment faire un sphère avec une texture ?
    Par fregate dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/09/2005, 03h37
  5. [INDY] comment faire un 'POST' avec idHTTP??
    Par gamez dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/05/2004, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo