ElasticSearch

Présentation d’ElasticSearch

Elasticsearch est un moteur de recherche open-source développé par la société Elastic. Il est basé sur le langage de programmation Java Lucene. Ses caractéristiques sont les suivantes :

  • Il est distribué (architecture de type cloud computing).
  • Il a une scalabitlité horizontale : possibilité de rajouter des nœuds au cluster pour augmenter sa capacité de traitement
  • C’est un moteur de recherche « noSPOF » (no Single Point Of Failure). Si un nœud tombe, le cluster fonctionne toujours.
  • Il utilise une base de données NoSQL horizontale.
  • Il utilise la méthode REST pour gérer ses index : L’indexation des données s’effectue à partir de requêtes HTTP PUT. La recherche des données s’effectue avec des requêtes HTTP GET. Le flux d’informations est codé selon le format JSON.
  • Il est associé à deux autres produits open source que sont Kibana et Logstash : ceux-ci sont respectivement un outil de visualisation de données et un ETL.

Elasticsearch peut donc être utilisé pour récupérer les données de divers supports de stockages (Bases de données statiques, fichiers CSV, APIs…) et concentrer les informations dans un même espace de stockage ou « cluster ».

La suite Logstash – Elasticsearch – Kibana (plus connue sous le nom de ELK) s’applique donc à divers domaines. D’abord utilisée pour gérer les logs et suivre l’état de fonctionnement de serveurs web, cette suite d’outils s’applique parfaitement à la Business Intelligence et au Big Data. En effet, la praticité et la simplicité d’utilisation de Kibana pour la visualisation de données fait de cet outil un must pour la création de tableaux de bords. La scalabilité horizontale et la rapidité de réponse aux requêtes fait d’Elasticsearch un moteur de recherche capable de remonter un document en une fraction de seconde dans un large volume de données.

Elastic Search

La société Elastic, crée en 2011 et à la base de cette suite logicielle, a connu une croissance record durant ces 5 dernières années et continue sur cette lancée avec le lancement de Kibana 4. Cette nouvelle version doit encore évoluée pour être totalement fonctionnelle et utilisable par la communauté, mais celle-ci s’annonce de bon augure puisque l’outil a été entièrement repensé pour optimiser son fonctionnement avec Elasticsearch et que l’interface utilisateur est maintenant basée sur angularJS.

Démo

Ci-dessous une démonstration Altiview du moteur de recherche ElasticSearch combiné à Kibana

Description :
Nous avons récupéré des données gratuites correspondant aux crimes enregistrés par la police de Sacramento (ville Américaine) durant le mois de janvier 2006.
La première visualisation représente le nombre de crimes commis au cours du mois, alors que le graphique qui la juxtapose représente ce même cumul mais étalé sur chaque jour du mois.

Ensuite, vous pouvez observer deux camemberts :

  • Celui de gauche, avec une seule couche, détermine les 5 mots les plus employés dans la description des crimes.
  • Celui de droite, avec 2 couches, représente des données aggrégées. A l’intérieur, nous comparons le nombre de crimes commis dans chaque « district » (ou quartier) de la ville. A l’extérieur, nous représentons la proportion de crimes divers commis dans chaque district (accident de voiture, drogue…).

Finalement, nous avons décidé de créer des visualisations comparables les unes aux autres. Sous le titre 3, vous pouvez observer 6 graphiques. Ceux-ci indiquent la variation des cambriolages (« burglaries ») au cours du mois de janvier dans chaque quartier de la ville.

ElasticSearch