Vous êtes sur la page 1sur 70

Informatique de gestion laboratoire bases de donnes

Projet Ecureuil DataWarehouse CNIP

ETL avec Talend


Travail de diplme 2007

Yannick Perret
Responsable de projet: Sylvie Bouchard Membre du groupe de projet: Julien Helbling

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

1/70

Informatique de gestion laboratoire bases de donnes

1. Tables des matires


1. 2. Tables des matires ............................................................................................ 2 Introduction.......................................................................................................... 5 2.1. Cahier des charges ...................................................................................... 7 2.1.1. Mandat de projet ................................................................................... 7 2.1.2. Organisation de projet........................................................................... 7 2.1.3. Origine du mandat................................................................................. 7 2.1.4. Objectifs ................................................................................................ 8 2.1.5. Tches .................................................................................................. 8 2.1.6. Langages / Technologies / Outils .......................................................... 8 3. Partie thorique ................................................................................................... 9 3.1. Informatique dcisionnelle............................................................................ 9 3.1.1. Datawarehouse ................................................................................... 10 3.1.2. Cube OLAP (OnLine Analytical Processing) ....................................... 11 3.1.3. Staging Area ....................................................................................... 11 3.2. Architecture du projet ................................................................................. 12 3.2.1. Situation actuelle................................................................................. 12 3.2.1.1. Extraction ..................................................................................... 12 3.2.1.2. Transformation............................................................................. 13 3.2.1.3. Transfert....................................................................................... 13 3.2.1.4. Cration des cubes ...................................................................... 13 3.2.2. Objectif ................................................................................................ 14 3.2.2.1. MS Access ................................................................................... 14 3.2.2.2. Talend .......................................................................................... 14 3.2.2.3. Serveur PostgreSQL .................................................................... 15 3.2.2.4. Mondrian ...................................................................................... 15 3.2.2.5. Synthse ...................................................................................... 15 3.3. Microsoft SQL Server 2005 ........................................................................ 15 3.4. Talend Open Studio ................................................................................... 16 3.4.1. Architecture ......................................................................................... 16 3.4.1.1. Repository.................................................................................... 17 3.4.1.1.1. Business Models...................................................................... 17 3.4.1.1.2. Job Designs ............................................................................. 17 3.4.1.1.3. Code ........................................................................................ 17 3.4.1.1.4. Metadata.................................................................................. 17 3.4.1.1.5. Documentation......................................................................... 18 3.4.1.1.6. Recycle bin .............................................................................. 18 3.4.1.2. Workspace ................................................................................... 19 3.4.1.3. Palette.......................................................................................... 20 3.4.1.3.1. Principaux outils utiliss........................................................... 20 3.4.1.4. Vues............................................................................................. 22 3.4.1.4.1. Properties ................................................................................ 22 3.4.1.4.2. Run Job ................................................................................... 22 3.4.1.4.3. Modules ................................................................................... 23 3.4.1.4.4. Scheduler................................................................................. 23 3.5. Autres logiciels ETL open source ............................................................... 23
Rapport travail de diplme 2007 2/70

Yannick Perret / 27.09.2007

Informatique de gestion laboratoire bases de donnes

4.

Partie pratique ................................................................................................... 24 4.1. Travail en commun..................................................................................... 24 4.1.1. Dploiement du projet Ecureuil : ......................................................... 24 4.2. Cration des tables dans PostgreSQL ....................................................... 26 4.2.1. Principales diffrences ........................................................................ 27 4.2.1.1. Exemple: cration de la table HISTO_Temps dans SQL Server 2005 28 4.2.1.2. Exemple: cration de la table HISTO_Temps dans PostgreSQL. 28 4.3. Cration des procdures stockes ............................................................. 29 4.4. Cration de la vue esnig_dureeproductionfirstpart ..................................... 29 4.5. Connexions aux bases de donnes ........................................................... 30 4.5.1. Connexion la base de donnes de production ................................. 31 4.5.2. Connexion la base de donnes Staging Area .................................. 32 4.5.3. Connexion la base de donnes datawarehouse .............................. 32 4.6. Schmas .................................................................................................... 33 4.7. Cration des Jobs Designs ........................................................................ 35 4.7.1. Stratgie.............................................................................................. 35 4.7.2. Jobs Designs....................................................................................... 35 4.7.2.1. Esnig_ExecuteAll ......................................................................... 35 4.7.2.1.1. Dans SQL Server 2005............................................................ 35 4.7.2.1.2. Dans Talend ............................................................................ 36 4.7.2.2. Esnig_UpdateArchivageBdProd................................................... 37 4.7.2.2.1. Dans SQL Server 2005............................................................ 37 4.7.2.2.2. Dans Talend ............................................................................ 38 4.7.2.2.2.1. Structure des Jobs Designs............................................... 39 4.7.2.3. Esnig_LoadHistos ........................................................................ 40 4.7.2.3.1. Dans SQL Server 2005............................................................ 40 4.7.2.3.2. Dans Talend ............................................................................ 41 4.7.2.3.2.1. Structure des Jobs Designs............................................... 42 4.7.2.4. Esnig_LoadKeep.......................................................................... 43 4.7.2.4.1. Dans SQL Server 2005............................................................ 44 4.7.2.4.2. Dans Talend ............................................................................ 45 4.7.2.4.2.1. Structure des Jobs Designs............................................... 46 4.7.2.5. Esnig_ExecuteLoadDims ............................................................. 47 4.7.2.5.1. Dans SQL Server 2005............................................................ 47 4.7.2.5.2. Dans Talend ............................................................................ 48 4.7.2.5.2.1. Structure des Jobs Designs............................................... 48 4.7.2.6. Esnig_ExecuteLoadFacts ............................................................ 51 4.7.2.6.1. Dans SQL Server 2005............................................................ 51 4.7.2.6.2. Dans Talend ............................................................................ 51 4.7.2.6.2.1. Structure des Jobs Designs............................................... 52 4.7.2.7. Esnig_LoadDWFromSA ............................................................... 54 4.7.2.7.1. Dans SQL Server 2005............................................................ 54 4.7.2.7.2. Dans Talend ............................................................................ 55 4.7.2.7.2.1. Structure des Jobs Designs............................................... 55 4.7.3. Planification de l'excution des Jobs Designs..................................... 57 4.8. Mise en commun des deux travaux de diplme ......................................... 58

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

3/70

Informatique de gestion laboratoire bases de donnes

5. 6.

Conclusion......................................................................................................... 59 Guides d'installation .......................................................................................... 60 6.1. Installation serveur PostgreSQL................................................................. 60 6.1.1. Fichiers d'installation ........................................................................... 60 6.1.2. Installation ........................................................................................... 60 6.2. Installation Talend Open Studio ................................................................. 61 6.2.1. Prrequis............................................................................................. 61 6.2.1.1. Java ............................................................................................. 61 6.2.1.2. Perl............................................................................................... 63 6.2.2. Installation ........................................................................................... 64 6.3. Installation CRONw .................................................................................... 69 6.4. Bibliographie............................................................................................... 70

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

4/70

Informatique de gestion laboratoire bases de donnes

