Vous quittez notre site principal pour accéder à notre site chinois hébergé en Chine. Pour des raisons légales, aucun lien ne vous ramènera vers notre site principal.

Accéder au site chinois
Logo - Keyrus
Logo - Keyrus
  • Playbook
  • Services
  • Insights
  • Partenaires
  • Carrières
  • Qui sommes-nous ?
    Raison d'être
    Innovation & Technologies
    Keyrus s'engage
    Conformité & Reglementations
    Investisseurs
    Équipe de direction
    Marques
    Implantations

Success story

Comment traiter des paires de valeurs clés semi-structurées dans Tableau

Les structures de données flexibles telles que les paires valeurs clés - ou plus spécifiquement entity-attribute-value (EAV) - sont un choix populaire chez de nombreuses applications commerciales. Elles permettent un stockage efficace (souvent en format JSON) dans les cas où le nombre d'attributs possibles pour une entité est très important, mais où un enregistrement particulier ne contient des données que pour une poignée d'entre eux. 

Malheureusement, si ce type de stockage est excellent pour de l’entrée de données, il est moins approprié à la récupération de celles-ci, ce qui est le but des outils analytiques tels que Tableau.

Nous avons récemment rencontré l’un de nos clients pour lequel certaines des stratégies les plus courantes pour traiter ce type de stockage de données ne convenaient pas - voici comment nous avons résolu le problème.  

Le problème rencontré

Dans ce scénario, nous voulons construire un tableau de bord à partir des données de diagnostic d'un patient. Un patient (c.-à-d. "l'entité") peut passer des tests médicaux différents (c.-à-d. "les attributs") d'un autre patient, mais nous voulons permettre aux médecins de passer rapidement du patient 1 au patient 2 (et à tous les autres patients possibles) sans avoir à recréer un tableau de bord ou un visuel dédié par patient. N'oubliez pas que la combinaison des tests médicaux par patient varie, et que nous ne disposons donc pas d'une structure cohérente que nous pourrions appliquer à tous les patients.

Pour rendre les choses encore plus complexes, la flexibilité de cette structure de données permet d'ajouter facilement de nouveaux attributs du côté du système de stockage. Cela signifie donc que la couche d'analyse visuelle devra répondre de manière dynamique aux nouvelles entrées.

Notre approche

Lorsque l'on envisage une solution de rapports répétitifs (c.-à-d. un tableau de bord qui se rafraîchit tous les jours), la plupart des outils d'analyse fonctionnent mieux avec une structure de données prédéfinie au nombre fixe de colonnes, idéalement aussi plat que possible. Certaines bases de données telles que PostgreSQL ou Snowflake supportent les dialectes SQL qui permettent d'aplatir les paires de clé-valeur JSON à l'aide d'une requête SQL. Mais comme le résultat de ces requêtes peut changer à chaque fois que la requête est exécutée, il est difficile d'exploiter ces requêtes directement dans l'outil analytique. Une autre solution consiste à prédéfinir des structures aplaties au sein de votre entrepôt de données, ce qui répondrait mieux aux besoins répétitifs de votre outil d'analyse mais pourrait être difficile à développer et à maintenir, tant du côté de la base de données que de celui de l'outil d'analyse. D'autres options pour aplatir les données JSON incluent l'utilisation de Python dans la préparation des tableaux - comme nous l'avons fait ici - mais là encore la structure des données peut changer, ce qui signifie que la mise à jour prévue de notre tableau de bord peut être interrompue.

Bien que l'idéal serait d'aplatir les données, ce n'est pas souvent une option envisageable.

Nous devions trouver un moyen de disposer d’une structure de données fixe, tout en visualisant dynamiquement une structure différente pour chaque entité (pour chaque patient dans notre cas).

