Réplication de données avec Kettle

Introduction

Dans toute organisation, la synchronisation de données entre plusieurs bases est un sujet assez récurrent. Avec Kettle, la mise en place est plutôt simple : encore faut-il l’avoir réalisée au moins une fois… !

Voici donc dans cet article un exemple de mise en place d’une réplication de données.

Vous allez constater à quel point Kettle vous simplifie (comme toujours) la mise en œuvre.

L’exemple à traiter

Description du besoin

Comme d’habitude, je vais prendre un exemple basique qu’il vous suffira d’adapter à vos propres besoins : je dispose de deux serveurs JasperSoft, un serveur de pré-production (Serveur A) et un serveur de production (Serveur B).

Mon besoin est tout bête : répliquer les comptes utilisateurs du serveur A vers le serveur B de manière à avoir une synchronisation complète des comptes.

Précision importante : le système de référence est le serveur A. Ainsi tout compte utilisateur créé, modifié ou supprimé sur ce serveur doit respectivement être créé, modifié ou supprimé sur le serveur B. Donc A est le serveur Maître et B le serveur Esclave : on ne réinjecte aucune modification effectuée directement sur B vers A.

En outre, à chaque réplication, je souhaite obtenir un fichier de synthèse me listant :

  • les comptes utilisateurs ajoutés depuis la dernière synchronisation
  • les comptes utilisateurs modifiés
  • les comptes utilisateurs supprimés

Pré-requis :

  • JasperServer Reports 6.0 Community Edition
  • Pentaho Data Integration 5.x

Mise en place

JasperServer repose sur une base de données PostgreSQL pour le stockage de ses objets internes tels que rapports, paramètres, sources de données, traitements planifiés, etc…

Cette base de données s’appelle « jasperserver » et contient 62 tables dont la table « jiuser » pour le stockage des informations utilisateurs : login, nom complet, email, mot de passe…

Bien sûr, une interface web d’administration (accessible depuis le menu « Gérer\Utilisateurs ») permet la création, l’édition et la suppression des comptes en ligne :

gestion_users_jasperserver

Voici un exemple de données « utilisateurs » stockées dans la table « jiuser » :

table_jiuser
Les étapes indispensables à la mise en place du traitement sont :

  • l’étape « Synchronisation de données » (Synchronize after merge)
  • l’étape « Comparaison lignes » (Merge rows)

 

Voilà à quoi doit ressembler la transformation sous PDI :

exemple_synchro_data_pdi

Cette transformation consiste en une extraction des données de la table « jiuser » sur chaque serveur A et B, suivi de l’étape « Comparaison lignes » configurée comme ci-dessous :

merge_rows

  • Dans la zone Clés à satisfaire, on spécifie la(les) champ(s) qui constituent la clée d’unicité des enregistrements (ici le champ « id »). Attention à bien effectuer un tri préalable sur ces clés dans les requêtes d’extraction !
  • Dans la zone Valeurs de comparaison, on renseigne les champs sur lesquels on veut que kettle nous signale une modification de l’enregistrement.
  • Le champ résultat nommé par défaut « flagfield » contiendra après l’exécution une des informations suivantes et ceci pour chaque ligne :
    • « new » pour un nouvel enregistrement
    • « changed » pour une modification sur un enregistrement
    • « deleted » pour une suppression
    • « identical » pour un enregistrement identique

L’étape « Synchronisation de données » permet ensuite de déterminer les opérations à effectuer sur le serveur B, en fonction de la valeur du champ « flagfield » :

L’onglet « Général » est identique à celui de l’étape « Insertion/Mise à jour table » :

synchronize_after_merge_2

L’onglet « Avancé » permet quant à lui de définir la stratégie de mise à jour en fonction de la valeur du champ « flagfield » :

synchronize_after_merge_1

La transformation se termine par la génération d’un fichier CSV qui permet de tracer les différences entre les serveurs A et B et ceci avant la synchronisation.  L’étape « filtrage ligne » permet de tracer tous les enregistrements sauf ceux qui sont identiques (flagfield= « indentical » )

Téléchargement

Récupérez vite la transformation exemple pour l’adapter à vos besoins !

Exemple de synchronisation de données avec PDI (11 downloads)

A bientôt 😉

La revue de presse (Printemps 2015)