2. Introduction
Le CNIP (Centre Neuchtelois d'Intgration Professionnelle) est un tablissement cantonal de formation professionnelle et est spcialis dans la formation et l'aide la rinsertion professionnelle d'adultes (ouvriers qualifis ou non). Il est situ Couvet dans l'ancien site Dubied et dispose de 3500 m2 de surface d'atelier de formation et de 900 m2 de salle de cours, ceci pour une capacit de 120 places. Il prodigue une formation modulaire individualise la carte en partenariat avec les secteurs de l'industrie et de l'artisanat et offre principalement des adultes, par le biais de cours du jour ou du soir, lopportunit dintgrer et de rinvestir un univers professionnel en constante volution. Le laboratoire de base de donnes de l'ESNIG (cole Suprieure Neuchteloise d'Informatique de Gestion) a dvelopp une application Access afin que le CNIP puisse grer la formation des ses apprenants. Le laboratoire a galement mis en place un datawarehouse, sous le nom de projet Ecureuil, qui permet au CNIP de construire des cubes OLAP donnant la possibilit d'exporter les rsultats des tats Access vers des feuilles Excel ou de crer rapidement un graphique. Ce datawarehouse a t mis en place sous SQL Server 2000 lors du travail de diplme de Julien Helbling. Il a t ensuite migr sous SQL Server 2005. Mais la documentation n'a pas t mise jour. Le droulement de ce travail de diplme s'est fait en deux phases. Durant les trois premires semaines, j'ai travaill en collaboration avec Fabien Airiau. Il nous a t demand d'tudier et de comprendre un projet de datawarehouse, de dployer celui du CNIP sous SQL Server 2005 et de reprendre la documentation concernant SQL Server 2000 pour la mettre jour. Nous avons galement produit un document dtaillant et dcrivant l'enchanement des lots. La deuxime partie du travail s'est faite seul. Le laboratoire de base de donnes de l'ESNIG souhaitant tudier la faisabilit d'un projet de datawarehouse de l'envergure du CNIP sur des outils open source, il m'a t confi de mettre en place toutes les procdures d'extraction, de transformation et de chargement des donnes l'aide de l'outil Talend Open Studio pour le datawarehouse du CNIP et de stocker celui-ci dans une base de donnes PostgreSQL. L'objectif tant de fournir un datawarehouse contenant des donnes "propres" Fabien Airiau dont le travail consiste mettre en place les cubes d'analyse partir de ces donnes, toujours l'aide d'outils open source. Dans la partie thorique, j'ai tent de passer en revue les notions essentielles concernant l'informatique dcisionnelle. J'ai galement prsent la structure actuelle du projet ainsi que celle qui est attendue en fin de projet. Enfin, j'ai prsent brivement l'outil Talend Open Studio et ses principaux outils.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

5/70

Informatique de gestion laboratoire bases de donnes

La partie pratique commence par la description de la partie commune du travail. Je me suis efforc ensuite de faire le lien entre le travail ETL mis en place par Julien Helbling sous SQL Server et celui que j'ai effectu sous Talend Open Studio afin de pouvoir comparer au mieux le travail des deux logiciels. Dans la partie "Guides d'installation" se trouvent les marches suivre afin d'installer tous les composants ncessaires la bonne marche de ce travail. Les codes sources utiliss sont quant eux dans disponibles en annexe.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

6/70

Informatique de gestion laboratoire bases de donnes

2.1. Cahier des charges


2.1.1. Mandat de projet

Etude comparative de quelques outils open source d'extraction/transformation/chargement de donnes vers un datawarehouse. Mise en uvre l'aide de l'outil ETL Talend.

2.1.2.

Organisation de projet
Mandant Responsable de projet S. Bouchard Fin du projet 28 septembre 2007 Membres du groupe de projet J. Helbling

laboratoire bases de donnes Dbut du projet 18 juin 2007

2.1.3.

Origine du mandat

Le laboratoire bases de donnes de l'ESNIG a dvelopp un datawarehouse pour le CNIP Les dveloppements ont t raliss avec SQLServer 2000 puis migrs vers SQLServer 2005 Le laboratoire souhaite analyser la faisabilit d'un projet de cette envergure avec des outils du monde libre.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

7/70

Informatique de gestion laboratoire bases de donnes

2.1.4.

Objectifs

Dcouvrir un projet de datawarehouse. Etudier la dmarche de conception / dveloppement d'un projet de datawarehouse travers le travail ralis par J. Helbling. Adapter une partie de la documentation du rapport de J. Helbling SQLServer 2000 pour SQLServer 2005. Dployer le datawarehouse du projet CNIP sur SQLServer 2005 en crant simultanment la documentation dtaille. Mettre en place les mmes procdures d'extraction de donnes avec Talend / PostgreSQL. Mettre disposition du laboratoire une documentation dtaille sur la mise en uvre des outils ETL utiliss.

2.1.5.

Tches

Installer SQLServer 2005. Dployer et utiliser le datawarehouse dvelopp dans SQLServer2005. Analyser de faon dtaille les procdures d'extraction de donnes. Effectuer une tude comparative de quelques outils ETL open source fonctionnalits/licences. Installer un serveur PostgreSQL dans un environnement Windows. Prparer la script de cration des tables du datawarehouse pour PostgreSQL. Dvelopper les procdures d'extraction avec Talend.

2.1.6.

Langages / Technologies / Outils

Modles dimensionnels. Talend. PostgreSQL. SQLServer 2005. MS-Access 2000 (donnes de production).

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

8/70

Informatique de gestion laboratoire bases de donnes

3. Partie thorique
3.1. Informatique dcisionnelle
L'informatique dcisionnelle dsigne les moyens, les outils et les mthodes qui permettent de collecter, consolider, modliser et restituer les donnes d'une entreprise afin d'exploiter celles-ci dans le but d'aider la prise de dcision des dcideurs. Cela doit permettre d'aider mieux comprendre la situation actuelle et anticiper les actions futures pour un meilleur pilotage de l'entreprise. Les donnes qui vont tre exploites sont stockes dans un entrept de donnes, appel aussi datawarehouse. Auparavant un outil ETL (Extract Transform Load) va extraire, prparer et charger les donnes provenant de diverses sources. L'informatique dcisionnelle s'attache mesurer un certain nombre d'indicateurs ou de mesures (que l'on appelle aussi les faits ou les mtriques) restitus selon les axes d'analyse (les dimensions). Ce processus est ralis l'aide des cubes OLAP (OnLine Analytical Processing).

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

9/70

Informatique de gestion laboratoire bases de donnes

3.1.1.

Datawarehouse

Un datawarehouse est une base de donnes utilise dans l'informatique dcisionnelle et constitue afin danalyser de gros volumes de donnes trs dtaills, durables, en principe dats. Il centralise des informations extraites de diffrentes applications et bases de donnes rattaches l'environnement de production, l'activit commerciale, etc., pour faciliter la prise de dcisions. Il est construit selon un modle dimensionnel dnormalis. Celui du CNIP a t cre selon un modle en toile. Un modle en toile est constitu d'une table de fait contenant les donnes analyser ainsi que les cls trangres vers les tables de dimensions qui se trouvent autour d'elle.

Exemple de modle en toile (appartenant au projet)

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

10/70

Informatique de gestion laboratoire bases de donnes

3.1.2.

Cube OLAP (OnLine Analytical Processing)

Un modle dimensionnel permet l'analyse des mesures de la table de faits partir de plusieurs axes. La cration d'un cube OLAP est requise pour effectuer ces analyses. Le but des cubes tant de fournir des rponses rapides des requtes interrogeant une grande quantit de donnes et de permettre une interaction en temps rel avec ces donnes.

3.1.3.

Staging Area

La Staging Area est une base de donnes dans laquelle tous les traitements sur les donnes sont effectus avant leur transfert vers le datawarehouse qui ne contiendra que les donnes du modle dimensionnel. Pour simplifier, on peut considrer que les donnes arrivent dans la Staging Area dans le mme tat que dans leur base de provenance et quelles ressortent prtes tre charges dans le datawarehouse. Elle est au cur du travail ETL, car lextraction des donnes se fait entre la ou les base(s) de donnes de production vers la Staging Area, la transformation est effectue entre des tables stockes dans la base et le chargement nest quune copie des tables du modle dimensionnel qui est galement stock dans la Staging Area.

Parcours des donnes au sein d'un projet de Datawarehouse

Dans le projet Ecureuil, la Staging Area fonctionne de la faon suivante: Les tables HISTO, qui ont la mme structure que les tables correspondantes dans la base de production, contiennent les mmes tuples plus les donnes archives. Les tables KEEP contiennent les cls primaires des tuples de la base de production afin de grer les suppressions des tuples dana les tables HISTO Les tables de faits (FACT) et de dimensions (DIM) sont les mmes que dans le datawarehouse. Elles sont alimentes par les tables HISTO. Une fois prtes, les tables du datawarehouse peuvent tre charges partir de cellesci.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

11/70

Informatique de gestion laboratoire bases de donnes

3.2. Architecture du projet


3.2.1. Situation actuelle

Actuellement, l'architecture du projet Ecureuil du CNIP est la suivante: les donnes de la base de production sont stockes dans une base de donnes MS Access. Ensuite tout le travail de cration du datawarehouse et des cubes est effectu au sein de SQL Server 2005 laide des outils de Business Intelligence. Il se divise en quatre phases:

Schma de l'architecture actuelle du projet du CNIP

3.2.1.1.

Extraction

Les donnes utiles pour l'analyse multidimensionnelle sont d'abord charges au sein de la base de donnes Staging Area depuis la base de production sans qu'aucun traitement ne soit effectu sur celles-ci.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

12/70

Informatique de gestion laboratoire bases de donnes

3.2.1.2.

Transformation

Une fois les donnes charges, on procde l'alimentation dans la Staging Area de toutes les tables de faits et de dimensions constituant le modle en toile. Diverses transformations sont effectues sur les donnes.

3.2.1.3.

Transfert

Lorsque celles-ci sont prtes, on peut procder au transfert des donnes de ces tables vers la base de donnes datawarehouse.

3.2.1.4.

Cration des cubes

La cration des cubes peut s'effectuer lorsque les donnes des tables du modle en toile sont prtes au sein du datawarehouse. Les cubes sont crs l'aide du serveur d'analyse ("Analysis Services") de SQL Server 2005 partir des donnes contenues dans le datawarehouse.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

13/70

Informatique de gestion laboratoire bases de donnes

3.2.2.

Objectif

Le laboratoire de base de donnes de l'ESNIG souhaiterait effectuer le mme travail qu'actuellement l'aide d'outils open source. La structure du projet serait quelque peu modifie et l'ensemble du travail serait rparti sur plusieurs supports:

Schma de l'architecture souhaite

3.2.2.1.

MS Access

La base de donnes de production n'est pas touche et reste stocke dans une base Access

3.2.2.2.

Talend

Les trois premires phases de travail de l'architecture actuelle du projet vont tre excutes l'aide de l'outil ETL Talend (prsent plus en dtail par la suite), savoir l'extraction des donnes de la base de production vers la Staging Area, la transformation des donnes pour alimenter les tables du modle en toile et le transfert des donnes de ces tables vers le datawarehouse.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

14/70

Informatique de gestion laboratoire bases de donnes

3.2.2.3.

Serveur PostgreSQL

Les bases de donnes Staging Area et datawarehouse sont stockes au sein d'un serveur PostgreSQL, qui est galement un outil open source.

3.2.2.4.

Mondrian

La cration des cubes est effectue l'aide de Mondrian, qui est un serveur OLAP, partir des donnes du datawarehouse stocks au sein du serveur PostgreSQL.

3.2.2.5.

Synthse

Pour arriver cet objectif, le travail a t rparti en deux. Ma partie consiste installer l'outil Talend et le serveur PostgreSQL, ainsi que de mettre en place les procdures d'extraction de manire fournir des donnes cohrentes et jour dans le datawarehouse. La deuxime partie du travail comprend l'installation du serveur OLAP Mondrian et la cration des cubes partir des donnes du datawarehouse. Cette deuxime partie est effectue par Fabien Airiau.

3.3. Microsoft SQL Server 2005


Microsoft SQL Server 2005 est un SGBDR (Systme de Gestion de Bases de Donnes Relationnelles) dvelopp par Microsoft. Il permet entre autres : Le dploiement de lots SSIS (SQL Server Integration Services) La gestion d'un serveur d'analyse (OLAP)

(Pour plus d'informations concernant notamment l'installation de Microsoft SQL Server 2005, consultez le document TD07_rapport_partieTheorique_UpdateHelbling fourni en annexe).

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

15/70

Informatique de gestion laboratoire bases de donnes

3.4. Talend Open Studio


Talend Open Studio est un outil dintgration de donnes utilis pour l'ETL et lintgration de donnes oprationnelle dvelopp par Talend. Il est distribu sous licence GPL (General Public License). Talend Open Studio propose une interface permettant de concevoir graphiquement les connexions aux sources et les traitements sur les donnes. L'interface graphique utilise la plateforme Eclipse. Le travail sur les donnes est ralis par des scripts gnrs. Depuis l'origine, Talend Open Studio gnre du Perl. La version 2 a introduit la gnration de code Java et SQL.

3.4.1.

Architecture

Talend Open Studio s'ouvre sur une fentre zones multiples. Diffrentes vues composent cette fentre dont les principales fonctionnalits sont dcrites ci-aprs.

Fentre zones multiples de Talend Open Studio

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

16/70

Informatique de gestion laboratoire bases de donnes

3.4.1.1.

Repository

Le repository est un rfrentiel qui regroupe sous forme d'arborescence tous les lments techniques disponibles pour la conception de Business Models ou de Job Designs. Il permet galement l'accs ceux-ci ainsi qu' tous les diffrents lments utiliss dans les projets.

Repository

3.4.1.1.1. Business Models


Un Business Model est outil graphique permettant de modliser un besoin mtier de gestion de flux de donnes.

3.4.1.1.2. Job Designs


Un Job Design reprsente la couche d'excution d'un Business Model. Il permet de paramtrer les relations et les connexions entre les diffrents composants qui vont effectuer des oprations sur le flux de donnes. On peut considrer qu'un Job Design est plus ou moins quivalent un lot dans SQL Server 2005.

3.4.1.1.3. Code
Le dossier Code regroupe les routines. Une routine est un morceau de code comprenant diverses fonctions qui peuvent tre utilises dans les Job Designs. Le dossier System contient les routines Talend prdfinies. Avec les routines, il est ainsi possible de crer des fonctions personnalises pouvant effectuer diverses oprations sur les donnes.

3.4.1.1.4. Metadata
Le dossier Metadata permet dtablir une connexion source de donnes, soit partir dun fichier, soit partir dune base de donnes.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

17/70

Informatique de gestion laboratoire bases de donnes

3.4.1.1.5. Documentation
Le rpertoire Documentation regroupe tout type de documents de tout format, tels que des spcifications ou la description dun format technique particulier dun fichier.

3.4.1.1.6. Recycle bin


Le Recycle bin est la "corbeille" de Talend Open Studio. Tous les objets du Repository qui sont supprims sont dplacs dans ce dossier. Tous les objets du Recycle bin peuvent tre restaurs mais ils sont dfinitivement effacs une fois que celui-ci est vid.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

18/70

Informatique de gestion laboratoire bases de donnes

3.4.1.2.

Workspace

Le Workspace ou espace de modlisation est l'diteur graphique qui permet de concevoir des Business Models et des Job Designs.

Workspace

Diffrents Business Models ou Job Designs peuvent tre ouverts en mme temps dans l'diteur. Ceux-ci sont organiss sous forme d'onglets. Les composants qui vont permettre de construire les Business Models et les Job Designs se trouvent dans la Palette.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

19/70

Informatique de gestion laboratoire bases de donnes

3.4.1.3.

Palette

L'onglet Palette contient tous les composants que l'on peut utiliser lors de la construction d'un Business Model ou d'un Job Design. Ces composants sont classs dans diffrentes catgories.

Palette

3.4.1.3.1. Principaux outils utiliss

Permet dextraire des tuples dune base de donnes Access partir dune reqte SQL.

Insre, met jour ou supprime les tuples reus dans une base de donns Access.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

20/70

Informatique de gestion laboratoire bases de donnes

Excute une requte SQL dans une base de donnes Access.

Permet dextraire des tuples dune base de donnes PostgreSQL partir dune reqte SQL.

Insre, met jour ou supprime les tuples reus dans une base de donns PostgreSQL.

PostgreSQL.

Excute une requte SQL dans une base de donnes

Permet deffectuer diverses transformations sur les donnes ou de poser une ou des conditions pour le transfert des donnes.

Permet de dfinir et d'excuter une partie de code java.

Permet d'excuter une commande dans la console

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

21/70

Informatique de gestion laboratoire bases de donnes

3.4.1.4.

Vues

Diffrentes vues sont regroupes dans la partie infrieure de la fentre de Talend Open Studio. Comme toutes les vues ne me paraissent pas indispensables, voici uniquement une description des principales.

Vues

3.4.1.4.1. Properties
Cet onglet affiche les proprits de l'lment slectionn dans l'diteur graphique. Les proprits peuvent varier selon le type de l'lment.

3.4.1.4.2. Run Job


Il permet d'excuter le Job Design courant. Il y a deux modes d'excution: le mode normal et le mode debug qui permet de suivre l'excution pas pas. Diffrentes options d'affichage sont disposition comme la dure d'excution ou les statistiques.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

22/70

Informatique de gestion laboratoire bases de donnes

3.4.1.4.3. Modules
L'onglet Modules affiche les modules Perl ou Java (suivant l'encodage du projet) qui sont requis pour utiliser les composants correspondants. S'il y a un dans la colonne status, cela signifie que le module requis pour utiliser le composant est install. Si c'est un triangle jaune d'avertissement, cela indique que le module est recommand mais pas indispensable au fonctionnement du composant. Par contre, le cercle rouge croix blanche montre que l'installation du module est obligatoire pour utiliser le composant.

