Développer des extensions sur Qlik Sense

Les extensions

Une extension Qlik Sense est un composant qui permet d’ajouter à la plateforme Qlik Sense de nouveaux types de visualisations. Ce concept permet de combiner des APIs Qlik Sense avec les capacités illimitées du Web.

Une fois créée, l’extension a le même comportement qu’un composant Qlik Sense natif : on peut ajouter des dimensions, des mesures et préserver le principe d’interactivité de Qlik Sense.

Architecture

Le serveur Qlik Sense nous propose un certain nombre d’APIs. Ces interfaces permettent une interaction avec notre serveur, ce qui permet d’extraire des données ainsi que diverses informations. Ces données et informations extraites peuvent être traitées avec du JavaScript afin de les structurer et de les visualiser selon notre besoin.

En plus du JavaScript basique, des bibliothèques CSS (comme Bootstrap) et du HTML peuvent être utilisés afin de faire des Dataviz plus au moins personnalisées.

Extensions QlikSense

Les possibilités d’extension

  • Exploitation des bibliothèques JavaScript existantes Highcharts, D3JS, Google Charts.
  • Utilisation des APIs sur le Web : Google Maps, Twitter.
  • Utilisation des bibliothèques de style comme Bootstrap.
  • Développement des visualisations et des comportements selon le besoin.

Le développement d’extensions

Fichiers d’une extension

Pour développer des extensions, l’architecture document doit être constituée d’un ensemble de fichiers qui sont indispensables. A ces fichiers s’ajoutent des fichiers supplémentaires, qui permettent de pousser plus loin les capacités de développement mais aussi de bien les organiser.

Fichier extension

Fichiers indispensables

  • Le fichier. Wbl : c’est un point d’entrée de l’extension, il contient la liste des fichiers indispensables
  • Le fichier. Qext : c’est le fichier de configuration principal de l’extension, il contient la version, le nom, l’icône, etc.
  • Le fichier .js : c’est le fichier le plus important, c’est là que l’on interroge le serveur Qlik, que l’on fait les calculs nécessaires ainsi que le design de l’extension.

Fichiers supplémentaires

  • Properties.js : Parmi les bonnes pratiques, les propriétés de l’extension seront séparées du fichier principal.
  • Fichiers .ccs : Des fichiers de style peuvent être ajoutés à l’extension afin d’améliorer le rendu et avoir une meilleure qualité de visualisation.
  • Bibliothèque JS : Des bibliothèques JS peuvent être ajoutées aussi pour avoir plus de fonctionnalités JavaScript (Jquery, D3JS, Highcharts).

Accès et structuration des données

La structuration et l’accès aux données retournées depuis le serveur seront contenus dans la méthode Paint ($element, layout). Cette dernière est rafraîchie à chaque fois que les propriétés changent ou que le widget est redimensionné.

Le serveur Qlik Sense retourne des données sous format d’un hypercube JSON. L’accès à cet hypercube se fera par la fonctionnalité layout.qHypercube.

L’hypercube est un objet JavaScript générique, qui va contenir les données ainsi que des métas données sur ce que l’utilisateur de l’extension mettra comme mesure et dimension depuis l’interface Hub.

Structuration des données

Exemples d’extensions développées par ASI

  • Une première extension prend une mesure et une dimension puis classe les membres de cette dernière en fonction de la mesure. Elle retourne ensuite le TOP3 de la dimension choisie :

Extension 1

  • Une deuxième extension s’appuie sur la bibliothèque Highcharts pour construire un radar, avec la possibilité de mettre plusieurs dimensions et de choisir la couleur de la dimension ainsi que la taille du diagramme.

Extension2 QlikSense

Vous avez besoin de communiquer sur vos données, construire un datawall ? N’hésitez pas à nous contacter pour bénéficier de l’expérience et de l’expertise de nos équipes pluridisciplinaires Java, UX et Data Intelligence >> asicom@asi.fr / 0806 700 800 (service gratuit + prix appel)

 

‘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.

‘Data Preparation’ : Cas pratique avec Talend Data Preparation

Pour se familiariser avec les outils de Data Preparation présentés dans mon précédent article, « Qu’est-ce que la ‘Data Preparation’ et à quoi sert-elle ? », nous allons aujourd’hui mettre en pratique un cas concret avec Talend Data Preparation. Nous ferons de même avec Trifacta dans un prochain article.

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 Talend Data Preparation :

