‘Data Preparation’ : Cas pratique avec Trifacta Wrangler

Pour continuer à se familiariser avec les outils de Data Preparation présentés dans l’article « Qu’est-ce que la ‘Data Preparation’ et à quoi sert-elle ? », et maintenant que nous avons découvert le fonctionnement de Talend Data Preparation, nous allons aujourd’hui mettre en pratique un cas concret avec Trifacta Wrangler.

Dans cet exemple, les données ne sont pas très propres. Nous allons tenter de corriger les valeurs manquantes, éliminer les valeurs aberrantes, enrichir le jeu avec une autre source, et construire une adresse email à partir de colonnes existantes.

Etape 1 : Chargement des données

Lancer Trifacta Wrangler :

Interface Trifacta Wrangler

Dans la barre horizontale haute, nous remarquons les trois Eléments essentiels, FLOWS (Flux), DATASETS (Sources), RESULTS (Résultats) ainsi que l’interface de chaque élément.

Créer un nouveau Flux de travail et le nommer Flux_ASI :

Create flow - flux Trifacta Wrangler

FluxASI

Ajouter les DATASETS (sources), soit par drag & drop (glisser-déposer), ou en cliquant sur Choose File :

import_dataset-Trifacta

  • le premier (SALARIES) servira de flux primaire
  • le second (DOMAINE_COMPAGNIE) contient 2 colonnes (nom et mail de l’entreprise). La jointure avec le premier se fera sur le champ ‘company’.

Datasets

Etape 2 : Découverte des données

Une fois le DATASET ajouté, Trifacta propose un premier tableau de bord :

Il permet de voir la constitution du flux (dans le volet à droite, nous pouvons voir un premier aperçu des données ainsi que les premières étapes de la recette).

Espace_Flux

  • Dans le volet à droite, cliquer sur ‘Edit Recipe’ pour aller à l’interface principale

Voir_données_Edit-recipes_Trifacta

L’interface principale propose un tableur pour visualiser les données :

A droite, le volet permet de voir la recette. En bas, un builder contient l’ensemble des fonctions de transformations.

Interface_prin

Pour chaque colonne, une barre de Data Quality est présente, avec trois couleurs : verte (valeurs valides), rouge (valeurs invalides) et noire (valeurs nulles). En cliquant sur chaque tranche, il est possible d’accéder aux actions pouvant être appliquées à cette masse de données. Dans notre cas, nous allons accéder à la première colonne, et voir les détails de la colonne.

Détail_Col

En cliquant sur ‘Column Details’, nous aurons un tableau de bord de Data Profiling de cette colonne.

Data_Profiling

Etape 3 : Nettoyage

Nous allons éliminer les valeurs aberrantes (invalides) et les valeurs nulles :

Nous allons commencer par les valeurs nulles.

  • Cliquer sur la partie noire de la barre de Data Quality, Trifacta suggère un ensemble d’actions
  • Choisir l’action Delete rows where isMissing ([id])
  • Cliquer sur ‘Add to Recipe’. Il est également possible de cliquer sur ‘Modify’ pour avoir une transformation plus adaptée. La force de Trifacta est de pouvoir ajouter des expressions régulières et combiner plusieurs fonctions.

Supp_missingPour les valeurs aberrantes :

  • Cliquer sur la partie rouge de la barre de Data Quality
  • Appliquer l’action Delete rows where ismismatched([id], [‘Integer’])
  • Cliquer sur ‘Add to Recipe’

actions_abberantes

  • Répéter ces actions pour toutes les colonnes du jeu de données.

Nous allons maintenant supprimer les espaces de toutes les colonnes :

  • Sélectionner les colonnes concernées avec Ctrl+Clic
  • Cherche la fonction Remove whitespaces() qui se trouve dans le menu ‘Format’, et l’appliquer pour toutes les colonnes

remove whitespaces

Nous allons créer deux nouvelles colonnes, qui contiendront respectivement le firstname et lastname de la personne afin de les mettre en minuscule :

Nous allons les appeler respectivement Email_Firstname et Email_Lastname :

  • Cliquer sur le menu déroulant de la colonne
  • Dans Format, chercher la fonction to lowercase ()
  • Dans le builder des options de paramétrages, choisir la formule, et renommer la nouvelle colonne Email_First_Name.

lowercase

  • Répéter cette action pour la colonne last_name

Etape 4 : Enrichissement

Nom de domaine de l’entreprise

Nous allons, dans cette étape, enrichir le jeu de données avec un nouveau flux, afin d’extraire le nom du domaine de l’entreprise pour chaque salarié :

  • Cliquer sur le menu déroulant de la colonne company
  • Choisit Lookup, une nouvelle fenêtre apparait pour choisir le DATASET concerner par la jointure
  • Choisir le DATASET ‘Domaine_Compagnie’

lookupzoom

L’étape 2 du Lookup consiste à choisir l’attribut de jointure dans le DATASET secondaire :

  • Choisir ‘company’
  • Exécuter le Lookup

Look_up_col

Une fois le fichier chargé, nous allons construire la colonne ‘EMAIL’.