3.4.1.4.4. Scheduler
Scheduler est un outil de planification dexcution bas sur la commande crontab, couramment utilise sous Unix et systmes dexploitation similaires. Cette commande cron peut galement tre installe sur Windows.

3.5. Autres logiciels ETL open source


Voici quelques logiciels ETL open source. Il est difficile de se faire une opinion prcise de forces et faiblesses de chaque outil sans le tester. Quant aux fonctionnalits, elles ne diffrent que trs peu selon les outils. Enhydra Octopus: outil ETL bas sur du code java. Il peut se connecter n'importe quelle source de donnes JDBC. Les transformations sur les donnes sont dfinies dans un fichier XML. Clover.ETL et KETL: possdent plus ou moins les mmes caractristiques qu'Octopus. JasperETL: outil ETL dvelopp par Talend. Il vient complter la JBIS (JasperSoft Business Intelligence Suite) qui comprend galement JasperServer, JasperAnalysis, JasperReports et iReport. Cette suite offre donc des outils complets de Business Intelligence open source.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

23/70

Informatique de gestion laboratoire bases de donnes

4. Partie pratique
4.1. Travail en commun
4.1.1. Dploiement du projet Ecureuil :

Durant les trois premires semaines de travail, Fabien Airiau et moi-mme avons travaill ensemble afin d'analyser et de comprendre l'architecture et le fonctionnement d'un projet de datawarehouse, en l'occurrence celui du CNIP. Avant de se lancer dans le vif du sujet, nous avons pris le soin de nous documenter sur le projet Ecureuil grce au site de documentation du CNIP ainsi que sur l'informatique dcisionnelle. Aprs cela nous avons suivi le document crit par Julien Helbling dcrivant comment oprer un dploiement de lots SSIS (SQL Server Integration Services). Cela nous a permis de reproduire le systme actuellement en fonctionnement au sein du CNIP. Nous avons mis jour cette documentation sous la forme du document TD07_deploiement_SSIS.pdf, dcrivant la marche suivre pour dployer des lots SSIS sous SQL Server 2005. Ce document peut tre consult dans les annexes. Remarque : Chaque lot SSIS est associ un fichier de configuration. L'emplacement de ce fichier est indiqu dans le code de chaque lot. Comme nous avons dplac les fichiers de configuration dans un rpertoire qui leur est ddi, il faut modifier manuellement leur emplacement dans chaque lot. Pour faciliter cette tche, nous avons dvelopp un programme java qui met jour les chanes de connexion. Il suffit juste de saisir l'emplacement du rpertoire contenant les fichiers de configuration et le programme se charge de le remplacer dans tous les lots. Le code source de ce programme peut tre consult dans les annexes.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

