BI experience

22 mars 2010
par maryam khiali
2 Commentaires

Salon linux open source : le mouvement noSQL

identite_linux_salon

La semaine dernière, je suis allée au salon « solutions linux open source ». J’ai participé à des conférences. Une en particulier a retenu mon attention : « le mouvement noSQL ».  Connaissez-vous ce mouvement qui pourrait prédire la fin des SGBD relationnels classiques?

Avec le développement d’Internet, les besoins en lecture/écriture et stockage ont sensiblement augmentés. En effet les sites comme twitter, facebook doivent répondre à ces problématiques de temps de réponse quasi instantané ainsi que d’écriture et stockage de données massif (photos, messages, commentaires…)

C’est dans ce genre de problématiques que les SGBD classiques ne sont plus les outils les plus adaptés. Poussés dans des situations extrêmes, il fallait une nouvelle façon de faire et c’est ainsi que le « noSQL » est né!

SGBD relationnel NoSQL : non relationnel
Transaction ACID :
* Atomicité : une transaction doit être soit complètement validée soit complètement annulée.
* Cohérence : une transaction ne peut pas laisser la base de données dans un état incohérent.
* Isolation : une transaction ne peut voir aucune autre transaction en cours d’exécution.
* Durabilité : après que le client ait été informé du succès de la transaction, les résultats de celle-ci ne disparaîtront pas.
voir wikipedia
théorème de CAP:
*Cohérence : celui-ci est différent de celui des contraintes ACID.Le but est d’avoir la même information entre 2 intervalles de lecture très rapprochés
*Disponibilité : il faut que la lecture des données soit toujours possible
*Panne tolérance : bien gérer les serveurs pour que s’il y en a qui tombent l’information soit toujours récupérable quelque part sur un autre serveur.
mécanisme assurant la cohérence couteux, protection contre la corruption, index, trigger rendent la scalibilité difficile limitation ou inexistence de ces mécanismes (index, trigger…)car le but n’est pas d’être focalisé sur la structure, sur la cohérence des données car c’est une perte de temps et de disponibilité
notion de table, de clef primaire le type de stockage est sous forme (clé, valeur). Chaque clef est unique dans la base de données. Les données ne sont pas structurées et la cohérence n’est pas vérifiée
pour interroger la base de données utilisation du langage SQL plus de langage SQL. On interroge la base de données grâce à une API (en Javascript par exemple) offrant 3 opérations de base : get, set, delete. Pour des requêtes un peu plus complexes on passera par des fonctions MapReduce voir wikipedia
les données sont toujours cohérentes il y a plusieurs niveaux de cohérences proposés (Exemple: si tous les commentaires d’un article ne sont pas présents sur la page d’une lecture à l’autre ce n’est pas très grave pour l’utilisateur)

Pour plus d’informations sur ce mouvement, je vous redirige vers nosql-database.org.

Actuellement facebook utilise la base de données noSQL cassandra, Google  hypertable. Ce mouvement est en train de monter, alors est-ce l’avenir pour les bases de données liées aux contraintes d’internet?  Est-ce que la BI va profiter de ce genre de technologie dans l’avenir pour répondre aux demandes d’analyses toujours plus rapidement en utilisant toujours plus de gros volumes de données?

Qu’en pensez-vous?

14 mars 2010
par maryam khiali
5 Commentaires

Création d’une Dimension temps

Dans un projet décisionnel, la dimension temps est toujours nécessaire. Dans mon projet actuel, nous avons fait le choix d’avoir 3 dimensions temps :

  • la première ne répertorie que des années
  • la seconde des années et des mois
  • la troisième va jusqu’au jour

Ces 3 dimensions sont utilisées dans des datamarts différents qui n’ont pas forcement la même granularité de temps.

Dans cet article je voulais juste vous montrer comment nous avons construit la troisième dimension temps puisque tous les développeurs BI seront amenés à en construire une :

construction_dim_temps

Comme vous pouvez le voir nous avons un tLoop qui va nous permettre d’incrémenter l’année au fur et à mesure. Voici ce qu’il y a dans le composant d’input de type PostgresInput :

 »
SELECT

/** »+((Integer)globalMap.get(« tLoop_1_CURRENT_ITERATION »))+ » représente le 1 à ajouter à chaque itération provenant du tLoop**/
« +((Integer)globalMap.get(« tLoop_1_CURRENT_ITERATION »))+ » + 1,