En ces périodes de jours fériés et de ponts, voici une petite revue de presse à déguster en terrasse avec un bon verre…

Attention, tout est en vrac cette fois-ci et à l’ancienne : que des liens web ! (bon, y’a les titres dans les urls…)

Cliquez donc au hasard et vous tomberez peut-être sur une perle rare 😉

http://inquidia.com/news-and-info/5-must-have-pdi-plugins-pentaho-marketplaceorangeade

http://diethardsteiner.github.io/pdi/2015/04/28/PDI-Parallelism-and-Partitioning.html

http://www.datasciencecentral.com/profiles/blogs/27-free-data-mining-books

http://rpbouman.blogspot.nl/2015/04/mdx-grouping-on-non-unique-levels.html

http://www.ivy-is.co.uk/pentaho-data-integration-mongo-steps

https://dankeeley.wordpress.com/2015/04/02/executing-r-from-pentaho-data-integration-pdi-kettle

http://www.innoventsolutions.com/open-source-reporting-review-birt-jasper-pentaho.html

http://diethardsteiner.github.io/cde/2015/03/31/How-to-create-CDE-Add-ins.html

http://www.tibco.com/blog/2015/03/30/tibco-analytics-one-year-later

http://rpbouman.blogspot.fr/2015/03/a-generic-normalizer-for-pentaho-data.html

http://diethardsteiner.github.io/ccc/2015/03/29/CCC-Core-Concepts.html

https://anonymousbi.wordpress.com/2015/03/29/playing-with-jedox-bi-cpm

http://blogs.forrester.com/boris_evelson/15-02-13-its_not_your_grandfathers_open_source_bi_market_any_longer

http://joel-latino.blogspot.co.uk/2014/03/how-export-and-import-saiku-files-on.html

https://hgovind.wordpress.com/2015/03/16/full-outer-join-using-pentaho-mapreduce

https://dankeeley.wordpress.com/2015/03/10/building-step-plugins-with-pdi-pentaho-kettle

http://www.erwanlenagard.com/general/tutoriel-utiliser-lapi-twitter-pour-collecter-des-tweets-sans-coder-avec-talend-1029

https://bineedsui.wordpress.com/2013/12/23/x-axis-label-wrap-in-pentaho-report-designer

https://www.gnu.org/philosophy/free-software-for-freedom.html

http://funpdi.blogspot.fr/2014/12/how-sorted-or-sordid-is-your-data.html

http://funpdi.blogspot.fr/2014/12/superscript-pdi-plugin.html

https://dankeeley.wordpress.com/2015/01/08/non-native-metadata-injection

A bientôt 😉

iReport est mort : vive JasperSoft Studio !

Total Eclipse

Voilà maintenant plus de 3 ans que JasperSoft a lancé une refonte complète sous Eclipse de son client de conception de rapports iReports.

Et depuis JasperSoft 5.5, c’est officiel :

« JasperSoft Studio devient le client de conception officiel pour JasperReports. iReport rentre en mode maintenance jusqu’au 31 Décembre 2015. Cela signifie qu’il n’y aura plus aucune évolution sur l’outil, hormis des corrections de bugs critiques »

iReport_announcement

Vous l’aurez compris, si vous utilisez iReport dans vos projets, il va être grand temps de penser à migrer vers JasperSoft Studio, que vous publiez vos rapports sur un serveur JasperSoft ou un serveur d’application Java (tomcat ou autre)…

Dans cet article, je vais tâcher de vous montrer que vous pouvez migrer en toute sécurité : JasperSoft a vraiment fait du bon boulot !

Il faudra juste vous habituer à concevoir vos rapports dans un environnement Eclipse : moi je suis pas super fan, mais bon, on s’y fait… à condition d’avoir un écran 22 pouces minimum :-)

(Lire la suite…)

Le Socle Interministériel de Logiciels Libres (SILL)

Le SILL 2015

Plus de 2 ans après la circulaire du Premier Ministre recommandant l’utilisation de logiciels libres au sein de l’administration publique, on peut dire que les choses ont plutôt bien avancé !

Voici en effet que vient de paraître la seconde version de la liste des logiciels libres préconisés par l’Administration :  le Socle Interministériel de Logiciels Libres.  Ce dernier est téléchargeable sur le site des documents de référence de la modernisation de l’Etat.