24/70

Informatique de gestion laboratoire bases de donnes

Etapes du dploiement du projet Ecureuil. Une fois le dploiement effectu, nous avons produit un document dcrivant les diffrents lots utiliss dans le cadre du dploiement du projet Ecureuil ainsi que leur ordre d'enchainement. Nous avons galement modifi la partie thorique du rapport de travail de diplme de Julien Helbling afin qu'elle soit adapte pour SQL Server 2005. Ces documents font galement partie des annexes (TD07_description_lots et TD07_rapport_partieTheorique)

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

25/70

Informatique de gestion laboratoire bases de donnes

Base de donnes de production

Interrogation de l'entrept de donnes

ETL (Talend)

Serveur OLAP (Mondrian)

Base de donnes multidimensionnelle (entrept de donnes)

Cubes d'analyse OLAP

Yannick Perret

Fabien Airiau

Rpartition du projet Ecureuil pour les travaux de diplmes de Fabien Airiau et de moi-mme.

Aprs ces 3 semaines de travail en commun, chacun de nous s'est occup de reproduire une partie du projet Ecureuil l'aide d'outils open source. Je me suis charg de construire l'entrept de donnes grce aux outils ETL fournis par Talend alors que Fabien Airiau s'est occup d'interroger cet entrept de donnes via des cubes OLAP produits avec Mondrian.

4.2. Cration des tables dans PostgreSQL


Le datawarehouse et la Staging Area vont tre contenus dans un serveur PostgreSQL. Avant de commencer le travail d'extraction des donnes, il faut donc crer les tables de ces deux bases de donnes. Pour cela, j'ai repris les scripts de cration des tables qui ont t raliss pour SQL Server dans le cadre du travail de diplme de Julien Helbling et je les ai adapts pour PostgreSQL.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

26/70

Informatique de gestion laboratoire bases de donnes

4.2.1.

Principales diffrences

Les crochets placs entre les noms de schmas, de tables, de champs et de type de champs ne doivent pas tre mis dans les scripts pour PostgreSQL car la syntaxe ne le permet pas. Ils ne sont d'ailleurs pas obligatoires dans SQL Server 2005. Le nom de la table est chaque fois prfix du nom du schma auquel appartient cette table. Jusqu' SQL Server 2000, les objets appartenaient aux utilisateurs. Depuis la version 2005, chaque objet appartient un schma de la base de donnes. Dans PostgreSQL, chaque objet fait galement partie d'un schma. Dans les deux serveurs, il est possible de prfixer le nom de l'objet par le nom du schma sinon c'est le schma courant qui est utilis par dfaut. Le schma par dfaut dans PostgreSQL (public) sera utilis pour stocker les tables cres, ce qui vitera de prfixer le nom des objets. Les types de donnes ne sont pas tous dsigns de la mme faon dans SQL Server et PostgreSQL. Il faut donc veiller utiliser la bonne correspondance de type de donnes. Il y a trois types diffrents utiliss dans les scripts: numeric, varchar et datetime pour SQL Server. Les deux premiers sont identiques dans PostgreSQL. Par contre, le type datetime dans SQL Server (ex: 22.08.2007 11:00:00) n'est pas le mme dans PostgreSQL. Il correspond au type timestamp. Certains champs sont suivis de la clause COLLATE. Elle est applique la dfinition de ces champs pour dfinir le classement. Cet attribut n'existe pas dans PostgreSQL et comme il n'est pas indispensable, je le supprimerai et ne mettrai pas d'quivalent. La proprit IDENTITY dans la dfinition d'un champ va crer une colonne d'identit. Elle va permettre d'incrmenter le champ automatiquement. Ses deux arguments sont la premire valeur et l'incrmentation entre chaque ligne. Pour incrmenter automatiquement un champ dans PostgreSQL, il faut crer une squence et ensuite attribuer cette squence au champ. Dans les proprits de la squence, il faut prciser la valeur de dpart et l'incrmentation (1 tant la valeur par dfaut).

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

27/70

Informatique de gestion laboratoire bases de donnes

4.2.1.1. Exemple: cration de la table HISTO_Temps dans SQL Server 2005

