decisionnel-opensource
DESCRIPTION
décisionnel open sourceTRANSCRIPT
Panorama d’outils décisionnels en open source
Boughaba Ossama Avril 2007
Plan• Bases de données et entrepôt de
données au service de l’entreprise.• ERPs et ETLs.• Postgres comme solution pour les
Systèmes d’informations de demain.• Configuration de Postgres pour la haute
disponibilité.• Configuration de Postgres pour le
décisionnel.
Plan
• Création de tableaux de bords avec JasperReports.
• Outils de décisionnel en opensource.• Alimentation du datawarehouse avec
l’ETL Octopus. • OLAP sur Mondrian.• Conclusion• Questions
Animateur
Boughaba Ossama
• Développeur d’applications d’entreprises • Chef de Projet
Caciopee SARL
CHU IBN ROCHD CASABLANCA
CACIOPEE LA SOCIETE
Société de Services Informatiques
Sept années d’existence
Objectif: devenir une référence en matière de Services Informatiques au Maroc et à l’Étranger.
CHU IBN ROCHD CASABLANCA
CACIOPEE LA SOCIETE
Nous avons adopt d s fin 2000, les m thodologies et les technologies é è éd’aujourd’hui …
®
S.O.A
CHU IBN ROCHD CASABLANCA
CACIOPEE LA SOCIETE
… et matris les plateformes et outils les supportantî é
CHU IBN ROCHD CASABLANCA
CACIOPEE LA SOCIETE
Nos m tiers:é
Développement
Formation
Conseil
Bases de données et entrepôts de données
Au service de l’entreprise
Bases de données & Datawarehouse
Contexte : • L’élargissement des secteurs d’activité et
les évolutions dues à la mondialisation.• La concurrence accrue et l’obligation de
sortir rapidement des produits innovants.
Bases de données & Datawarehouse
Implications : • Le besoin permanant d’accéder aux
données d’exploitation.• Le besoin accru d’accédé aux données historiées
à fin de vérifier les performances et dessiner la stratégie.
Système d’information et fonctions des organismes
Bases de données & Datawarehouse
Solution : • Les SI en datawarehouses et les outils de
requêtage permettent de dégager l’information stratégique.
Bases de données & Datawarehouse
Sources et utilisation du datawarehouse
ERPs et ETLs
L’ERP
• L’idée de l’ERP (Entreprise Ressource Planning) est l’idée d’un outil informatique taillé entreprise qui :– Emane d’un concepteur unique.– Couvre d’une façon modulaire plusieurs ou la
totalité des activités de l’entreprise.– Repose sur une base de données unique.– Garantie la piste d’audit.
L’ERP
• Deux dimensions capitales pour l’ERP– Le degrés d’intégration.– La couverture opérationnelle.
L’ERP
• La répartition des coûts dans un projet ERP.
Point forts en statistiques de l’ERP
Exemple d’ERP : Compiere
Un menu exhaustifs !
Exemple d’ERP : Compiere
• L’utilisateur participe à des workflows.
Exemple d’ERP : Compiere
• Et à des écrans de maintenance
ETLs
« Extract-Transform-Load »
ETLs• « Extract-Transform-Load »
• Il s'agit d'un middleware permettant d'effectuer des synchronisations massives d'information d'une base de données vers une autre.
• Selon le contexte, on traduira par « alimentation », « extraction », « transformation », « constitution » ou « conversion », souvent combinés.
Alimentation des Datawarehouses
Schémas simple
Schémas de production sur talend
Postgres comme solution pour les Systèmes d’informations de
demain
Paysage des bases de données Open Source
• Le monde du logiciel libre dispose d’une gamme complète de solutions de persistance.– Business (postgres)– Scientifiques (mysql)– Embarquée (hsqldb, Mkoi)– Web (mysql)– Performance (msql)
Paysage des bases de données Open Source
• Certaines sociétés qui proposaient des bases de données qui ont atteint le cycle d’intégration dans d’autres produit, distribuent aujourd’hui gratuitement leurs Bases de données.
– FireBird (Borland)– SapDB (SAP)
Cas de PostgreSQL• PostgreSQL est le fruit de longues années de
développement à l’université de Berkeley et sponsorisé par des institution hautement importantes aux états unis.– Defense Advanced Research Projects Agency (DARPA)– the Army Research Office (ARO) – the National Science Foundation (NSF)– …
• Depuis 1986 PostgreSQL est développé et utilisé dans les domaines financiers, médicales, GIS, messagerie …
• Aujourd’hui Postgres est en développement actif par la communauté ainsi que par des société telles que Sun et Fujitsu
Cas de PostgresSQL
• Ce développement est à l’origine des base de données relationnelles les pus avancées.– DB2– Informix– Ingres (l’œuf et la poule)– Sybase
Cas de PostgreSQL• Techniquement PostgreSQL est un SGBDR
mature et avancé qui offre les possibilités suivantes. (et au delà)– Intégrité référentielle.– Transactions.– Vues.– Triggers.– Procédures stockées.– Héritage.– Schémas.– Interfaces programmables.
Cas de PostgreSQL• PostgreSQL gagne en popularité grâce au
développement continue de ses fonctionnalités notamment.
– Support des plateformes Windows.– Tablespaces.– Vacuum.– PL/SQL.– SQL 99.– Accès concurrents.– …
PostgreSQL en environnement de production
• PostgreSQL est une base de donnée destinée qui supporte des environnements d’exploitation divers et exigeants– Linux, Unices (AIX, Solaris, HP-UX, SGI IRIX,
Mac OS X, Tru64 ), Windows NT, Beos…– Champs jusqu’as 1GB, enregistrements
jusqu’as 1.6TB, Tables jusqu’as 32TB …– Les DBA déclarent que postgres supporte
aisément des BD a 4TB sur un serveur a 8 processeurs.
Installation de PostgreSQL
• PostgreSQL est distribué avec la majorité des Systèmes d’exploitation Linux. Il est aussi disponible pour une grande partie des autres Unix.
• La version 8 de PostgreSQL est installable sous Windows grâce au système msi.
Configuration de Postgres pour la haute disponibilité
Haute disponibilité
• Souvent les Systèmes de production exigent de la haute disponibilité afin de garantir la continuité de service même en cas de panne sur un serveur.
• Les bases de données commerciales proposent des offres solides dans ce sens
Réponse open source
• Sequoria est un middleware transparent pour une solution de clusturing.
• Il propose un Driver JDBC générique et s’occupe de la distribution de charge sur les nœud du cluster.
• Sequoria propose aussi l’implémentation de la haute disponibilité requise par les systèmes de production
L’outil sequoria
Réponse open source
• Autres avantages :
– Reprise transparente après incidents– Cache intégré sur requêtes – Administration JMX– Licence Apache – Support commercial– …
Configuration de Postgres pour le décisionnel
Problème de la transaction• Les applications demandent à ce que un
ensemble d’opérations soient menée d’un coup.• Dans une opération de vente
– Vérifier le stock.– Mettre à jours les quantités.– Générer une commande fournisseur en cas de besoin.– Enregistrer la vente.– Générer une Facture.– …
Problème de la transaction
Critères ACID
• Les transactions garantissent :
– Atomicité.– Consistance– Isolation– Durabilité
Niveaux d’isolation
• Trois phénomènes sont à éviter en cas de concurrence :
– Dirty reads
– Nonrepeatable reads
– Phantom reads
Niveaux d’isolation
Postgres pour datawarehouse
• Optimiser une base de données postgres pour le Datawarehouse.
1) Niveau d’isolation#default_transaction_isolation = 'read committed‘
2) Transactions en lecture seule par défaut#default_transaction_read_only = on
Postgres pour datawarehouse
• Autres paramètres :
max_connections : pour éviter le swapshared_buffers : mémoire occupée par
postgresmax_fsm_pages : Espace d’élément
suppriméswork_mem : mémoire de tri
Postgres pour datawarehouse
• Autres paramètres :
commit_delay : augmenter les chances d’un commit groupé
fsync : désactiver la synchronisation avant le commit
Etapes d’exécution d’une requête
1. Transmission of query string to database backend
2. Parsing of query string 3. Planning of query to optimize retrieval of
data 4. Retrieval of data from hardware 5. Transmission of results to client
Réglages génériques du coté de l’application cliente
3. Utilisation des pools de connections
5. Utilisation des requêtes précompilée
Postgres pour datawarehouse
• Mais surtout :
• Un design saint des tables de la base de donnée.
• Des requêtes et un mode requêtage bien étudiés.
Création de tableaux de bords avec jasper reports
Création de tableaux de bords avec jasper reports
Jasper Reports, IReport
Plan
• Introduction.• Installation des outils.• Fonctionnement de Jasper Reports.• Utilisation de Jasper Reports.• Utilisation de IReport.
Plan
• Utilisation de IReport.– Rapport simple.– A partir de la base de donnée.– Avec diagramme.– Avec code barre.– Sous Rapports.
Introduction• Les Reports constituent une partie
importante dans les applications d’entreprises.
• Ils aident à – Produire des documents.– Dresser des tableaux de bord .– D’aider aux décisions.
• Les solutions de reporting sont pour la plupart propriétaires et coûteuses.
Introduction• Il existe un ensemble de normes et de
produits standards et open sources qui s’adressent à ce problème.– Standards
• xsl• xsl-fo.
– Outils • Jfree chart,• Jasper report• IReport.
Introduction : Jasper Reports.
• Jasper Reports est un projet open source stable et largement utilisé.
• Le Projet est hébergé sur http://jasperreports.sourceforge.net/
• Le support professionnel est garantit sur http://www.jaspersoft.com
Introduction : IReport.
• IReport est l’éditeur graphique open source le plus avancé pour Jasper Reports.
• Le Projet est hébergé sur http://ireport.sourceforge.net
• La documentation étendue et support commercial sont disponibles sur http://www.ireport.org
Installation des outils• Les outils Jasper Report et IReport présentent
des avantages majeures.– Open sources.
• Extensibles, personnalisables, ne contiennent pas de code malveillant.
– Gratuit.• Peuvent être testés sans contraintes. Adoptés ou laissés.• Na gonflent pas le budget du projet.
– Java.• Portables, s’installent par simple copie, ne touchent pas aux
dll, bases de registres autres programmes …• Peuvent s’intégrer aux produits java et J2EE.
Fonctionnement de Jasper Reports• Jasper Reports Fonctionne en tant que
Compilateur et interpréteur• Il accepte en entrée un xml compatible avec
jasperreports.dtd
Fonctionnement de Jasper Reports
• L’xml décrit la structure du document, l’emplacement des éléments la source de données, les calculs …
• Le document xml doit être compilé vers un document .jasper
• Avec un document xml compilé et une source de donnée jasper reports réalise une impression.
Fonctionnement de Jasper Reports
• Jasper Reports exporte son impression vers une page Web ou vers une application
Utilisation de Jasper Reports.• Jasper Reports est distribué en code source
autant que projet Eclipse.• Le Projet peut être modifié et recompilé grâce à
Jakarta ant.
Autours de Jasper Reports
• Jasper Reports expose ses possibilités à travers les exemples compilables et démontrables.
Fonctionnement de IReport• IReport offre aux utilisateurs de Jasper
Reports une interface graphique pour le design de leur rapports
• IReport Utilise la librairie JFreeChart disponible sur http://www.jfreechart.org. pour créer des diagrammes.
• JFreeChart est gratuite ouverte et populaire.
• JFreeChart permet de créer des diagrammes de type camemberts, lignes, barres … en plat ou en 3D.
Avec diagramme
Avec diagramme
A partir de la base de données
A partir de la base de données
• Pour créer des rapport plus complexes on peut élaborer des requêtes SQL plus recherchées.
• Seulement les rapports simples peuvent être insuffisants pour montrer – plusieurs tableaux dans un seul rapport.– des détails de type master/slave.
Sous Rapports
• Jasper Reports (et l’outil IReport) introduit la notion de sous rapports (subreports).
• Un sous rapport est un rapport normal pouvant être inclus dans un rapport parent.
• Le sous Rapport peut recevoir des paramètres du rapport parent.
Sous Rapports
Sous Rapports
Alimentation du datawarehouse avec l’ETL Octopus
ETL Octopus
• Octopus est un ETL simple d’utilisation il permet, d’extraire transformer et charger vers n’importe quelle base compatible JDBC.
• L’accès aux ressources CSV, Excel, Acess et XML peu se faire à travers le pont JDBC-ODBC
Architecture
ETL Octopus
• Exécuter des taches imbriquées selon des valeurs calculées en runtime.
• Les taches Octopus peuvent être exécutée par scripts Ant (donc programmés dans des scripts de build)
OLAP sur Mandrian
• L’analyse multidimensionnelle est souvent très efficace pour découvrir les tendances.
• Le Sytème doit répondre suffisamment rapidement à des requêtes en général en lecture seule
OLAP sur Mandrian
• Les bases de données classiques peuvent supporter l’OLAP
• Un DataSet est un ensemble de données à analyser.
OLAP sur Mandrian
• Au niveau Base de données les données sont généralement représentée sous la notation étoile :
OLAP sur Mandrian
• Mandrian est outil d’analyse de données membre de l’offre Pentaho.
• Mandrian utilise le langage MDX pour le requêtage des Datasets
OLAP sur Mandrian
SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} ON COLUMNS,{[Product].members} ON ROWSFROM [Sales]WHERE [Time].[1997].[Q2]
• 4 couches :– Présentation : données en tables intéractives,
camemberts, histogrammes, XML…– Couche dimensionnelle parse et valide les requêtes
MDX– Couche étoile : maintien un cache de mesures
agrégées.– Couche Base de données : Mandrian utilise la
puissance d’une base de données bien configurée au lieu de redéfinir un espace de stockage multidimensionnel
Architecture de Mandrian
• L’API Mandrian reprend le model JDBC• Connection connection =
DriverManager.getConnection( "Provider=mondrian;" + "Jdbc=jdbc:odbc:MondrianFoodMart;" + "Catalog=/WEB-INF/FoodMart.xml;", null, false);Query query = connection.parseQuery( "SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} on columns," + " {[Product].children} on rows " + "FROM [Sales] " + "WHERE ([Time].[1997].[Q1], [Store].[CA].[San Francisco])");Result result = connection.execute(query);result.print(new PrintWriter(System.out));
• Mandrian propose également une API XML pour être invoqué à partir de programmes non java
L’API Mandrian
Le schémas
Utilisation du moteur de Mandrian à partir de JPivot
• JPivot offre une librairie de tags afin de naviguer dans un schéma OLAP
• JPivot offre une interface JSP pour le moteur de Mandrian (entre autres).
Utilisation du moteur de Mandrian à partir de JPivot
Editeur de requêtes MDX
Utilisation du moteur de Mandrian à partir de JPivot
• Résultat en histogramme
Utilisation du moteur de Mandrian à partir de JPivot
• Tableau de mesures avec axe hiérarchique
Conclusion
Questions ??