Tirer le meilleur de ses données avec ElasticSearch
A propos de moi
Séven Le Mesle - Consultant Xebia - 10 ans d’expérience
En ce moment: évangeliste DevOps, aventurier BigData, pratiquant NoSQL, et ...
@slemesle
Agenda
3
‣ ElasticSearch ? Oui, mais c’est quoi ?
‣ Use Case - Migration d’une base de commande
‣ Facette / B.I. vers de nouveaux usages
‣ Centralisation et analyse de logs
‣ Et encore plus
ElasticSearchOui ! mais c’est quoi ?
1
Qu’est-ce qu’un moteur de recherche ?
ElasticSearch
5
Un moteur d’indexationElasticSearch
6
Document
7
Comment indexer ?ElasticSearch
Un moteur de recherche dans l’indexElasticSearch
8
Construire l’index
9
cleanup tokenize
stop wordstransform
Document
Alors pourquoi utiliser un moteur de recherche ?
ElasticSearch
10
Une base de données SQL n’est pas faite pour la recherche
ElasticSearch
11
Prenons un modèle simple
ElasticSearch
12
Pourquoi un moteur de recherche ?
‣ Match par champs
‣ Utiliser des jointures
‣ Construire une clause WHERE
‣ Et, ajouter les index en bases
ElasticSearch
13
ElasticSearch
14
ElasticSearch
15
La promesse est de simplifier la recherche au maximum via un seul champ.
Un middleware de donnéesElasticSearch
16
‣ NoSQL orienté document
‣ Apache Lucene
‣ API simple HTTP / REST + JSON
‣ Hautement disponible
‣ Cloud ready
Points fortsElasticSearch
17
Démarrage rapide : 5 minutes suffisent pour se lancer
Schemaless
convention over configuration
Scalabilité sous stéroïde
ElasticSearch Demo
18
Use CaseMigration d’une base de commande ...
2
Base de commandeProjet de refonte
Une base historique de commandes sous Oracle
Le système de gestion de commande est recréée de 0
La nouvelle base de données sera hébergée sous MongoDB
Il faut assurer l’accès aux anciennes commandes qui ne seront pas migrées
Exigences
Unifier
Enrichir
Scaler horizontalement
Temps réel
Du SGBDR vers
Elastic Search
Modele relationnel
Du relationnel au document
23
Article
Promotion
Acheteur
commande
Modele Document
Commande
Promotion
Article
Article
Acheteur
Intégrer les commandes
24
Oracle
ElasticSearchcluster
Dénormaliser
MongoDb
Importer les donnéesRiver Plugin
25
‣ Code exécuté périodiquement par ElasticSearch
‣ Permet d’indexer des données par paquet
‣ Et de maintenir l’index à jour
Recherche unifiée
26
Architecture obtenue
Front
Front
ElasticSearchcluster
Oracle MongoDb
Recherche unifiée
27
Objectif atteint
Vers de nouveaux usages
3
Facettes
B.I.
Recherche a facettes
29
‣ Combien de commandes sont en cours de préparation dans un relai colis avec l’article défectueux ?
‣ Les back offices intègrent une navigation par facette pour répondre à ces questions :
Facette par termes
30
Nombre de commandes par statut
Facette par range
31
Nombre de commande par tranche
Meilleur expérience utilisateur
32
‣ Une navigation par facette permet d’affiner la recherche
‣ Fournit la possibilité de naviguer dans l’index en mode exploratoire
CatalogueRecherche exploratoire
33
Pour aller plus loin ....
34
BI et monitoring métier
Monitoring métier
35
‣ Commandes en attente de traitement
‣ Alerte de seuil
‣ Commandes en contrôle anti-fraude
‣ Commandes avec assurance
‣ ... avec promotion
Etats des commandes
2390
3471
1589
2941
Monitoring métier
36
‣ Facette de type histogramme
37
La percolation
‣ Ajoutez des recherches au percolateur
‣ Identifiez à la volée les documents qui y correspondent
‣ Levez l’alerte correspondante
LogsCentralisation et exploitation
4
39
Centralisation des logsIndexez les logs
‣ Plusieurs outils du marché
‣ Pour collecter les logs et les importer dans un cluster ElasticSearch
40
Centralisation des logsExploitez vos données avec Kibana
41
Kibana - Demo
Et +Autres feature, roadmap, ...
5
Quelques fonctions
43
Recherche géographique
44
Quelques fonctionsAPI de suggestion
Quelques fonctions
45
Intégration native avec Hadoop
Vers la 1.0Road map
46
‣ Refonte et enrichissement de l’API de facette
‣ Full cluster restart for upgrades support
‣ Outillage des backup / restore
‣ ...
Références
47
Merci de votre
attention
Des questions ?