Commencez par entrer dans les extensions de Tableau. Si vous êtes familier avec celles-ci vous pouvez passer au paragraphe suivant. Si ce n’est pas le cas, vous devez savoir que les extensions de Tableau sont des applications web auto-déployées, qui ont une communication bidirectionnelle avec le tableau de bord. Les extensions du tableau de bord permettent toutes sortes de scénarios, tels que l'intégration de Tableau avec des applications personnalisées, la modification des données pour un visuel ou même la création de visualisations personnalisées en utilisant une bibliothèque JavaScript tierce et en la plaçant à l'intérieur du tableau de bord. Les possibilités sont infinies !

Pour notre scénario, nous avons construit une extension Tableau pour lire, analyser puis afficher les données semi-structurées de façon dynamique.

Comprendre la Solution

Notre solution fonctionnera avec n'importe quel nombre de patients ayant un grand nombre d'attributs possibles. Mais, pour des raisons de simplicité, nous utiliserons 2 patients avec un nombre limité d'attributs par patient.

Voici un échantillon de l'ensemble de données - notez que l'horodatage varie pour chaque rangée de patients et que les attributs des données varient par patient.

Étape 1 : Construire le tableau de bord

  • Connectez-vous à vos données comme vous le feriez normalement et introduisez la colonne de données JSON telle quelle.

  • Construisez le tableau de bord, en fournissant de la place pour l'extension

Étape 2 : Construire l'extension

Dans notre scénario, nous nous sommes appuyés sur l'exemple suivant du tableau qui s'est avéré être un bon point de départ.

  • Modifier l'extension pour pouvoir analyser le champ des attributs JSON

    • Cela peut être fait de plusieurs façons mais, dans un but de simplification, nous avons utilisé la fonction d'analyse JSON pour analyser le tableau, puis avons fait une boucle à travers l'objet JSON analysé pour ajouter les paires clé-valeur au champ des en-têtes et des lignes que nous allons visualiser ci-dessous.

       

  • Ajoutez un type de visualisation pour afficher les données analysées. Dans notre cas, nous avons ajouté une visualisation des données analysées sous forme de tableau.

    • L'échantillon mentionné ci-dessus utilise la bibliothèque de données, qui fonctionne également bien dans notre cas.

  • Activer les interactions et les filtres

    • Nous avons mis en place des auditeurs d'événements pour voir si un utilisateur a apporté des modifications aux filtres du tableau de bord ou sélectionné des marques sur un visuel ou le tableau sous-jacent.

Étape 3 : Ajouter l'extension au tableau de bord

  • Suivez ces étapes

Ajout de l’extension au dashboard

Le résultat

Et voilà! Nous avons des visualisations de tableaux dynamiques qui s'actualisent en fonction du patient sélectionné. Dans la vidéo suivante, vous pouvez voir comment les colonnes du tableau du bas changent en fonction de la sélection du filtre ou de la ligne sélectionnée dans le tableau du haut :

Avec ce type d'extension, tout créateur de tableau de bord (même ceux qui ne connaissent pas JSON) peut créer un tableau de bord dynamique qui affiche des données semi-structurées de manière user friendly.

Pas le temps de se plonger dans les extensions? Si vous préférez éviter de développer les extensions et de créer les interactions dynamiques entre les visuels du tableau, nous pouvons vous aider en développant une solution dans votre environnement. Après une brève discussion, Keyrus peut immédiatement commencer à traiter vos données, à développer votre extension personnalisée, et même à concevoir et construire vos nouveaux tableaux de bord.

whatsapptwitter
linkedinfacebookworkplace
newsletter.svg

Ne manquez jamais un insight

Tenez-vous au courant des derniers produits, événements, et bien d’autres encore

Votre adresse e-mail est uniquement utilisée pour vous envoyer la newsletter Keyrus et à des fins de prospection commerciale. Vous pouvez à tout moment utiliser le lien d’opposition présent dans nos courriels de désabonnement dans chaque newsletter envoyée. En savoir plus sur la gestion de vos données et vos droits.

Poursuivre la lecture

Webinar

Webinaire : Générer de la valeur grâce aux données de vos anciens élèves

10 janvier 2023