4.2.1.2. Exemple: cration de la table HISTO_Temps dans PostgreSQL

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

28/70

Informatique de gestion laboratoire bases de donnes

4.3. Cration des procdures stockes


Le datawarehouse doit obtenir des donnes "propres" de la Staging Area. Pour obtenir ces donnes, divers traitements sont effectus. Seulement certains de ces traitements ne peuvent se faire l'aide de simples requtes SQL. C'est pourquoi des procdures stockes avaient t cres en langage Transact-SQL sous SQL Server car elles offrent de plus grandes possibilits de traitement. Conformment l'objectif du travail qui est d'effectuer les mmes oprations que sous SQL Server, j'ai repris toutes ces procdures stockes pour les entreposer dans PostgreSQL. Il faut donc adapter celles-ci au langage PL/pgSQL qui est le langage de procdures de PostgreSQL. Le code de ces procdures se trouve en annexe. Pour avoir des commentaires sur le code, se rfrer au travail de Julien Helbling. Esnig_AlimenteHistoTempsIncremental: permet d'ajouter les nouveaux jours dans la table HISTO_Temps au mme rythme que la table Calendriers de la base de production. Permet galement de mettre jour le champ EstJourTravail. Esnig_InsertValuesIntoHistoTemps: permet d'insrer les valeurs dans la table HISTO_Temps en recevant en paramtre une date. Esnig_UpdateDimApprenants: permet d'ajouter "Formation termine" et "Formation en cours". la distinction entre

Esnig_InsertValuesIntoFactOccupationsFirstPart: permet de remplir la table FACT_Occupations Esnig_InsertValuesIntoFactOccupationsSecondPart: permet de remplir la table FACT_Occupations

4.4. Cration de la vue esnig_dureeproductionfirstpart


La vue esnig_dureeproductionfirstpart est utilise lors de l'excution de la procdure Esnig_InsertValuesIntoFactOccupationsSecondPart. Le code de la vue se trouve en annexe.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

29/70

Informatique de gestion laboratoire bases de donnes

4.5. Connexions aux bases de donnes


Pour crer une connexion une base de donnes, il faut aller dans le Repository, dvelopper le dossier Metadata et faire un clic droit sur Db Connections. Il faut ensuite slectionner Create connection. Premire tape: il faut nommer la connexion. Il y a galement la possibilit de remplir divers champs facultatifs (description, auteur, ). Deuxime tape: il s'agit des paramtres de connexion. Il faut choisir le type de base de donnes laquelle on veut se connecter, ensuite les champs remplir diffrent selon le choix de la base. Troisime tape: aprs avoir rempli tous les champs demands, il est possible de contrler si la connexion est tablie l'aide du bouton Check.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

30/70

Informatique de gestion laboratoire bases de donnes

4.5.1. Connexion la base de donnes de production


La connexion la base de donnes de production est trs simple raliser. Aprs avoir choisi le type Access dans la liste DB Type, il suffit juste d'indiquer le chemin du fichier .mdb contenant les donnes de la base de production. La chane de connexion est tablie automatiquement.

Configuration de la connexion : base de donnes de production (Access)

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

31/70

Informatique de gestion laboratoire bases de donnes

4.5.2. Connexion la base de donnes Staging Area


La connexion la base de donnes Staging Area ncessite un peu plus d'informations. Aprs avoir indiqu le type de base de donnes en l'occurrence PostgreSQL il faut indiquer tout d'abord son nom d'utilisateur et son mot de passe du serveur de base de donnes, puis l'endroit o est stock le serveur et le port utilis. Le nom de la base de donnes est renseign l'aide du champ Sid et il faut galement prciser le schma dans lequel les tables qui nous intressent sont stockes. La chane de connexion est toujours tablie automatiquement.

Configuration de la connexion : base de donnes Staging Area (PostgreSQL)

4.5.3. Connexion la base de donnes datawarehouse


Mme dmarche que pour la base de donnes Staging Area, sauf pour le nom de la base de donnes videmment.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

32/70

Informatique de gestion laboratoire bases de donnes

4.6. Schmas
Les schmas sont utiliss lors de chaque opration effectue sur une base de donnes et doivent correspondre la structure des donnes qui sont traites. Par exemple, lorsqu'on va chercher des tuples dans une base l'aide d'une requte, la structure de la requte doit correspondre au schma utilis lors l'opration. Si on slectionne trois champs dans une requte, le schma doit galement contenir trois champs du mme type. Lorsque l'on a tabli une connexion avec une base de donnes, il est possible de gnrer les schmas correspondants aux tables peuplant cette base. Il faut pour cela faire un clic droit dans la connexion souhaite dans le dossier Metadata/Db Connections et slectionner Retrieve Schema. Cela permet d'viter de crer des schmas lors de chaque opration effectue dans les bases de donnes.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

33/70

Informatique de gestion laboratoire bases de donnes

Lors de l'utilisation de schmas gnrs automatiquement partir des bases de donnes, il faut bien contrler le type de donnes que Talend a appliqu aux champs (colonne Type) car ils ne correspondent pas toujours ceux des bases de donnes (colonne DB Type) et cela peut crer des erreurs lors de l'excution d'un travail. Il faut donc contrler et modifier le type de champ dans la colonne Type au cas o ceux-ci ne concordent pas.

Exemple de schma gnr automatiquement : les champs entours en rouge ne correspondent pas, ceux de la colonne Type doivent tre modifis

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

34/70

Informatique de gestion laboratoire bases de donnes

4.7. Cration des Jobs Designs


4.7.1. Stratgie

Cest donc travers les Jobs Designs que lon effectue le travail dextraction, de transformation et de chargement des donnes dans Talend. Lobjectif est de reproduire le mme travail que celui effectu par les packages SSIS dans SQL Server 2005. Pour cela jai essay de garder la mme structure au niveau de lenchanement des lots et de conserver les mmes noms.

4.7.2.
4.7.2.1.

Jobs Designs
Esnig_ExecuteAll

Esnig_ExecuteAll est le lot / Job qui se trouve en haut de la hirarchie. C'est lui qui va lancer les autres lots / Jobs principaux qui eux-mmes vont lancer d'autres lots / Jobs.

4.7.2.1.1. Dans SQL Server 2005

Esnig_ExecuteAll : sous SQL Server 2005

Ce lot neffectue aucun travail spcifique dans SQL Server. Sa seule fonction est dexcuter dautres lots.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

35/70

Informatique de gestion laboratoire bases de donnes

4.7.2.1.2. Dans Talend

Esnig_ExecuteAll : sous Talend Open Studio

Le Job Esnig_ExecuteAll de Talend a exactement la mme fonction et la mme structure que son collgue de SQL Server 2005 (sauf pour les deux derniers lots dans SQL Server qui concernent la construction des cubes). Son seul travail est dexcuter dautres Jobs Designs. Les deux dernires tches concernent le vidage du cache de Mondrian. Mondrian utilise le cache serveur afin de stocker les donnes agrges. Seulement Mondrian ne gre pas la mise jour du cache. Il a donc fallu mettre en place une procdure permettant de vider et de reconstituer le cache afin d'offrir aux utilisateurs la possibilit de traiter des donnes actuelles. Une fois que les donnes ont t charges dans le datawarehouse, les donnes agrges sont galement vides et recharges dans le cache. Pour plus d'informations sur ces deux tches, se rfrer au rapport de Fabien Airiau.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

36/70

Informatique de gestion laboratoire bases de donnes

4.7.2.2.

Esnig_UpdateArchivageBdProd

Le rle dEsnig_UpdateArchivageBdProd est darchiver les tuples extraits de la base de donnes de production vers le datawarehouse. Les tuples qui doivent tre archivs ont leur champ DateArchivage rempli avec la date du jour par un utilisateur autoris du CNIP. La nuit suivante, lorsquEsnig_UpdateArchivageBdProd est excut, il va reprer ces tuples grce au champ DateArchivage et les modifier. Le champ LuEtArchive est notamment not 1. Les tuples modifis sont ensuite mis jour dans la table HISTO correspondante de la Staging Area laide du package / Job Esnig_LoadHistos. Lutilisateur du CNIP peut ensuite supprimer dfinitivement tous les tuples de la base de production dont le champ LuEtArchive vaut 1.

