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

API standards et tierces Java Discussion :

[OLAP] Utiliser ou Créer un moteur OLAP en JAVA


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Par défaut [OLAP] Utiliser ou Créer un moteur OLAP en JAVA
    Bonjour,

    J'ai des problèmes pour réaliser une application JAVA qui me permettrait de me connecter à une Base de Donnée OLAP dans le but d'y executer des requêtes (MDX ??) afin de récupérer le resultat de la requête dans un fichier .XML et/ou .TXT.

    Mais je suis perdu. J'ai réussi a déployer MONDRIAN, une application J2EE permettant l'acces et le rendu graphique de base de données OLAP, et ainsi j'ai compris sont fonctionnement et j'ai pu valider ma Base de Données. Toutefois, je ne veux pas réaliser une application WEB. Je désire seulement faire un outil JAVA me permettant via une interface graphique de choisir une base de donneé et d'éxécuter une requete, afin d'enregister le resultat de la requête dans un fichier XML ou TXT. MONDRIAN, un server OLAP qui fonctionne en J2EE, est il possible d'utiliser ce server dans une application JAVA et non dans un environnement WEB??

    De plus j'ai trouvé des informations sur JOLAP une librairie qui permettrait de acceder et de manipuler des cubes.
    http://jcp.org/en/jsr/detail?id=069
    D'apres ce que j'ai remarqué cette librairie fait partie de Mondrian.

    Bref qqn aurait'il les connaissances pour m'orienter dans la bonne direction. Car pour le moment je ne sais pas réellement dans quel sens partir. Mondrian étant Libre j'ai acces aux sources et librairies.
    Mais comment utiliser seulement le moteur Java de mondrian ?
    QQn aurait t'il déjà essayer et réussi à developper une application Java pour acceder a une BD OLAP.

    Serait t'il possible de simplement développer, une application Java se connectant à ma BD R-OLAP et executant des requetes. Toutefois comment executer des requetes sur cette BD ? Mondrian utilise des requetes MDX (késako ?) est'il possible d'executer de telle requêtes directement sous Mysql ? etc ...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Que veux-tu faire exactement ? Du OLAP ou du relationnel ? Une Base de Donnée OLAP cela n'existe pas !

    Si ton but est d'interroger des tables de bases de données en SQL, alors utilises le package java.sql.*. Tu trouveras de nombreux exemples sur le net.

    Maintenant si tu veux interroger un moteur OLAP avec du MDX, tu peux effectivement t'appuyer sur Mondrian. Mondrian est un moteur OLAP qui s'appuie sur un SGBD relationnel (R-OLAP). L'interface Web associée par défaut est JPivot mais tu peux très bien invoquer Mondrian avec autre chose que JPivot. Je peux te fournir un programme qui permet de soumettre des requêtes MDX au moteur Mondrian et récupérer les résultats de la requête.

  3. #3
    Membre confirmé Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Par défaut
    Bon oui je veux faire du OLAP et non du relationnel ! Je m'excuse pour avoir utiliser le therme BD OLAP qui n'est donc pas approprié.

    Merci pour les précision pour Mondrian. Donc il serait possible d'utiliser juste le moteur Java dans une appli Java ? Donc il serait possible d'avoir une application Java qui adresse des requetes MDX a du OLAP et de récupérer les résultat ?
    Bon je suis en train de regarder si je ne peux pas utiliser la librairie associé a Mondrian pour cela.

    Sinon oui je serais intéréssé si cela est possible pour récupérer ton Programme qui permet d'adresser des requetes MDX a Mondrian. Cela me permettra peut petre de percer un peu plus le fonctionnement de tout cela

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Alors si tu veux une interface toute prête, il y a JRubik qui fait cela : http://rubik.sourceforge.net/jrubik/intro.html !

    Sinon voilà un exemple un peu en vrac, à toi de l'adapter :

    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
    public class MondrianMoteur
    {
      public static void main(String[] args)
      {	
        String configuration =
          "Provider=mondrian;"+
          "Jdbc=jdbc:oracle:thin:<user>/<passwd>@<serveur>:<port>:<sid>;"+
          "Catalog=Calipso.xml;"+
          "JdbcDrivers=oracle.jdbc.OracleDriver;";
     
        String mdx =
          "  select {[Measures].[Montant],"+
          "          [Measures].[Frais de Dossier]} ON COLUMNS,"+
          "         {[Canal].[Tous les Canaux]} ON ROWS"+
          "  from [Production]";
     
        new MondrianMoteur().executeRequete(configuration, mdx);
      }
     
      private void executeRequete(String configuration, String requete)
      {
        Connection connection = null;
        try
        {
          DriverManager.getConnection(configuration, null, true);
          Query query = connection.parseQuery(requete);
          Result result = connection.execute(query);
          afficherResultat(result);
        }
        catch (Exception e)
        {
          e.printStackTrace();
        }
        finally
        {
          if (connection != null)
            connection.close();
        }
      }
     
      private void afficherResultat(Result result)
      {
        Axis[] axis = result.getAxes();
        for (int i=0; i<axis.length; i++)
          for (Position p : axis[i].getPositions())
            for (Member m : p)
              System.out.println(m.getCaption());
      }
    ]

  5. #5
    Membre confirmé Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Par défaut
    Merci bien, je vais me tourner vers le bout de code que tu m'a laissé d'apres ce que je vois il devrait plus ou moins répondre à mes besoins . Toutefois j'ai des petites questions, les objet Query, et Result c'est quoi ?

    Je Cocherais le topic Résolu qd j'aurais trouv ma solution en attente je suis toujours preneur d'aide ou commentaire .

    Je posterais ma solution qd je l'aurais trouvée.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    J'ai oublié de te mettre les imports :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import mondrian.olap.Axis;
    import mondrian.olap.Connection;
    import mondrian.olap.DriverManager;
    import mondrian.olap.Member;
    import mondrian.olap.Position;
    import mondrian.olap.Query;
    import mondrian.olap.Result;
    "Query" converti ta requête MDX en une structure Objet.
    "Result" est plus ou moins un équivalent du ResultSet en JDBC. C'est le tableau résultat de ta requête avec l'axe[0] en colonne et axe[1] en ligne.

    Mondrian a été conçu avant la spécification JSR-69 JOlap. Pour l'instant Mondrian n'implémente pas cette spécification et à ma connaissance personne ne s'est encore coller à en créer une implémentation.

Discussions similaires

  1. Connexion entre Eclipse et un moteur OLAP
    Par hanane_271 dans le forum Eclipse
    Réponses: 0
    Dernier message: 01/04/2015, 21h03
  2. le moteur olap
    Par semsima dans le forum Oracle
    Réponses: 1
    Dernier message: 02/08/2011, 10h48
  3. Créer des cubes olap et les interroger avec MDX
    Par tata_aga dans le forum Mondrian
    Réponses: 6
    Dernier message: 06/02/2010, 14h31
  4. Créer un cube OLAP avec Talend
    Par shark84 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 11/05/2009, 14h22
  5. [SQL2K] Créer une base OLAP sur un serveur existant ?
    Par dotnet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/01/2007, 10h47

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