Jeudi 2 février 2023, à midi (heure de l'Est)

Article de blog

Keyrus Canada lance Novembre Ensemble !

7 novembre 2022

Keyrus Canada soutient l’association Centraide et lance le projet « Novembre Ensemble ». Cette année notre équipe a pris la décision d’apporter son soutien à Centraide, une association qui œuvre localement pour les personnes vulnérables en créant des communautés plus inclusives et des projets solidaires.

Article de blog

L'experience des jeunes travailleurs en VIE chez Keyrus Canada

20 octobre 2022

Grâce au volontariat international de l’entreprise, de jeunes diplômés de 18 à 28 ans viennent travailler dans le monde de la data et de l'intelligence artificielle chez Keyrus Canada.

Success story

Extraction de données textuelles contractuelles non structurées pour automatiser les processus de facturation

2 août 2022

L’équipe de Keyrus a mis en place une solution pour supporter une entreprise Nord-Américaine de logistique avec plus de 75 sites de distribution. Découvrez comment nous avons corrigé et développé les processus d’automatisation, d’extraction et d’interprétation de données pour améliorer leur productivité.

Événement

Retrouvez Keyrus au Salon Connexion le 9 juin prochain

19 mai 2022

Le 9 juin prochain, plus de 3,000 experts et participants sont attendus au Salon Connexion, le salon de la transformation numérique, au Palais des Congrès de Montréal.

Success story

Moderniser des rapports marketing dans le secteur de l'assurance avec Tableau

28 mars 2022

Dans le cadre de son projet d'analyse des données, une compagnie d'assurance a décidé de migrer son entrepôt de données vers Amazon Redshift Spectrum et souhaitait profiter de ce nouvel entrepôt pour mettre à niveau son système de reporting. Keyrus a été chargé de lancer cette migration et de préparer le client à utiliser Tableau avec succès.

Événement

Analytique Embarquée - 3 histoires sur la valeur de l'achat vs. la création

9 février 2022

Comment créer des produits et services externes axés sur les données qui génèrent des revenus et réduisent les coûts? Doivent-ils être construits en interne ou basés sur des produits analytiques dédiés? "Tableau embedded analytics" est l'outil qui permet de commercialiser plus rapidement vos solutions externes et de commencer votre parcours vers la monétisation des données.

Événement

Keyrus participera au HEC Forecast, pour la 3e année consécutive

25 janvier 2022

Keyrus participera au HEC Forecast, pour la 3e année consécutive, événement organisé par le Comité en Science des Données de HEC Montréal, qui se tiendra le vendredi 4 février.

Événement

Webinaire - Évolution vers l'analytique avancée : Transformez votre plateforme BI

19 novembre 2021

Avec l'arrivée ces dernières années des solutions infonuagiques et de l'architecture en micro-services, il est facile de se sentir dépassé. Ces nouvelles technologies nous aident à gagner en capacité de stockage et en performance, tout en optimisant nos coûts. Les géants comme AWS, Azure et Google Cloud Platform, mettent à notre disposition un large éventail d’outils nous permettant de mettre en place des solutions aux capacités multiples : création de lacs de données et d’entrepôts de données performants, partage de données, analytique avancée et bien plus encore.

Événement

Évolution vers l'analytique avancée : Transformez votre plateforme BI

5 novembre 2021

Avec l'arrivée ces dernières années des solutions infonuagiques et de l'architecture en micro-services, il est facile de se sentir dépassé. Ces nouvelles technologies nous aident à gagner en capacité de stockage et en performance, tout en optimisant nos coûts

Logo - Keyrus
Montréal

75 Queen St. – Suite 1400 H3C 2N6– Montréal, Québec

LinkedInInstagram
PlaybookServicesInsightsPartenairesCarrièresQui sommes-nous ?
Raison d'êtreInnovation & TechnologiesKeyrus s'engageConformité & Reglementations InvestisseursÉquipe de directionMarquesImplantations
Mentions légales & Conditions d'utilisation
Politique de confidentialité
Protection des données