4.7.2.2.1. Dans SQL Server 2005

Esnig_UpdateArchivageBdProd : sous SQL Server 2005

Le lot Esnig_UpdateArchivageBdProd va directement effectuer ce travail pour chaque table de la base de production.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

37/70

Informatique de gestion laboratoire bases de donnes

4.7.2.2.2. Dans Talend

Esnig_UpdateArchivageBdProd : sous Talend Open Studio

Le Job va effectuer le mme travail mais dune manire lgrement diffrente pour des raisons pratiques, car il nest pas possible de regrouper le travail pour une table dans une seule opration. Esnig_UpdateArchivageBdProd va lancer un Job pour chaque table de la base de production. Ces Jobs vont ensuite effectuer le travail pour la table correspondante.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

38/70

Informatique de gestion laboratoire bases de donnes

4.7.2.2.2.1. Structure des Jobs Designs

Structure des Jobs excuts par Esnig_UpdateArchivageBdProd : ex : Update_PersoPaquets

Dtail de Transformation : ex : Update_PersoPaquets

Tous les Jobs lancs par Esnig_UpdateArchivageBdProd effectuent le mme travail sur leur table respective et ont donc tous la mme structure. Access_Find va effectuer une requte dans la table de la base de production concerne par le Job en slectionnant les tuples dont le champ DateArchivage est gal la date d'hier. Il envoie ces tuples Transformation qui va transformer les donnes pour chaque tuple reu. Les champs suivant sont modifis : LuEtArchive : marqu avec la valeur 1 MOUSER : rempli avec la chane DataWarehouse MODATE : marqu avec la date dhier MOCOUNT : incrment de 1 Tous les tuples modifis sont ensuite envoys Access_Update qui va mettre jour ceux-ci dans la table correspondante de la base de production. Requte d'Access_Find:

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

39/70

Informatique de gestion laboratoire bases de donnes

4.7.2.3.

Esnig_LoadHistos

Le rle dEsnig_LoadHistos est de mettre jour les tables HISTO de la Staging Area. Pour cela il va parcourir les tuples de la base de production et reprer ceux qui ont t insrs ou modifis depuis son dernier passage. Les tuples insrs le sont galement et ceux modifis sont mis jour dans la table HISTO correspondante.

4.7.2.3.1. Dans SQL Server 2005

Esnig_LoadHistos : sous SQL Server 2005

Esnig_LoadHistos : dtail de lexcution

Pour chaque table HISTO de la Staging Area, le travail est effectu de la mme manire. Seule la table HISTO_Temps travaille diffremment. Celle-ci est mise jour travers lexcution de la procdure stocke Esnig_AlimenteHistoTempsIncremental.
Yannick Perret / 27.09.2007 Rapport travail de diplme 2007 40/70

Informatique de gestion laboratoire bases de donnes

4.7.2.3.2. Dans Talend

Esnig_LoadHistos : sous Talend Open Studio

Le Job Esnig_LoadHistos va effectuer le mme travail tout en tant structur dune manire lgrement diffrente. Il va lancer pour chaque table HISTO un job qui va effectuer le travail de mise jour. Sauf pour la table HISTO_Temps qui est galement mise jour travers la procdure stocke Esnig_AlimenteHistoTempsIncremental.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

41/70

Informatique de gestion laboratoire bases de donnes

4.7.2.3.2.1. Structure des Jobs Designs

Structure des Jobs excuts par Esnig_LoadHistos

Les jobs excuts par Esnig_LoadHistos ont la structure suivante : Access_SelectAJDATE va slectionner tous le tuples de la table de la base de production dont le champ AJDATE est gal la date d'hier, c'est---dire les tuples insrs la veille. Il envoie ensuite les ceux-ci Postgres_InsertNew qui va les insrer dans la table HISTO correspondante dans la Staging Area se trouvant sous PostgreSQL. Ensuite Access_SelectMODATE va slectionner les tuples de la base de production dont le champ MODATE est gal la date d'hier (les tuples modifis la veille) et les envoyer Postgres_UpdateModif qui va mettre jour les tuples correspondants dans la table HISTO de la Staging Area. Requte d'Access_SelectAJDATE

Requte d'Access_SelectMODATE

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

42/70

Informatique de gestion laboratoire bases de donnes

4.7.2.4.

Esnig_LoadKeep

Le rle dEsnig_ExecuteLoadKeep est de grer les suppressions de donnes dans les tables HISTO de la Staging Area. Pour cela, on sappuie sur le fait quune table de la base de production et la table HISTO correspondante dans la Staging Area ont la mme structure. Le mme tuple aura donc la mme cl primaire. On utilise donc une table KEEP, mise jour quotidiennement, qui va contenir les cls primaires des tuples se trouvant dans la base de production. Ainsi un tuple dune table HISTO dont la cl primaire ne se trouve pas dans la table KEEP correspondante doit tre supprim. Note : Les tables HISTO_PersoHoraires, HISTO_PersoModules, HISTO_Intervenants, HISTO_PersoModulesProductions et HISTO_Formations conservent des donnes archives. Il faut donc tester le champ DateArchivage sur ces tables pour viter de supprimer des donnes archives.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

43/70

Informatique de gestion laboratoire bases de donnes

4.7.2.4.1. Dans SQL Server 2005

Esnig_LoadKeep : sous SQL Server 2005

Le mme travail en trois tapes est effectu pour chaque table. On efface toutes les donnes de la table KEEP. On repeuple la table KEEP en allant chercher les cls primaires de la table de la base de production. On supprime les tuples de la table HISTO dont la cl primaire ne se trouve pas dans la table KEEP (et qui nont pas t archiv pour les tables conservant ce type de donnes)

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

44/70

Informatique de gestion laboratoire bases de donnes

4.7.2.4.2. Dans Talend

Esnig_LoadKeep : sous Talend Open Studio

Le Job Esnig_LoadKeep est divis en "sous-jobs" qui vont chacun effectuer le mme travail pour toutes les tables. La division en "sous-jobs" permet davoir un peu plus de clart dans la structure.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

45/70

Informatique de gestion laboratoire bases de donnes

4.7.2.4.2.1. Structure des Jobs Designs

Structure des Jobs excuts par Esnig_LoadKeep : Ex : LieuxDeFormations

Pour commencer Access_SelectPK_Histo va slctionner toutes les cls primaires des tuples de la table de la base de production et va envoyer celles-ci Postgres_InsertPK_InKeep qui va les insrer dans la table KEEP correspondante. La table KEEP est vide au dbut de la tche Postgres_InsertPK_InKeep. Ceci est ralis en cochant loption Clear data in table. Finalement, Postgres_DeleteHistoNoPK va excuter la requte qui demande de supprimer les tuples de la table HISTO dont la cl primaire ne se trouve pas dans la table KEEP. Requte d'Access_SelectPK_Histo

Requte de Postgres_DeleteHistoNoPK

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

46/70

Informatique de gestion laboratoire bases de donnes

4.7.2.5.

Esnig_ExecuteLoadDims

Esnig_ExecuteLoadDims s'occupe de remplir les tables de dimensions de la Staging Area partir des donnes des tables HISTO. Les donnes pour une table de dimensions proviennent souvent de plusieurs tables HISTO, elles sont donc rcupres par sous-requtes.

4.7.2.5.1. Dans SQL Server 2005

Esnig_ExecuteLoadDims: sous SQL Server 2005

Le package en lui-mme n'effectue aucun travail spcifique. Il s'occupe uniquement de lancer les lots pour chaque table de dimensions. Les lots d'Esnig_ExecuteLoadDims sont tous construits de la mme manire. Une premire tche commence par effacer les valeurs actuelles de la table puis la deuxime insre les nouvelles donnes qu'elle aura t cherche au moyen d'une requte. Le lot ExecuteDIM_Apprenants effectue une tche supplmentaire qui vrifie et met jour l'tat de la formation (termine en cours). Cette vrification se fait en excutant la procdure stocke Esnig_UpdateDimAppprenants.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

