Connexion

Connexion à votre compte

Identifiant
Mot de passe
Maintenir la connexion active sur ce site

Blog

Elasticsearch, Kibana3 : une nouvelle approche de la BI

Dans la continuité de l'article «La New BI, les moteurs de recherche pour repenser le décisionnel», nous avons pensé qu'il était intéressant d'étayer notre propos avec un exemple parlant et ainsi montrer l'intérêt des moteurs de recherche dans le cadre de projet de business intelligence.

Vous n'avez sans doute pas raté qu'un moteur de recherche open source n'arrêtait plus de faire parler de lui. Il s'agit d'Elasticsearch, créé par Shay Banon et basé sur Lucene.

Elasticsearch est sans commune mesure une des solutions qui s'engage vers un bel avenir tant sa richesse fonctionnelle, sa qualité technique, sa communauté bouillonnent pour offrir un moteur de recherche performant et tellement simple à mettre en oeuvre.

Comme une majorité de logiciels développés en open source, Elasticsearch, a d'ores et déjà fait ses preuves malgré son très jeune âge. Il a pour client des grands noms du web tels que Foursquare, Salesforce, Wordpress, Github, Soundcloud,...

 

Elasticsearch pour la BI !

Il est temps de vérifier en quoi est-ce que ce moteur de recherche est en mesure de couvrir des besoins fonctionnels en business intelligence. Avant de rentrer dans la technique, parlons d'abord des interactions possibles avec l'utilisateur final. Récemment un projet du nom de Kibana3 est tombé dans l'escarcelle d'Elasticsearch. Il facilite la création de tableaux de bord. Kibana3 fait ainsi partie de cette panoplie d'outils autour du moteur de recherche qui peuvent faciliter la réalisation de projet en informatique décisionnelle.

Elasticsearch kibana3 bi-search ventes


Raccourcir les temps des projets !

Avec Kibana3 les tableaux de bord tel que celui-ci se réalise en très peu de temps, quelques minutes ! Mais nous dirons quelques heures pour paraître plus sérieux. Bien entendu dans le cadre de vos projets, nous nous baserons sur votre expérience et votre retour pour être certain de vous fournir des tableaux de bord avec des chiffres exacts. Nous passerons alors le temps qu'il faut. Il n'en demeure pas moins vrai que grâce à une telle solution nous sommes en mesure de vous concevoir des tableaux de bord rapidement : en un temps moindre qu'avec d'autres technologies.

Bien entendu Kibana3 en est à ses débuts et ne regorge pas encore d'une pleine implémentation des capacités d'Elasticsearch. Je pense par exemple aux agrégateurs.

Une des étapes très chronophage en informatique décisionnelle c'est la modélisation et l'alimentation du datawarehouse, des datamarts. Nous reviendrons un peu plus tard sur cette phase. Mais Elasticsearch va s'avérer plus flexible que dans les projets classiques ce qui là encore va raccourcir la durée globale du projet.

 

Une interaction plus flexible et plus intuitive qu'avec une approche OLAP

Les navigateurs OLAP constituent l'une des interfaces utilisateur dont l'organisation des données reste très proche de celle des modèles métiers. Cette technologie, appréciée par un grand nombre, présente parfois une certaine rigidité face aux interrogations des utilisateurs. Les moteurs de recherche apportent une approche plus souple mais avec la même philosophie que l'OLAP. Les moteurs de recherche indexent les données qu'ils renferment et les restituent sous forme de facettes. C'est de cette manière qu'il est possible d'afficher des critères de recherche ou de sélectionner les axes d'analyse.

Kibana3 n'a pas encore une approche orientée navigateur OLAP. Toutefois, il propose un composant de type tableau qui permet une exploration de la donnée et une construction des filtres à la volée efficace et simple.

kibana2-table

Ainsi, il est possible par une analyse simple, de découvrir la distribution d'un axe selon ses occurrences distinctes, voire même d'afficher une analyse un peu plus complète.

kibana3-top-enseingne

pour finalement, en créer un filtre simplement en sélectionnant une des colonnes de l'histogramme.

kibana3-filtres

Ce filtre pourra être ainsi actif ou non, ce qui facilitera l'exploration de l'utilisateur qui pourra le combiner ou non avec un autre critère, influençant alors les visualisations.

