Il y a quelques jours, notre duo de choc Giselle Marin et Alexandre Nasry présentaient Dremio devant une salle comble du track « Solutions Entreprises » lors de Paris Open Source Summit 2018 ! Vous avez manqué ça ? Aucun problème ! Nous avions notre envoyée spéciale sur place, Hélène Trouvé, qui a réussi à filmer l’action en direct ! La vidéo est désormais sur Youtube et plutôt que de vous y envoyer pendant les heures de bureau, on vous la met en accès ici !
Nous souhaitons encore une fois remercier Dremio et toute l’équipe organisatrice de Paris Open Source Summit et notamment, notre bien aimé track-leader, Ludovic Dubost de chez XWiki, pour cette opportunité ! Nous sommes très heureux d’avoir pu présenter cette solution lors de l’événement !
Dremio, démo et des mots !
Afin d’être accessible au plus grand nombre, nous mettons à votre disposition la transcription de la session ci-dessous.
Giselle :
« Bonjour !
Nous allons vous faire une présentation qui va vous montrer comment accéder à l’ensemble de vos données dans votre système d’informations à partir de l’outil Dremio.
Pour cette présentation il y a mon collègue Alexandre Nasry qui est data engineer et moi, Giselle Marin, qui suis data analyst. Nous travaillons dans la société Synaltic en tant que consultants.
Aujourd’hui, l’accès aux données n’est pas simple, c’est assez complexe et pas vraiment intuitif, notamment pour l’utilisateur métier. Ça fait des années qu’ils se sont habitués à des outils ou des plateformes bien plus intuitifs, comme Google ou Facebook. Malheureusement aujourd’hui, pour les plateformes analytiques, on ne peut pas dire qu’elles soient très intuitives.
Il y a aujourd’hui beaucoup d’éditeurs qui se sont focalisés sur l’utilisateur métier, comme Tableau qui est dans ce mouvement. Ce sont des outils qui permettent à l’utilisateur de simplifier des taches qu’il sait déjà faire mais qui lui prennent du temps.
Il existe des solutions qui lui permettent de manipuler la donnée par lui-même, c’est ce qu’on appelle le self-service. En tant que data analyst, il m’arrive d’avoir besoin de mes données rapidement mais il faut que j’attende que l’IT me prépare toutes mes tables et tontes les données pour pouvoir commencer à les analyser.
Malheureusement aujourd’hui il n‘existe pas de solution qui nous permette d’accéder à des données en self-service. Vous le voyez surement dans vos activités, c’est assez compliqué, c’est un chemin assez critique, assez tordu pour accéder à cette donnée. Actuellement ce que l’on fait c’est qu’on ajoute des couches et des couches et des couches et on ne se rend même pas compte du prix de la possession et du traitement de ces données.
On a la data staging, le data warehouse ou un data lake, après on va créer des tables agrégées ou des cubes pour ensuite enfin arriver à les analyser. Le chemin est assez long et complexe.
Souvent, en plus, les métiers ne s’entendent pas avec la DSI parce que les premiers ne comprennent pas trop le temps que peut prendre l’implémentation de flux ETL au second. Et j’imagine que vous rencontrez ces cas de figures dans vos entreprises également.
C’est pour ça que Dremio a été construit, dans cet esprit, dans une vision d’accompagner l’utilisateur métier, une plateforme pour fédérer la donnée avec un accès unique aux données de toute l’entreprise. Ça commence avec un catalogue pour rentrer et chercher les données dont on a besoin. Dans mon cas, je vais pouvoir aller chercher mes tables pour faire mes traitements, je vais ensuite pouvoir les transformer pour ajouter des données que j’ai dans mon coin par exemple, je peux ensuite, quand j’ai toutes mes données préparées ou ma table, je vais pouvoir les partager avec mon équipe ou avec un autre département qui vont pouvoir accéder à ces données.
Je passe maintenant la parole à Alexandre qui va vous expliquer tout ça dans le détail ».
Alexandre :
« Comme le disait Giselle, la question, c’est comment fédérer la donnée, comment la rendre plus facilement et plus rapidement accessible aux métiers ?
Donc petite histoire Dremio et son équipe. L’entreprise a été fondée en 2015. L’outil repose principalement sur du Apache Paquet pour tout ce qui est compression de fichiers, Apache Calcite pour tout ce qui est communication entre les sources de données, derrière il fait juste le pont entre les requêtes SQL depuis Dremio et les sources et Apache Arrtow pour tout ce qui est interrogation in memory, mise en cache
La première version est sortie en 2017 et ils en sont actuellement à la version 3.0, ils alimentent pas mal leur GIT.
Avant l’arrivée de Dremio, plusieurs acteurs de l’open source ont essayé de répondre à ces questions (fédération de données facilement et rapidement) avec plus ou moins de réussite. Apache Drill qui propose de requêter les données non-structurées en SQL, Presto offre aussi cette possibilité avec en plus la possibilité de se connecter à des données plus stream (type Kafka). Dans les solutions Hadoop, y’a du Hive avec un plugin qui permet de se connecter à des données externes au data lake et puis avec PostGre SQL classique avec son data wrapper qui permet de se brancher à à peu près n’importe quel type de source type par exemple, Elasticsearch, en mettant devant son PostGre.
Toutes ce solutions sont très orientées IT, il faut encore des compétences IT pour manipuler ces outils-là, et c’est là que Dremio arrive et change la donne en proposant une interface très UX très simple d’utilisation pour le métiers et l’IT et permet d’accéder à l’ensemble des sources de données et ce pour l’ensemble des collaborateurs.
Dremio permet en effet d’accéder à l’ensemble de vos sources, si vous avez une architecture cloud avec par exemple du Amazon, vous pouvez très facilement vous connecter à Amazon Redshift, ou à du S3, vous avez vos logs stockés dans du Elasticsearch, pas de problème, Dremio peut se connecter à ces sources-là, Du HBase, du HDFS, du Maper avec du ficher MapR, pas de problème il sait aussi se connecter à ça, des bases de données plus classiques avec Post Gre ou MySQL, il sait aussi faire.
Au niveau de son interface il permet d’interroger via du SQL ou depuis un script de faire des appels REST. Ça permet de construire des vues et d’interroger vos données. Par exemple de croiser des données dans Elasticsearch et de Mongo de les croiser et d’obtenir une vue derrière avec la possibilité de la partager.
Mais il faut quand même que vos utilisateurs métiers connaissent le SQL ou fassent des requêtes REST. La force de Dremio est d’être capable de se brancher à des outils d’analyse comme, Tableau Power BI ou Qlik pour les utilisateurs qui ne manipulent pas le SQL.
L’idée derrière dremio est de proposer une plateforme come un Google Doc pour la donnée. Vous voyez tous ce que c’est Google Doc, un fichier collaboratif, tout le monde travaille dessus, vous pouvez le partager et ensuite le retrouver facilement. L’idée de Dremio c’est la même chose : vous connectez l’ensemble de vos sources à la plateforme et vous travaillez dessus en collaboration pour faire vos requêtes, créer des vues et les partager dans votre catalogue de données. Et si nécessaire, Dreimo propose une option de data préparation, de transformer votre donnée afin de la consommer plus facilement et plus efficacement.
Il y a aussi des notions d’espace de travail avec l’idée que chaque utilisateur possède son espace de travail et quand il a fini de traiter des vues pour un pôle particulier de l’entreprise, il peut créer des vues pour ce pôle, par exemple, le pole RH a besoin d’accéder à vos bulletins de paie ou de faire des analyses sur vos salaires, on peut leur donner un accès à un espace de travail dédiée et leur donner des vues sur ces données-là, avec plus ou moins d’accès. Une personne peut éditer une vue ou juste la consommer sans la manipuler.
D’un point de vue architecture, il travaille à toutes les échelles. Vous êtes une petite entreprise, vous voulez juste tester l’outil, pas de soucis, vous pouvez le lancer en stand alone sur votre machine (avec un peu de RAM quand même). Vous êtes une moyenne ou grosse entreprise avec pas mal de sources de données derrière, et pas mal d’user, vous pouvez le déployer en cluster multi-nœuds. Il peut fonctionner au-dessus d’Hadoop avec tout ce qui est YARN pour tout ce qui est calcul distribué.
Il propose aussi la montée en cache des données. Une fois qu’elle est analysée et que vous avez identifié une vue intéressante que vous souhaitez accélérer, Dremio est capable d’effectuer une mise en cache de cette donnée là avec son système de « Reflections ». il propose deux types d’accélération de votre données : « L’Arrow Reflection » où là on a une photo de la donnée la plus brute possible, on a créé la vue ou la source brute, on prend une photo et là on peut passer à une accélération allant de 10 fois à 1000 fois plus rapide qu’une interrogation classique et si vous voulez un Data Mart de votre donnée, vous avez « l’Aggregation Reflection » où vous pouvez en fonction de vos axes d’analyse, préciser les dimensions de votre source, et des axes de mesure sur lesquels vous souhaitez requêter votre donnée.
Dremio propose aussi ce qu’on appelle du « lineage », un suivi de la provenance de votre vue. Un utilisateur arrive, identifie une vue qui l’intéresse et bien sous forme de graphe, on peut comprendre que vous avez croisé des données provenant d’Elastic et de Mongo, que vous avez faire une jointure pour obtenir la vue ici présente.
Au niveau du monitoring, Dremio permet d’auditer tout ce qui se passe sur la plateforme dans l’onglet Jobs. A la fois ce que font vos utilisateurs et ce que fait Dremio lui-même. Tout ce qui est accélération sera notifié sur cette interface, et toutes les interrogations avec Tableau, Spark ou Python pourront être suivies avec les durées d’exécution, les requêtes associées et les utilisateurs qui ont fait ces requêtes.
Je vais vous parler d’un petit use case qu’on a fait chez un client. Donc le service IT d’un journal qui avait besoin d’une plateforme type data lake afin d’avoir une vue 360 de leurs abonnées. On a dû croiser des données provenant de leurs sources persos et celles de leur partenaire. On a donc mis en place un data lake chez Google avec une distribution Hortonworks en utilisant des buckets Google Platform. On a utilisé l’ETL Talend, on récupérait les données on les déposait dans un bucket de données brutes, Giselle travaillait ensuite sur Tableau dessus et après avoir communiqué avec le métier et avoir obtenu les premiers retours sur les tableaux de bords, on travaillait encore une fois avec Talend, on faisait les transformations nécessaires et on la poussait dans de la données certifiée. »
Transcription pour la démo :
« Nous voici donc sur l’interface de Dremio.
Sur le côté droit vous pouvez observer l’onglet « Wiki & Tags », qui vous permet de documenter votre donnée.
Je vais sélectionner par exemple ma base de données MySQL, pour voir toutes les informations de mes systèmes et grâce au moteur de recherche je peux retrouver très rapidement mes tables qui commencent par le mot « help ».
Je sélectionne maintenant ma base de données « Sales Fournitures » pour effectuer un croisement entre « dim_clients » et « dim_commandes ».
D’un simple bouton, j’ai juste à sélectionner l’option « Joint » pour croiser ma dimension « client » avec ma table de faits « commandes ».
A ce moment je peux donc rajouter l’ID client et le croiser avec l’ID client de la commande « Faits ». Et juste avec l’option « Preview » j’obtiens le premier résultat de ce croisement.
Dremio génère ensuite une requête SQL et je n’ai plus qu’à sauvegarder ma table. Une fois ma table sauvegardée, je peux créer de nouvelles vues à partir de celle-ci.
Je sélectionne ma table.
Et j’ai décidé de grouper par date l’ensemble de mes commandes afin d’effectuer une somme. Je clique sur « Preview » et j’obtiens mon résultat. Je peux encore une fois sauvegarder cette nouvelle vue dans mon espace de travail « Commandes ».
Une fois ma vue enregistrée, je peux accéder au catalogue pour ajouter des tags ou de la documentation sur la source de données.
Dans l’option « Graphs », vous pouvez obtenir l’origine de votre donnée.
Il est possible de récupérer la source pour Tableau, Power BI ou Qlik Sense.
Vous pouvez demander à votre administrateur Dremio de faire une accélération de cette vue pour obtenir de meilleures performances ou aller dans le setting pour faire des modifications sur cette vue.
Dans l’onglet « JOBS », on peut obtenir des analyses sur les performances de cette requête. »