Talend Data Preparation lancement

Créer un nouveau dossier de travail et le nommer ASI_PREPA :

ASI_PREPA

Ajouter 2 Dataset (sources) :

  • 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’.

Data sets

Data-preparation-datasets

Accéder au dossier ASI et cliquer sur ‘ADDPREPARATION’. Ajouter le flux primaire SALARIES, et confirmer :

ADDPREPARATION

Etape 2 : Découverte des données

Nous accédons à l’interface principale :

Interface_data-preparation

Cette interface se décompose en 4 volets principaux :

  • à gauche la recette,
  • au milieu un tableur qui contient les données,
  • en haut à droite les fonctions pouvant être appliquées sur les données
  • en bas un volet de data Profiling

Une barre de Data Quality est présente sur chaque colonne avec 3 couleurs :

Verte (valeurs valides), orange (valeurs invalides) et blanche (valeurs nulles). En cliquant sur chaque tranche, nous accédons aux actions qui peuvent être appliquées à cette masse de données.

Data quality

En cliquant sur une colonne, nous avons accès au menu de Data Profiling où se trouvent 4 onglets qui permettent de mieux comprendre les données :

data profiling

Etape 3 : Nettoyage

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

  • Cliquer sur une colonne
  • Appliquer les actions (Delete the Rows with Empty Cell) et (Clear the Cells with Invalid Values)
  • Appliquer ces actions sur chaque colonne du jeu de données.

Supprimer_invalid-cell

Suppression_empty-cell

Nous allons maintenant supprimer les espaces de toutes les colonnes. Talend a dédié une fonction pour faire cela :

  • Cliquer sur la colonne
  • Chercher la fonction Remove Whitespaces (), et l’appliquer pour toutes les colonnes

RemoveWhitespaces

Nous allons créer deux nouvelles colonnes qui contiendront respectivement le firstname et lastname de la personne :

Le but étant de tout mettre en lettres minuscules. Nous les appellerons respectivement Email_Firstname et Email_Lastname. Pour cela :

  • Cliquer sur la colonne puis sur Duplicate Column
  • Cliquer sur Rename Column

First Name et last nameL’étape suivante consiste à transformer les nouvelles colonnes créées en minuscules :

  • Sélectionner les deux avec un Ctrl+Clic
  • Chercher dans la palette les fonctions Change Style to Lower Case, et l’appliquer sur les deux colonnes.

Lowercase

Maintenant que les deux colonnes sont construites, nous devons les fusionner pour avoir le format firstname_lastname :

  • Sélectionner la colonne Email_First_Name
  • Chercher la fonction Concatenate dans la palette
  • Paramétrer la concaténation et appliquer le changement

concatenate

  • Renommer la colonne
  • Supprimer les colonnes en plus

Etape 4 : Enrichissement

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

  • Sélectionner la colonne ‘company’
  • Cliquer sur l’icône de jointure (que vous verrez ci-dessous)
  • Choisir le Dataset DOMAINE_COMPAGNIE puis valider

jointure look

 

LookupUne fois le fichier chargé, la colonne de jointure est en bleu et les colonnes à garder avec une case à cocher :

Join

  • Confirmer, une nouvelle colonne apparaît alors : ‘EMAIL_DOMAIN’

Pour obtenir la colonne Email sous la forme firstname_lastname@Email_domaine :

Il ne reste maintenant plus qu’à concaténer la colonne ‘Email_First_Name_Last_Name’ avec la nouvelle colonne ‘EMAIL_DOMAIN’ avec un @ comme séparateur, pour obtenir la colonne Email sous la forme firstname_lastname@Email_domaine.

Puis renommer la nouvelle colonne ‘EMAIL’.

EMAIL-FIRST-NAME-EMAIL-LAST-

  • Supprimer les colonnes en plus

Le jeu de données est propre avec l’email de chaque salarié.

Email

Etape 5 : Validation et publication

Talend Data Preparation version gratuite permet d’exporter les résultats sous les formats Excel, CSV, Tableau.

Export

Dans la version entreprise, Talend annonce que la recette pourra être intégrer à un Job Talend.

Job Talend

Nous avons maintenant terminé l’atelier technique de Data Preparation avec Talend Data Preparation, rendez-vous dans un prochain article pour l’atelier Trifacta !

Qu’est-ce que la ‘Data Preparation’ et à quoi sert-elle ?