/**utilisation de la fonction (date interval 1 day) afin d’ajouter 1 jour en plus à l’année ***/
(date \’1900-01-01\’ + interval \’ »  +((Integer)globalMap.get(« tLoop_1_CURRENT_ITERATION »))+   » day\’),

/**utilisation de la fonction date_part (‘day’, date) afin de récupérer le jour de la date ***/
date_part(\’day\’,(date \’1900-01-01\’ + interval \’ »+((Integer)globalMap.get(« tLoop_1_CURRENT_ITERATION »))+ » day\’)),

/**utilisation de la fonction date_part (‘month’, date) afin de récupérer le mois de la date ***/
date_part(\’month\’,(date \’1900-01-01\’ + interval \’ »+((Integer)globalMap.get(« tLoop_1_CURRENT_ITERATION »))+ » day\’)),

/**utilisation de la fonction date_part (‘year’, date) afin de récupérer l’année de la date ***/
date_part(\’year\’,(date \’1900-01-01\’ + interval \’ »+((Integer)globalMap.get(« tLoop_1_CURRENT_ITERATION »))+ » day\’))
 »

Ainsi il ne restera donc plus qu’à insérer dans notre dimension temps :

  • la date
  • l’année
  • le mois
  • le jour

Et vous, comment avez-vous géré vos dimensions temps ?

4 mars 2010
par maryam khiali
0 Commentaires

Gérer l’import/export des jobs Talend grâce à des jobs

Avant que Talend ne propose sa plateforme « Repository Manager », nous avions demandé l’intervention d’une personne de Talend pour la mise en place de leur « framework » (voir ce post).  Le but de cette prestation était de nous permettre l’industrialisation de notre travail au quotidien. Le consultant Talend nous avait donc créé 2 jobs utilisant les commandes du commandline :

  • le premier pour l’export de jobs d’un serveur A
  • le second pour l’import de jobs dans un serveur B

TIS permet donc de faire ce travail d’import/export. Comment? c’est que nous allons voir dans ce post.

Voici le design du job « export » proposé :

export

Vous pourrez  consulter les commandes utilisées dans ce jobs dans le wiki de Talend  à cette adresse (avec les versions linux et windows).

Voici le contenu du composant tForeach (chaque ligne représente une commande)

/*connection au serveur*/
« initRemote « +context.Export_Url_Tac
/*log au bon projet*/
« logonProject -pn « +context.Export_Projet+ » -ul « +context.Export_Identifiant+ » -up « +context.Export_MotDePasse
/*Export des jobs à l’adresse indiqué en ajoutant dans le nom la date du jour si le job a type = process et à tel statut (par exemple : dev , recette ou prod) en incluant les dépendances*/
« exportItems « +context.Export_Chemin_Zip+ »_ »+TalendDate.getDate(« CCYYMMDD »)+ ».zip »+ » -if (type=process)and(status= »+context.Export_New_Status+ ») -d »
/* En exportant on change la version des jobs ainsi que leurs statuts*/
« changeVersion « +context.Export_New_Version+ » -if (type=process)and(status= »+context.Export_New_Status+ ») »
« changeStatus « +context.Export_Old_Status+ » -if (type=process)and(status= »+context.Export_New_Status+ ») »

Pour un petit rappel sur les commandes du commandline aller voir ce post

Dans le TFlowiterate on mettra : ((String)globalMap.get(« tForeach_1_CURRENT_VALUE »)) afin de récupérer ces lignes avec les bonnes valeurs et de les mettre dans un fichier csv qui sera exécuté ensuite grâce au tSystem via cette commande :

 » ./TISEE-linux-gtk-x86 -nosplash -application org.talend.commandline.CommandLine -consoleLog -data commandline-workspace scriptFile « +context.Chemin_Script

Pour l’import c’est exactement la même logique avec les commandes d’import.

Pour ceux qui préfèrent le confort d’une interface graphique n’hésitez pas à aller voir du côté du  « Repository Manager »   (voir ce post).

25 février 2010
par maryam khiali
2 Commentaires

Jedox éditeur de Palo