47/70

Informatique de gestion laboratoire bases de donnes

4.7.2.5.2. Dans Talend

Esnig_ExecuteLoadDims : sous Talend Open Studio

Esnig_ExecuteLoadDims est construit exactement de la mme manire que sous SQL Server 2005. Chaque table de dimensions sera traite par son propre Job. 4.7.2.5.2.1. Structure des Jobs Designs

Structure des Jobs excuts par Esnig_ExecuteLoadDims

Les Jobs excuts par Esnig_ExecuteLoadDims sont structurs de la faon suivante: Postgres_SelectHISTO va slctionner les tuples ncessaires la table de dimensions (provenant parfois de plusieurs tables HISTO). Il va ensuite envoyer ces tuples Postgres_InsertDIM qui va les insrer dans la table de dimensions correspondante. Celle-ci est vide au dbut de la tche Postgres_InsertDIM juste avant linsertion des donnes laide de loption Clear data in table.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

48/70

Informatique de gestion laboratoire bases de donnes

Requtes de Postgres_SelectHISTO

Esnig_LoadDimDemandeursDeFormations

Esnig_LoadDimDomainesFormations

Esnig_LoadDimLieux

Esnig_LoadDimModules

Esnig_LoadDimPeriodesEnseignements

Esnig_LoadDimTemps

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

49/70

Informatique de gestion laboratoire bases de donnes

Structure du Job Esnig_LoadDimApprenants

Le Job Esnig_LoadDimApprenants est lgrement diffrent et possde deux tches supplmentaires. La tche Transformation a t rajoute pour permettre la concatnation des champs Nom et Prenom l'intrieur de la table de dimensions. La deuxime tche additionnelle est Execute_Esnig_UpdateDimApprenants qui, comme dans SQL Server 2005, va vrifier et mettre jour au moyen de la procdure stocke Esnig_UpdateDimApprenants, l'tat de la formation d'un apprenant. Requte de Postgres_SelectHISTO

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

50/70

Informatique de gestion laboratoire bases de donnes

4.7.2.6.

Esnig_ExecuteLoadFacts

Le travail d'Esnig_ExecuteLoadFacts est de remplir les tables de faits partir des tables HISTO.

4.7.2.6.1. Dans SQL Server 2005

Esnig_ExecuteLoadFacts: sous SQL Server 2005

Le package lance un lot par table de faits. Ce sont eux qui vont s'occuper de remplir les tables. Premirement, les donnes actuelles des tables sont supprimes. Ensuite, les nouvelles donnes sont insres dans les tables. Par une requte pour la table FACT_Absenteisme et au moyen des procdures stockes InsertValuesIntoFactOccupationsFirstPart et InsertValuesIntoFactOccupationsSecondPart pour la table FACT_Occupations. Le champ EstAbsent est ensuite mis jour (de -1 1) dans la table FACT_Absenteisme pour permettre des calculs aiss de cumul de priodes d'absence. Dans la table FACT_Occupations, les tuples o le champ NbPersonnesPlanifiees est 0 sont supprims car cela signifie que l'atelier est ferm.

4.7.2.6.2. Dans Talend

Esnig_ExecuteLoadFacts : sous Talend Open Studio

Le Job Esnig_ExecuteLoadFacts a la mme structure que celui de SQL Server 2005.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

51/70

Informatique de gestion laboratoire bases de donnes

4.7.2.6.2.1. Structure des Jobs Designs

Structure du Job Esnig_LoadFactAbsenteismes Esnig_LoadFactAbsenteismes fonctionne de la manire suivante: Postgres_SelectInHisto va rechercher les tuples ( partir de plusieurs tables HISTO) ncessaires la table de faits et les envoyer Postgres_InsertInFactAbsenteismes qui va les insrer dans la table de faits qui est vide auparavant, loption Clear data in table tant active. Finalement, Posgres_UpdateEstAbsent met jour le champ EstAbsent de -1 1 au moyen d'une requte. Requte de Postgres_SelectInHisto

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

52/70

Informatique de gestion laboratoire bases de donnes

Requte de Postgres_UpdateEstAbsent

Structure du Job Esnig_LoadFactOccupations

Esnig_LoadFactOccupations est construit diffremment. La tche Postgres_DeleteFactOccupations commence par vider la table de faits. Ensuite Execute_InsertValuesIntoFactOccupationsFirstPart et Execute_InsertValuesIntoFactOccupationsSecondPart vont excuter les procdures stockes du mme nom qui vont de la slection et de l'insertion des donnes. Finalement, Postgres_DeleteNbPlanifZero va supprimer les tuples dont le champ NbPersonnesPlanifiees est 0 au moyen d'une requte. Requte de Postgres_DeleteFactOccupations

Requte de Postgres_DeleteNbPlanifZero

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

53/70

Informatique de gestion laboratoire bases de donnes

4.7.2.7.

Esnig_LoadDWFromSA

Le rle dEsnig_LoadDWFromSA est de charger les donnes du datawarehouse cest--dire des tables de faits et de dimensions partir de la Staging Area.

4.7.2.7.1. Dans SQL Server 2005

Esnig_LoadDWFromSA : sous SQL Server 2005

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

54/70

Informatique de gestion laboratoire bases de donnes

Le package est divis en deux phases. La premire concerne le chargement des tables de dimensions, la deuxime le chargement des tables de faits. Pour toutes les tables, le mme travail est effectu. Tout dabord, les donnes de la table dans le datawarehouse sont supprimes. Ensuite, la table est charge partir de celle construite dans la Staging Area.

4.7.2.7.2. Dans Talend

Esnig_LoadDWFromSA : sous Talend Open Studio

Le Job Esnig_LoadDWFromSA va effectuer le mme travail quasiment de la mme manire. Le Job va excuter deux "sous-jobs", un qui va soccuper des tables de dimensions et un autre qui va soccuper des tables de faits. 4.7.2.7.2.1. Structure des Jobs Designs

Structure des Jobs excuts par Esnig_LoadDWFromSA : chargement des tables de faits

Toutes les tables sont traites de la mme manire. PostgresSelect_NomTable_FromSA va slectionner toutes les donnes de la table concerne dans la Staging Area et les envoyer PostgresInsert_NomTable_InDW qui va insrer tous ces tuples dans la table du datawarehouse aprs avoir lavoir vide grce loption Clear data in table.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

55/70

Informatique de gestion laboratoire bases de donnes

Requte de PostgresSelect_FACT_NomTable_FromSA

Requtes de PostgresSelect_DIM_NomTable_FromSA DIM_Lieux

DIM_Modules

DIM_Apprenants

DIM_DemandeursDeFormations

DIM_Temps

DIM_DomainesFormations

DIM_PeriodesEnseignements

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

56/70

Informatique de gestion laboratoire bases de donnes

4.7.3. Planification de l'excution des Jobs Designs


La vue Scheduler permet dautomatiser lexcution dun Job. Pour lutiliser, il faut que CRONw soit install et que le service cron soit dmarr.

Open Scheduler : planification du Job Esnig_ExecuteAll

Pour crer une tche, il faut cliquer sur la croix verte dans la vue Scheduler. Une fentre souvre et permet de paramtrer la planification. Il faut ensuite choisir le job excuter, la frquence ainsi que lheure dexcution. Une fois tous les champs remplis, le Scheduler va gnrer automatiquement la commande correspondante qui sera fournie au service cron.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

57/70

Informatique de gestion laboratoire bases de donnes

4.8. Mise en commun des deux travaux de diplme


La dernire semaine, Fabien Airiau et moi-mmes nous sommes assurs du bon fonctionnement des deux projets mis bout bout. Il a principalement t question de la vrification de la structure de l'entrept de donnes et du format des donnes. Nous avons modifi ensuite toutes les chanes de connexion qui pointaient sur l'entrept de donnes que Fabien Airiau avait d construire par copie pour les faire pointer sur l'entrept de donnes construit et peupl par moi-mme grce aux outils ETL de Talend, afin de s'assurer du bon fonctionnement de l'ensemble.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

