Vous êtes sur la page 1sur 103

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
oboughaba@caciopee.com
boughaba@gmail.com
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

N ous avons adopté dès fin 2000,les m éthodologies etles technologies


d’aujourd’hui…

S.O.A

®
CHU IBN ROCHD CASABLANCA

CACIOPEE LA SOCIETE

… etm aî trisé les plateform es etoutils les supportant


CHU IBN ROCHD CASABLANCA

CACIOPEE LA SOCIETE

Nosm étiers:

Conseil

Formation

Développement
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 swap


shared_buffers : mémoire occupée par
postgres
max_fsm_pages : Espace d’élément
supprimés
work_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
Avec diagramme

• 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
A partir de la base de données
A partir de la base de données
Sous Rapports
• 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
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
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

SELECT {[Measures].[Unit Sales],


[Measures].[Store Sales]} ON COLUMNS,
{[Product].members} ON ROWS
FROM [Sales]
WHERE [Time].[1997].[Q2]
Architecture de Mandrian
• 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
L’API Mandrian
• L’API Mandrian reprend le model JDBC
• Connection connection =
DriverManager.getConnection( "Provider=mondrian;" +
    "Jdbc=jdbc:odbc:MondrianFoodMart;" +
    "Catalog=/W EB-INF/FoodMart.xml;", null, false);
Query query = connection.parseQuery(
    "SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]}
on columns," + " {[Product].children} on rows " +
    "FROM [Sales] " +
    "W HERE ([Time].[1997].[Q1], [Store].[CA].[San Francisco])");
Result result = connection.execute(query);
result.print(new PrintW riter(System.out));
• Mandrian propose également une API XML pour
être invoqué à partir de programmes non java
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 ??

Vous aimerez peut-être aussi