Cela fait maintenant un an et demi que nous avons débuté notre projet décisionnel full open source. Nous avons fait l’acquisition de la plateforme TIS pour l’ETL puis de la plateforme Jasperserver pour la restitution. Seulement, coté restitution, Jasperserver est spécialisé dans le rendu PDF or nos utilisateurs sont des fervents utilisateurs de tableurs. C’est pourquoi nous avons souhaité rencontrer la société Jedox. Cet éditeur, nous propose une brique Palo intégrée à Excel ou Calc.

logo_palo

Leur démonstration était vraiment impressionnante. Voici les briques que Jedox nous propose :

  • Palo OLAP : Serveur de base de données multidimensionnelle (sous windows ou Linux)
  • Palo Addin ( dans Excel ou Calc l’utilisateur aura accès à la puissance de Palo grâce à cette brique)
  • Palo Web : après avoir fait des rapports en local avec Palo Addin l’utilisateur pourra importer et donc publier son rapport dans Palo Web ou inversement il pourra exporter un rapport du web en local pour le retravailler (la version 3.1 devrait sortir fin mars)
  • Palo ETL: cette brique permet de charger des cubes ou vous aurez la possibilité d’utiliser les composants présents dans Talend pour alimenter le cube où alimenter une dimension. Il propose certains connecteurs intéressant tel que le connecteur SAP.
  • Palo Pivot est un requêteur Ad-hoc présent dans la plateforme Web
  • Palo application programming Interface (API): Cette brique permet d’intégrer Palo dans d’autres solutions, de détecter des évènements et de finalement créer des logs, traces, workflow des connexion à un LDAP… (MDX, XMLA, Driver)

Cet outil est vraiment impressionnant car à partir d’un datawarehouse, l’ETL va alimenter un cube qui pourra être retravaillé par les utilisateurs. En effet ils pourront injecter de nouvelles valeurs dans le cube pour faire des simulations et les publier à leurs collaborateurs via la plateforme web. Donc pour tous les projets d’élaboration et planification budgétaire ou encore pour la gestion de la trésorerie ce produit peut vraiment être une perle. Facile à manipuler, il sera vite accepter par les utilisateurs car les tableurs ont encore une place vraiment importante dans le coeur des utilisateurs.

Leur cible reste quand même Microsoft Office Excel. En effet l’import/export dans la plateforme web de tableau Calc n’est actuellement pas opérationnel. Mais peut être que par la suite l’éditeur nous fera le plaisir d’intégrer cette possibilité.

En attendant le fait de pouvoir

  • créer si facilement les squelettes des cubes grâce à l’addin
  • alimenter ces cubes soit avec Talend soit avec Palo ETL
  • gérer les droits d’accès aux données via des cubes de droits d’accès sur les rôles, les groupes, les objets (dimensions, cubes..) sur les données

donne un confort au développeur mais aussi à l’utilisateur final qui aura le plaisir d’avoir accès à la souplesse de manipulation que propose Palo.

Vous pouvez dès à présent télécharger la version communautaire ici ainsi que leurs documentations ici.

9 février 2010
par maryam khiali
0 Commentaires

Experian QAS et ses modules de data cleaning

Experian QAS propose un vrai système complet de nettoyage des données :

qas

Une partie de son offre (QAS Pro) a été intégrée dans le module Talend TDQ (Data Quality).

Son offre peut permettre :

  • le dédoublonnage
  • la normalisation d’adresses , de numéros de téléphone, d’adresses e-mail
  • de faire de la géolocalisation en aidant au nettoyage d’adresses avec un référentiel basé sur les systèmes postaux de 167 pays ainsi qu’une possibilité de conversion d’adresses en coordonnées GPS
  • de créer des contrôles en s’intégrant dans n’importe quel progiciel, ou programme de saisie d’informations.

Plusieurs types d’offres sont proposés à  leurs clients. En effet le client aura la possibilité de se connecter à un serveur en webservice afin d’accéder à leur référentiel complet (leur data center) sinon s’il préfère, il pourra acheter une partie du référentiel qui lui sera livré par CD ROM ou encore il aura l’opportunité de fonctionner par fichier en envoyant par exemple des fichiers plats avec des adresses que QAS traitera et lui renverra propres… Experian QAS s’adapte vraiment au besoin.

Aujourd’hui les problématiques de nettoyage de données se posent de plus en plus et des sociétés comme QAS sont capables d’y répondre. Son offre parait vraiment intéressante mais il faut être conscient de l’investissement en temps et en homme qu’impose le travail de nettoyage de données.

N’hésitez pas à aller voir leur site