58/70

Informatique de gestion laboratoire bases de donnes

5. Conclusion
Ce projet m'a permis de dcouvrir l'analyse multidimensionnelle, un sujet qui n'avait pas t vu lors des cours. J'ai pu m'apercevoir quel point la mise en place d'un projet de datawarehouse tait complexe et combien le travail d'analyse est grand. En ce qui concerne Talend Open Studio, l'outil permet de reproduire toutes les procdures mises en place dans SQL Server 2005. Le processus est identique et permet de construire un datawarehouse contenant des donnes "propres". Seulement, je me suis retrouv confront d'normes problmes de performances ds qu'il faut effectuer des insertions, suppressions ou mises jour d'un grand nombre de tuples dans une table. Cela concerne principalement toutes les tches effectues sur les tables lies PersoHoraires et le chargement des tables de faits. Pourtant, j'ai essay d'optimiser au mieux les requtes le fait, par exemple, de vider et de repeupler une table de plus de 600'000 tuples prend un temps fou. Le fait que tous les outils, notamment la base de donnes PostgreSQL, soient stocks sur mon poste a peut-tre jou un rle et il serait bon d'effectuer l'avenir de nouveau tests de performances. Si l'on peut rsoudre ces problmes de performances, on peut considrer que Talend est une alternative tout fait envisageable SQL Server 2005 au niveau du travail ETL.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

59/70

Informatique de gestion laboratoire bases de donnes

6. Guides d'installation
6.1. Installation serveur PostgreSQL
6.1.1.

Fichiers d'installation

Les fichiers relatifs l'installation du serveur se trouvent l'adresse suivante : o http://www.postgresql.org/ftp/binary/v8.2.4/win32/ Tlcharger le fichier postgresql-8.2.3-1.zip Choisir un miroir pour le tlchargement

6.1.2.

Installation

Extraire tous les fichiers dans un rpertoire temporaire Excuter le fichier postgresql-8.2.msi Dans les options d'installation, installer tout sur le disque dur local sauf l'extension spatiale PostGIS, le PL/Java et les fichiers de dveloppement Installer Postgres dans un autre rpertoire que celui propos par dfaut (en raison des espaces prsents dans le chemin) o par exemple dans C:\postgres824 Crer un compte de service qui permettra de dmarrer le service Postgres o Dfinir un compte et un mot de passe Crer le compte superutilisateur qui permettra d'tre administrateur du serveur Postgres o Dfinir un compte et un mot de passe et modifier le codage du serveur en UTF-8 Activer les langages de procdures. Le PL/pgsql est suffisant. Dans l'activation des modules de contribution, laisser les options par dfaut. Lancer l'installation

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

60/70

Informatique de gestion laboratoire bases de donnes

6.2. Installation Talend Open Studio


6.2.1.
6.2.1.1.

Prrequis
Java

Pour que Talend Open Studio puisse fonctionner correctement, il faut qu'il y ait au minimum la version 1.5 de JVM (Java Virtual Machine) installe sur la machine. Pour contrler la version actuelle de Java installe, lancer l'invite de commande et taper la commande java version.

Rsultat de la commande java -version

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

61/70

Informatique de gestion laboratoire bases de donnes

Si la version installe est antrieure 1.5, aller dans Dmarrer>Paramtres>Panneau de Configuration>Java>Mise jour et cliquer dans Mettre jour maintenant.

Mise jour de Java

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

62/70

Informatique de gestion laboratoire bases de donnes

6.2.1.2.

Perl

Autre prrequis ncessaire la bonne marche de Talend Open Studio: Perl. Celui-ci n'est pas install par dfaut sur les machines Windows. Vous pouvez tlcharger Perl l'adresse suivante: http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl

Tlcharger l'excutable correspondant votre systme d'exploitation. Une fois cette opration termine, lancer l'excutable et sauvegarder toute la distribution dans le dossier C:\Perl. Lorsque l'installation est termine, contrler qu'elle s'est droule correctement en lanant l'invite de commande et tapant perl v qui indiquera la version de Perl installe sur votre machine.

Rsultat de la commande perl -v

Si le rsultat de la commande est identique l'cran ci-dessus, cela signifie que l'installation de Perl s'est parfaitement droule.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

63/70

Informatique de gestion laboratoire bases de donnes

6.2.2.

Installation

Les fichiers relatifs l'installation de Talend Open Studio se trouvent dans une archive tlcharger l'adresse suivante: http://www.talend.com/download.php

Choisir la version et la plateforme (Windows ou Unix) dsires et dmarrer le tlchargement. Une fois celui-ci termin, il faut extraire les fichiers de l'archive. Lorsque cette opration est acheve, lancer l'excutable TalendOpenStudio.exe. Aprs avoir accept le contenu de la licence, le formulaire d'enregistrement s'affiche. Vous pouvez remplir ce formulaire pour recevoir des informations sur Talend Open Studio par e-mail. Cette tape est facultative.

Formulaire d'enregistrement

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

64/70

Informatique de gestion laboratoire bases de donnes

Ensuite, lors de la premire utilisation, vous devez configurer les paramtres de connexion (locale ou distante) en cliquant sur le bouton marqu de trois points.

Choix de la connexion

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

65/70

Informatique de gestion laboratoire bases de donnes

Il faut remplir le champ User E-mail en saisissant une adresse e-mail valable. Cette adresse servira de login lors de la connexion. Remplir ensuite, si ncessaire, le champ User Password. Celui-ci ne doit pas tre saisi lors d'une connexion locale. Cliquer sur OK.

Configuration de la connexion

Comme il s'agit de la premire utilisation, il n'y a encore pas de projet existant dans liste. Il faut donc crer un projet en cliquant sur le bouton Create.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

66/70

Informatique de gestion laboratoire bases de donnes

Il faut donner obligatoirement un nom au projet. Attention, celui-ci n'est pas sensible la casse. Il est possible de donner une description du projet mais cela n'est pas requis. Choisir ensuite le langage de gnration du code (Perl ou Java). Lorsque ces informations ont t correctement saisies, cliquez sur le bouton Finish.

Cration d'un projet

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

67/70

Informatique de gestion laboratoire bases de donnes

Vous pouvez maintenant vous connecter Talend Open Studio en cliquant sur OK.

Connexion Talend Open Studio

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

68/70

Informatique de gestion laboratoire bases de donnes

6.3. Installation CRONw


CRONw doit tre install pour utiliser le planificateur de Jobs (Scheduler). Avant de commencer linstallation de CRONw, il faut contrler quil ait au minimum la version 5.8 de Perl installe sur la machine. Pour cela il suffit de taper la commande perl v dans linvite de commande. Si ce nest pas le cas, il faut procder linstallation de Perl (voir le point 6.2.1.2.). Larchive, contenant les fichiers relatifs linstallation, se trouve ladresse suivante : http://sourceforge.net/project/showfiles.php?group_id=87160&package_id=106736 Extraire les fichiers de larchive (va crer le dossier CRONw). Ouvrir linvite de commande et se placer dans le dossier CRONw. Installer les modules Perl complmentaires en tapant la commande perl installer.pl Taper la commande perl cronHelper.pl --install. Dmarrer le service cron avec la commande NET START CRON.

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

69/70

Informatique de gestion laboratoire bases de donnes

6.4. Bibliographie
Travail de diplme 2005 de Julien Helbling, "DataWarehouse et analyse multidimensionnelle" Site de documentation du CNIP http://www.talend.com/ http://www.postgresql.org/ http://technet.microsoft.com/ http://www.enhydra.org/ http://www.cloveretl.org/ http://www.ketl.org/ http://www.jasperforge.org/ http://cronw.sourceforge.net/ http://fr.wikipedia.org/

Yannick Perret / 27.09.2007

Rapport travail de diplme 2007

70/70