Une autre fonctionnalité de Kibana3 qui va rappeler l'OLAP c'est cette facilité à « propager » un critère de sélection à l'ensemble des visualisations qui compose un dashboard. De façon simple et intuitive, l'utilisateur final procède au « drill down » via son cheminement dans la donnée. Il peut creuser, par ajout de filtres successifs.

drill down avec Elasticsearch / Kibana3

L'utilisateur est ainsi complètement assisté et autonome dans le parcours de son information et la construction de son analyse.

Aussi si cette technologie nous plaît temps c'est aussi pour les temps de réponse. En effet, les moteurs de recherche créent des index à priori ! Ce qui réduit grandement les délais de réponse et ravit les utilisateurs tant leur navigation à travers l'information en est rapide.

Encore en beta au sein d'Elasticsearch, les facettes hiérarchiques, et les agrégateurs associés correspondent à des fonctionnalités qui rapprochent encore plus ce moteur de recherche aux bases de données OLAP.
Par exemple il est complètement possible de gérer des requêtes avec des agrégations hiérarchiques :

{
    "query" : {
        "match_all" : {}
    },
    "aggs" : {
        "productname" : {
            "terms" : { "field" : "productname" },
            "aggs" : {
                "medianame" : {
                    "terms" : { "field" : "medianame" },
                        "aggs" : {
                            "sum_nb_transactions" : { "sum" : { "field" : "nb_transactions"} }
                        }                     
                }
            }
        }
    }
}

Comme on peut le lire ici, cette requête retourne la somme du nombre de transactions réalisées par nom de produit, et par nom de média.

Aujourd'hui Kibana3 n'intègre pas encore ces nouvelles fonctionnalités. Mais il est sûr qu'une fois qu'il les possédera, il sera définitivement prêt pour la business intelligence.

 

Alimenter rapidement votre moteur de recherche en données

Chez Altic nous aimons beaucoup Talend, et bien entendu même dans le cadre de cette démo nous avons développé (prototypé) quelques composants pour nous faciliter l'alimentation du moteur de recherche Elasticsearch.

talend-nosqlloader

Il faut aussi noter qu'Elasticsearch possède ses propres mécanismes pour s'alimenter depuis des source externes ; notamment les « rivières » qui permettent une alimentation en flux des données. Grâce à l'aspect distribué d'Elasticsearch, on obtient une combinaison optimale pour le décisionnel. En effet, Elasticsearch se compose de différents types de nœuds : ceux dédiés à l'alimentation et l'indexation, ceux cantonnés aux stockages, et ceux tournés vers les utilisateurs finaux.

elasticsearch topologies

Ainsi, l'alimentation peut se faire en continue sans perturber les utilisateurs finaux qui naviguent à travers des données rafraîchies régulièrement.

Une modélisation plus souple, non a priori

Nous ne pouvons pas dire qu'il n'y ait pas de travail de modélisation. Elasticsearch contraint à une modélisation des données qui lui est tout de même spécifique en comparaison aux projets de business intelligence classiques. Toutefois, il apparaît que cette modélisation peut tout de même être plus souple. Par exemple, la difficulté qui existe dans la maintenance des datamarts lorsqu'il s'agit de rajouter une colonne par exemple, disparaît. Elasticsearch est plus flexible à ce niveau là. Car il exploite les données au format JSON ce qui permet l'ajout d'un attribut facilement (et son indexation aussi). L'utilisateur bénéficiera du nouveau champ aisément.

Le job Talend présenté plus haut range les données dans Elasticsearch par date. Tout simplement, parce que nous prévoyons que nous pourrions les conserver que sur une certaine période. Et ainsi, alléger le moteur de recherche si cela s'avérait nécessaire. Ici, nous voulons montrer que cette architecture est déjà prête pour une gestion de l'archivage des données.

Un challenger de la BI qui se cache de moins en moins

Elasticsearch est un moteur de recherche. Il ne peut être considérer comme une solution par défaut de business intelligence. Toutefois, il possède aujourd'hui un socle qui lui permet de déjà répondre à de nombreux besoins fonctionnels en informatique décisionnel. Kibana3 est un bel exemple des possibilités d'Elasticsearch en ce domaine et continue d'évoluer.
Il n'est pas non plus impossible que de nouvelles couches clientes encore plus orientées exploration et analyse de données voient le jour pour. Et nous pouvons même penser que des navigateurs OLAP viennent compléter cette offre.

Elasticsearch devrait jouer un rôle certain dans l'analytique !

Rechercher sur le blog