Comme Trifacta propose de faire nos propres formules, nous allons sélectionner les trois colonnes concernées, puis nous allons appliquer la fonction Merge() sur les trois colonnes avec un tiret entre le firstname et lastname et un @ entre la colonne résultante et le domaine_compagny.

La figure suivante montre comment nous avons pu combiner plusieurs fonctions pour construire une formule.

Dans notre exemple, nous avons fait plusieurs étapes en une seule grâce à la formule suivante :

MERGE ([MERGE([Lower(first_name),Lower(last_name)], ‘-’),email_domain], ’@’).

combiner-fonctions-formule

Etape 5 : Validation et Publication

En haut à droite, Trifacta permet de générer le résultat des transformations.

Validation Trifacta

Avec la version gratuite, il est possible d’exporter les résultats sous trois formats : CSV, JSON et TDE.

generate results trifacta

Le résultat sera publié dans le logiciel lui-même. Pour le voir, cliquer dessus afin d’avoir un tableau de bord résumant le résultat obtenu.

results summary trifacta

Conclusion

L’arrivée de la Big Data engendre forcément une explosion d’outils qui permettent aux entreprises de tirer profit de leurs données. Les éditeurs de ces solutions essayent de fournir des outils simples permettant à l’utilisateur sans compétences informatiques de se les approprier facilement.

Le domaine de la data preparation suit cette logique de vulgarisation (démocratisation). Cependant les outils qui permettent de le faire sont encore jeunes. Les solutions ne sont pas complètes ; plusieurs défis attendent les éditeurs.

La data preparation pourra permettre aux entreprises de passer plus de temps dans l’analyse des données, permettant d’accélérer les projets et d’avoir de meilleurs résultats.

Utilisation de données JSON dans un tableau de bord BiBOARD

La solution BiBOARD permet la création de tableaux de bord dynamiques web à partir de données stockées en base.

De par son architecture, BiBOARD est capable d’intégrer des composants JavaScript permettant l’affichage de composants de data vizualisation avancés tels que ceux de D3JS, AmCharts, HighCharts, MetricsGraphics

Dans le cas de l’utilisation avec BiBOARD, le souci est que ces composants s’alimentent en données par des structures de type JSON et non des requêtes SQL.

Pour répondre à ce besoin, BiBOARD met à disposition depuis la V16 un WebService capable de transformer le résultat d’un hub en chaîne de caractères JSON.

Cet article vous présente comment utiliser ce WebService dans vos développements et comment l’intégrer dans un composant JS du marché, en l’occurrence, OpenStreetMap.

Le WebService JSON

Pour tester ce WebService, dans votre navigateur, tapez l’adresse suivante : http://<serveur BiBOARD:port>/resources/BiBOARDJSONServices.asmx

La liste des services apparaît :

Dans cet article nous allons utiliser : ExportHub

Pour cet exemple nous utilisons le hub REF_liste_categorie_produits créé à partir de la requête suivante sur la base ‘Demonstration’ fournie par l’éditeur :

Select

Demonstration.dbo.Categories.CodeCategorie,

Demonstration.dbo.Categories.NomCategorie

From

Demonstration.dbo.Categories

Order By

1

Saisissez ici vos 4 paramètres :

  • HubId : id du hub fournissant le flux de données (-1 si vous préférez préciser son nom)
  • HubName : Nom du hub fournissant le flux de données (mettre alors -1 dans HubId)
  • MaxRecords : Nombre de lignes à rapatrier (-1 pour toutes)
  • Params : paramètres éventuels séparés par des ;

Nb : Le hub doit être préalablement copié en raccourci dans une catégorie visible par votre compte BiBOARD.

En cliquant sur ‘Appeler’ la chaine JSON s’affiche :

Intégration dans un script JavaScript

Le code suivant permet de solliciter le service ExportHub en JavaScript :

var ExportHub = ‘./resources/BiBOARDJSONServices.asmx/ExportHub?HubId=-1&HubName=REF_liste_categorie_produits&MaxRecords=-1&params=’;

var xhttp = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject(« Microsoft.XMLHTTP »);

xhttp.open(« GET », ExportHub ,false);

xhttp.send(null);

var json_str = xhttp.responseText;

La chaîne json_str contient alors :

« <?xml version=\ »1.0\ » encoding=\ »utf-8\ »?>\r\n<string xmlns=\ »http://www.product.BiBOARD.fr/\ »>[\r\n  {\r\n    \ »CodeCategorie\ »: 1,\r\n    \ »NomCategorie\ »: \ »Beverages\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 2,\r\n    \ »NomCategorie\ »: \ »Condiments\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 3,\r\n    \ »NomCategorie\ »: \ »Confections\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 4,\r\n    \ »NomCategorie\ »: \ »Dairy Products\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 5,\r\n    \ »NomCategorie\ »: \ »Grains/Cereals\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 6,\r\n    \ »NomCategorie\ »: \ »Meat/Poultry\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 7,\r\n    \ »NomCategorie\ »: \ »Produce\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 8,\r\n    \ »NomCategorie\ »: \ »Seafood\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 9,\r\n    \ »NomCategorie\ »: \ »CD\ »\r\n  }\r\n]</string> »