Selon Experian, 92% des entreprises n’ont pas confiance en leur données et 56% des entreprises sondées n’arrivent pas à prendre des décisions souhaitées. Gartner, de son côté, parle de la nouvelle BI et de la BI en self-service ; Il prévoit que d’ici 2020, la moitié des efforts consentis dans l’intégration des données passeront par des plateformes de la Data Preparation.

Aujourd’hui, un utilisateur ou un Data-Analyste passe 80% de son temps pour avoir des données propres et exploitables. Un autre problème auquel doivent faire face ces deux acteurs est le partage et la gouvernance des données.

Dans cet article, nous allons parler du domaine de la préparation des données, ainsi que des problématiques, des motivations, et du marché de la Data Preparation. Nous conclurons dans un prochain article par un atelier technique sur les deux outils leaders de ce marché : Trifacta et Talend Data Preparation.

Quelques Définitions

  • Data-Quality : Traitement d’amélioration de la qualité des données, permettant à l’utilisateur d’offrir des données fraîches, accessibles, fiables, cohérentes et exploitables.
  • Data-Wrangling : Processus de transformation des données d’une manière visuelle et interactive.
  • Data-Profiling : Processus de collecte des données et des statistiques sur ces données.
  • Data-Preparation : Ensemble des étapes (Découverte, Structuration, Nettoyage, Enrichissement, Validation, Publication) qui viennent en amont de la restitution des données.

Étapes de la Data Preparation

etapes data preparation

Problématiques de la Data Preparation

  • 80 % du temps d’un processus (BI/Big Data) est dans la préparation des données
  • Complexité de la construction d’un Data Warehouse
    • Le développement prend un temps énorme (problème de la fraîcheur des données)
    • Architecture Rigide (enrichissement, nouveau besoins)
  • Intégration et alimentation complexe
  • Faiblesse des outils de préparation classiques
    • Pas de gouvernance de données
    • Ne supportent pas le passage à l’échelle
    • Découverte et transformation difficile

Motivations et promesses de la Data Preparation

  • L’analytique en self-service
  • Gouvernance et collaboration
  • Accélération de l’exploitation des données

Cas d’utilisation des outils de la Data Preparation

Certains d’entre vous se posent déjà la question suivante : « Puis-je tirer profit de ces outils, comment et dans quels cas ? »

Nous avons détecté dans notre analyse des cas d’utilisation réels où ces outils peuvent être mis en œuvre afin d’apporter de la valeur dans les projets de la transformation des données.

  1. L’entreprise manque de compétences ETL

Dans le cas où l’entreprise ne possède pas des compétences ETL, et celle-ci a besoin de nettoyer et transformer ses données, les outils de la Data Preparation sont là pour subvenir à ses besoins. Cependant, ces outils ne remplacent pas un processus ETL, ils peuvent remplacer quelques besoins de transformation comme ils peuvent être associés à un processus, en apportant une certaine agilité dans le processus ETL. Talend mise beaucoup sur ce dernier point.

  1. Besoin de données fraîches

Dans le cas où la fraîcheur des données est importante (marchés financiers…), les données doivent être préparées dans les plus brefs délais, sans créer une architecture lourde (comme la constitution d’un Data Warehouse) et sachant que les flux de données ainsi que les besoins diffèrent chaque jour.

  1. Variété et vélocité dans la Big Data

La vélocité et la variété des types et des structures de données exigent de nouvelles stratégies pour l’identification et la rationalisation des données dans un système d’information.

Comme dans les plateformes big data, il peut y avoir une variété importante de données avec différentes structures, ne permettant pas le traitement avec un processus ETL unique standard. En construisant un nouveau processus, nous pouvons perdre en vélocité. Ces plateformes de la Data Preparation pourront limiter cette perte en vélocité. En effet, l’utilisateur pourra s’adapter à cette variation des données, et traiter chaque cas d’une manière manuelle selon son besoin.

Outils de la Data Preparation

Gartner classe ces outils en trois grandes familles :

Outils data preparation

Outils leaders dans la Data Preparation

Outils leaders data preparation

Démonstration

Pour se familiariser avec ces outils, nous mettrons en pratique -dans un prochain article- un cas concret avec Talend Data Preparation, puis avec  Trifacta.

Dans ce cas concret, les données ne seront pas très propres. Nous tenterons 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.