Vous êtes sur la page 1sur 32

un outil ETL spatial open source

par Etienne Dub et Thierry Badard

Introduction GeoKettle

{etienne.dube,thierry.badard}@scg.ulaval.ca

Groupe de recherche GeoSOA Universit Laval Qubec (Qubec), Canada Tutoriel prsent OGRS 2009, Nantes Juillet 2009
(http://geosoa.scg.ulaval.ca)

Plan
Historique et introduction Fonctionnalits de base de Kettle Fonctionnalits spatiales de GeoKettle Exemples avec GeoKettle Conclusion

Historique
2006-2007 quipe GeoSOA (Universit Laval) projets de recherche sur la gomatique dcisionnelle en mobilit :
Absence d'outils BI (ETL et OLAP) supportant nativement les donnes spatiales Inventaire de l'existant : outils open source de Pentaho (ETL : Kettle, OLAP : Mondrian) But : tendre ces logiciels pour qu'ils prennent en charge les donnes spatiales

Historique (suite)
Ainsi est n GeoKettle : une version spatialise de Kettle (Pentaho Data Integration) Mai 2008 premire version diffuse en open source : 2.5.2-20080531 Novembre 2008 3.1.0-20081103 Juin 2009 3.2.0-20090609

+
extensions spatiales

Qu'est-ce qu'un ETL?


Une catgorie de logiciel utilis pour peupler les bases de donnes ou entrepts de donnes, partir d'une ou plusieurs sources de donnes. ETL:
Extract extraction depuis les sources Transform transformation des donnes, afin de corriger les erreurs, les restructurer (changements aux schmas), les rendre conformes des standards dfinis, etc. Load chargement des donnes vers les BD cibles

Un ETL peut grer autant l'insertion de nouvelles donnes que la mise jour de donnes existantes.

Pourquoi utiliser un ETL?


Automatisation de traitements de donnes complexes et rptitifs, sans avoir faire de code sur mesure Conversion entre formats de fichiers Migration des donnes d'un SGBD un autre Diffusion de donnes vers plusieurs SGBD Alimentation d'un entrept de donnes dcisionnelles etc.

Introduction aux fonctionnalits de base de Kettle

Pentaho Data Integration (Kettle)


Logiciel ETL libre (LGPL) dvelopp en Java. Conu l'origine par Matt Casters (www.ibridge.be). Disponible en LGPL depuis dcembre 2005. Acquis par Pentaho Corp. (entreprise en BI open source) en avril 2006. Fonctionne sous Windows, Linux, Mac OS X ainsi que toute autre plateforme supportant Java et SWT. Version actuelle: 3.2.0 Sur le web: http://kettle.pentaho.org

Pentaho Data Integration (Kettle)


Orient sur les mtadonnes. Excution directe des transformations (sans gnration de code). Support de BD: MySQL, PostgreSQL, Oracle, DB2, MS SQL Server, etc. (37 au total) Lecture/criture de divers formats de fichiers: texte, Excel, Access, DBF, XML, etc. tapes de transformations varies: jointures, calculs, filtrage, dnormalisation/normalisation, validation, scripting (JavaScript), etc. Support natif pour les dimensions changeantes, type 1 et 2 (slowly changing dimensions R. Kimball)

Outils de base de Kettle


Spoon : environnement graphique pour l'dition des transformations et des jobs Pan : lancement en ligne de commande des transformations Kitchen : lancement en ligne de commande des jobs Carte : serveur web pour excution distance des transformations et jobs

Installation
Prrequis : Java JRE version 5 ou plus rcente Dcompresser le contenu de l'archive (distribution binaire) dans un rpertoire Lancement de Spoon : spoon.sh (Linux / UNIX) ou spoon.bat

Transformations (1/3)
Les processus ETL de base sont nomms transformations. tapes de transformation: steps (tapes) Liens entre les tapes: hops (liens) Excution parallle (threads) des steps.
hops

steps

Transformations (2/3)
Les steps comportent des paramtres configurables (double-clic pour ouvrir la bote de dialogue) :
connexion la BD nom de fichier ouvrir critres de filtrage code source d'un script (JavaScript) etc. entres sorties transformations contrle de flux scripting etc.

Catgories de steps :

Transformations (3/3)
Les hops lient les steps les uns aux autres, afin de dfinir les flux de donnes. Pour crer un hop : glisser-dplacer d'un step l'autre avec le bouton du milieu (ou Maj.+bouton gauche) Dans un hop:
les donnes circulent de la sortie d'un step l'entre du step suivant, range par range la dfinition des champs (nombre, noms, types) est toujours identique d'une range l'autre

Types de hops:

copie

distribution

sortie conditionnelle

Exemple 1 Transformation simple

Jobs
Un job (tche) dfinit une srie de tches excuter squentiellement. Ces tches peuvent tre :
des transformations des requtes SQL des manipulations de fichiers (copie, suppression, tlchargement, etc.) des tests conditionnels des scripts (shell, JavaScript) des envois / rceptions de mails d'autres jobs etc.

Le rfrentiel
Les transformations et jobs sont normalement stocks dans des fichiers XML (.ktr/.kjb) Alternative : stockage d'un rfrentiel dans une BD
Les transformations, jobs et paramtres de connexions aux SGBD sont stocks dans une BD ddie

Fonctionnalits spatiales de GeoKettle

Support spatial intgr


Intgration cohrente des gomtries vectorielles:
Type de donnes Geometry : gomtries vectorielles (JTS modle point-lignepolygone) Conversions transparentes entre types de donnes :
Geometry Geometry String : depuis et vers WKT Binary : depuis et vers WKB

Support des SGBD spatiaux intgr dans le noyau d'E/S pour SGBD (utilisant JDBC)
Tous les steps pouvant accder aux BD supportent les colonnes gomtriques de manire transparente.

Entres / sorties
Lecture/criture de gomtries :
SGBD spatiaux:
PostgreSQL/PostGIS MySQL spatial Oracle Spatial / Locator

Note : il n'y a pas de steps distincts et ddis spcifiquement aux E/S PostGIS, Oracle Spatial et MySQL, puisque tous les steps de BD existants ont accs aux colonnes gomtriques. Philosophie : ne pas ajouter inutilement de nouveaux steps quand ceux existants font dj le travail tout en tant plus versatiles !

Formats de fichiers SIG:

ShapeFile GML (en dveloppement)

Analyses spatiales
Scripting sur objets gomtriques en langage JavaScript. Fonctions d'analyse spatiale:
Prdicats topologiques : intersects, touches, within, etc.
exploitables partir des steps de filtrage et de jointure

Fonctions spatiales : union, intersection, length, buffer, etc., soit toutes celles offertes par la librairie JTS
accessibles en JavaScript

SRS et projections
Gestion native des systmes de rfrence spatiaux (SRS) dans les mtadonnes des champs Geometry (librairie GeoTools referencing) Reprojection / changement de systme de rfrence spatiale Affectation d'un SRS Lecture et criture des mtadonnes de SRS :
Lecture des SRS depuis les sources de donnes : SGBD et Shapefile (.prj) Validation du SRS lors de l'insertion de donnes dans PostGIS et Oracle criture du fichier .prj lors de la cration d'un Shapefile

Exemples avec GeoKettle

Exemple 2 Lecture Shapefile

Exemple 3 Filtrage spatial

Exemple 4 Jointure spatiale

Exemple 5 Reprojection

Exemple 6 Script et analyse spatiale

Exemple 7 job

Conclusion

Amliorations venir
Prvisualisation cartographique Autres formats de fichiers (GML, MapInfo, etc.) Accs aux services WFS Steps avec dialogues pour fonctions d'analyse spatiale (buffer, union, etc.).

Pour en savoir plus


GeoKettle sur le web : Pentaho Data Integration (Kettle) :
http://www.geokettle.org

Projet sur SourceForge :

http://kettle.pentaho.org/ La documentation de Kettle est galement pertinente pour GeoKettle ! http://sourceforge.net/projects/geokettle/ Listes de diffusion :
geokettle-users geokettle-users-fr (en franais) geokettle-devel

Vos commentaires, suggestions et contributions sont les bienvenus !

Accs Subversion Trackers (bugs, suggestions, etc.)

Vous aimerez peut-être aussi