Le code suivant permet ensuite de nettoyer la chaîne afin d’enlever les lignes d’entête et de pied :

var json_str = json_str.replace(« <?xml version=\ »1.0\ » encoding=\ »utf-8\ »?> », «  »);

var json_str = json_str.replace(« <string xmlns=\ »http://www.product.BiBOARD.fr/\ »> », « );

var json_str = json_str.replace(« </string> », » »);

Nb : Le caractère \ permet de ne pas interpréter le caractère suivant dans le code JavaScript.

La chaîne peut enfin être parsée par le code suivant :

var dataJson = JSON.parse(json_str);

A ce stade, la variable dataJson peut être utilisée dans les composants JS compatibles JSON.

Exemple d’utilisation dans BiBOARD

Objectif

Afin de mettre cette théorie en pratique, nous allons intégrer une carte OpenStreetMap dans un tableau de bord BiBOARD, affichant des cercles plus ou moins larges selon la quantité d’articles commandés.

Environnement technique

Ce développement est effectué sur la version 16.1.11 de BiBOARD.

Les données sont celles de la base ‘Demonstration’ fournie par l’éditeur et stockée dans SqlServer 2014.

Afin d’associer les codes postaux à la carte, nous avons ajouté à cette base la table Communes_FR contenant la longitude et la latitude de tous les communes françaises.

Ces données sont disponibles sur le lien : http://www.nosdonnees.fr/wiki/index.php/Fichier:EUCircos_Regions_departements_circonscriptions_communes_gps.csv.gz

Préparation des données

2 hubs sont nécessaires à la production de ce tableau de bord :

  • 1-QTE par commune : hub de données

Requête SQL associée :

Select

cfr.nom_commune,

cfr.latitude,

cfr.longitude,

Sum(cd.Quantite) QTE,

year(co.DateCommande) as Annee

From

dbo.Commandes co,

dbo.Commandes_Details cd,

dbo.Communes_FR cfr

Where

co.NumCommande = cd.NumCommande And co.LivraisonCodePostal = cfr.codes_postaux

And year(co.DateCommande) = :p_ANNEE

Group By

cfr.nom_commune,

cfr.latitude,

cfr.longitude,

year(co.DateCommande)

  • 1-QTE par commune (js) : 1 hub mono ligne contenant le code HTML & JS

Requête SQL associée :

Select getdate() as today

Dans le second hub, nous créons un champ calculé nommé map, au format HTML, contenant le code suivant :

Télécharger le code du champ map au format Word

Il suffit enfin de créer un libellé dans le tableau de bord (en cochant HTML) basé sur le champ map de ce hub, la carte s’affiche !

Ajout d’une sélection sur l’année

Pour rendre le tableau de bord plus dynamique, il peut être judicieux de laisser l’utilisateur choisir l’année.

Pour cela, le code est modifié afin :

  • D’ajouter une liste radio sur les années au-dessus de la carte
  • De retrouver l’année sélectionnée dans le code JS
  • D’ajouter l’année en paramètre lors de la création de la chaîne JSON

Code final du champ map :

Télécharger le code final du champ map au format Word

Résultat final

Conclusion

Nous espérons que cet article vous aura été d’une grande utilité.

Bien sûr, le code JS est perfectible mais ce n’est pas le but de cet article.

N’hésitez pas à nous contacter si vous le souhaitez !

Découvrez IBM COGNOS Insight

Avec la version 10.1, l’éditeur IBM COGNOS a sorti en mars 2012 IBM COGNOS Insight, le dernier outil de Business Application.

IBM COGNOS Insight est une solution analytique personnelle qui vous permet d’explorer, d’analyser, de visualiser, de simuler et de partager en toute indépendance vos données locales.

Avec cette nouvelle offre, IBM COGNOS veut se positionner sur le marché de la Data Visualisation pour concurrencer Qlikview et Tableau Software.

  • Explorer : Importez, fusionnez et analysez tous les types de données sur votre PC par simple « glisser / déposer »

  • Analyser : Créez des applications personnalisées, des tableaux de bord afin de visualiser les données.

  • Visualiser et simuler : Ayez un contrôle complet de la présentation avec des fonctionnalités de simulation (technologie TM1).

  • Partage et publication sur le portail Ibm Cognos BI C10 sous la forme d’une application.

Consolidation financière avec SAP BPC au sein du groupe Ouest-France

Le groupe Ouest-France cherchait à se doter d’outils lui permettant d’analyser des comptes d’exploitation globaux et par édition.

Une des briques choisies a été SAP BPC. Elle leur permet de consolider des données financières et des unités d’œuvres – issues des SI opérationnels – dans des tableaux de bord sous Excel. De plus, elle offre aux contrôleurs de gestion une autonomie pour la définition des règles de répartition sur les différents axes métiers.

Par son expertise, ASI a accompagné le groupe Ouest-France dans la prise en main de ces répartitions analytiques, dans la création des tableaux de bord et dans l’intégration de nouveaux indicateurs métiers. L’étape suivante consistera à utiliser les fonctionnalités de simulation afin de réaliser des projections.

Logo Ouest-France

%d blogueurs aiment cette page :