Téléchargez le aussi ici : SILL 2015 - Socle Interministériel des Logiciels Libres (267 downloads)

LogoSILLLe SILL 2015 liste pas moins de 150 solutions réparties en plusieurs catégories :  sécurité, bureautique, réseau, conception & développement, virtualisation, bases de données…

(Lire la suite…)

Exploitez vos cubes Mondrian… dans Microsoft Excel !

Voilà déjà un moment que je cherchais un connecteur ODBO (OLE DB for OLAP) digne de ce nom permettant d’accéder dans Excel à des données stockées dans un cube Mondrian.

Le seul que j’avais pu tester à ce jour était SimbaO2X (payant, code propriétaire) développé par la société du même nom.

JasperSoft propose également depuis très longtemps un connecteur de ce type, mais le garde pour sa version Enterprise :-(

Cette semaine, à l’occasion d’une recherche pour un de nos clients, je suis tombé sur un projet open source récent (2014) : « XMLA Connector » de la société roumaine ARQuery dont l’un des co-fondateurs Alexandra Lancu a œuvré pour Jedox sur l’interpréteur MDX de PALO (belle référence)

ArqueryLogo

« XMLA Connector » permet de récupérer dans Excel des données en provenance d’une source XML/A (XML for Analysis), notamment Mondrian, mais aussi Oracle OLAP XMLA Edition, Microsoft Analysis Services ou encore SAP BW.

(Lire la suite…)

Magic Quadrant Gartner (Février 2015)

Le carré magique Gartner 2015 pour les plates-formes BI & Analytics vient d’arriver :

MQ_2015_Feb

Que remarque-t’on par rapport à celui de l’an dernier ?

  • la disparition de JasperSoft du carré magique, suite au rachat par Tibco Software, ce dernier régressant dans le pavé des visionnaires
  • la régression assez nette d’OpenText Actuate
  • le maintien de Pentaho à la même place

Je vous invite à lire la note détaillée du Gartner, qui présente les forces et faiblesses de chaque solution (très instructif…)

A compléter par cet article d’InformationWeek

Bonne lecture 😉

Hitachi se paye Pentaho

Ca bouge encore dans l’OSBI !

Après le rachat de JasperSoft par TIBCO il y a moins d’un an, et d’Actuate par OpenText au début de l’année, c’est maintenant au tour de Pentaho de se faire racheter par Hitachi Data Systems pour la bagatelle de 600 M$, soit 10 fois la capitalisation de Pentaho (levée de fonds : 60 M$), qui a bien mieux vendu sa peau que JasperSoft (racheté 185 M$ pour 58 M$ de levée de fonds)

Hitachi Data Systems (HDS) est un poids lourd sur le segment du stockage (CA: 4 Md $) et s’implique pleinement dans le Big Data.

Rappelons juste que HDS est filiale à 100% du groupe japonais Hitachi (320 000 salariés pour 19 Md $ de chiffre d’affaires).

hitachi_hds_pentaho

Avec le rachat de Pentaho, Hitachi Data Systems annonce la couleur : devenir un des leaders du Big Data en complétant sa couche hardware par la couche logicielle offerte (sic..) par Pentaho.

Bonne pioche et surtout très bien joué cette complémentarité autour de l’une des thématiques les plus porteuses de cette décennie : le Big Data !

(Lire la suite…)

Personnalisation de Pentaho 5

Vous souhaitez personnaliser votre console utilisateur Pentaho 5 ?

Suivez donc ces quelques indications…

1/ Une interface en français

Pour une adhésion complète de vos utilisateurs, le mieux est sans doute de leur proposer une interface en français, non ?

Pour cela, il vous suffit de vous rendre dans la perspective « MarketPlace » et d’installer le pack de langue française (disponible parmi une bonne douzaine d’autres langues) :

french_languagepack_plugin

Après le téléchargement du plugin, redémarrez votre serveur, puis allez dans le menu « \Outils\Language Packs\French Language Pack Installer » et procédez à l’installation du pack de langue FR (redémarrez ensuite le serveur)

french_languagepack_plugin2

La console sera alors affichée en langue française (vider le cache de votre navigateur si nécessaire)
(Lire la suite…)