48
Tirer le meilleur de ses données avec ElasticSearch

Tirer le meilleur de ses données avec ElasticSearch

Embed Size (px)

DESCRIPTION

Qu'est-ce qu'un moteur de recherche ? Qu'est-ce qu'ElasticSearch ? Comment l'utiliser dans le monde réel et peut-on aller plus loin que la recherche full texte ?

Citation preview

Page 1: Tirer le meilleur de ses données avec ElasticSearch

Tirer le meilleur de ses données avec ElasticSearch

Page 2: 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

Page 3: Tirer le meilleur de ses données avec ElasticSearch

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

Page 4: Tirer le meilleur de ses données avec ElasticSearch

ElasticSearchOui ! mais c’est quoi ?

1

Page 5: Tirer le meilleur de ses données avec ElasticSearch

Qu’est-ce qu’un moteur de recherche ?

ElasticSearch

5

Page 6: Tirer le meilleur de ses données avec ElasticSearch

Un moteur d’indexationElasticSearch

6

Document

Page 7: Tirer le meilleur de ses données avec ElasticSearch

7

Comment indexer ?ElasticSearch

Page 8: Tirer le meilleur de ses données avec ElasticSearch

Un moteur de recherche dans l’indexElasticSearch

8

Page 9: Tirer le meilleur de ses données avec ElasticSearch

Construire l’index

9

cleanup tokenize

stop wordstransform

Document

Page 10: Tirer le meilleur de ses données avec ElasticSearch

Alors pourquoi utiliser un moteur de recherche ?

ElasticSearch

10

Page 11: Tirer le meilleur de ses données avec ElasticSearch

Une base de données SQL n’est pas faite pour la recherche

ElasticSearch

11

Prenons un modèle simple

Page 12: Tirer le meilleur de ses données avec ElasticSearch

ElasticSearch

12

Pourquoi un moteur de recherche ?

‣ Match par champs

‣ Utiliser des jointures

‣ Construire une clause WHERE

‣ Et, ajouter les index en bases

Page 13: Tirer le meilleur de ses données avec ElasticSearch

ElasticSearch

13

Page 14: Tirer le meilleur de ses données avec ElasticSearch

ElasticSearch

14

Page 15: Tirer le meilleur de ses données avec ElasticSearch

ElasticSearch

15

La promesse est de simplifier la recherche au maximum via un seul champ.

Page 16: Tirer le meilleur de ses données avec ElasticSearch

Un middleware de donnéesElasticSearch

16

‣ NoSQL orienté document

‣ Apache Lucene

‣ API simple HTTP / REST + JSON

‣ Hautement disponible

‣ Cloud ready

Page 17: Tirer le meilleur de ses données avec ElasticSearch

Points fortsElasticSearch

17

Démarrage rapide : 5 minutes suffisent pour se lancer

Schemaless

convention over configuration

Scalabilité sous stéroïde

Page 18: Tirer le meilleur de ses données avec ElasticSearch

ElasticSearch Demo

18

Page 19: Tirer le meilleur de ses données avec ElasticSearch

Use CaseMigration d’une base de commande ...

2

Page 20: Tirer le meilleur de ses données avec ElasticSearch

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

Page 21: Tirer le meilleur de ses données avec ElasticSearch

Exigences

Unifier

Enrichir

Scaler horizontalement

Temps réel

Page 22: Tirer le meilleur de ses données avec ElasticSearch

Du SGBDR vers

Elastic Search

Page 23: Tirer le meilleur de ses données avec ElasticSearch

Modele relationnel

Du relationnel au document

23

Article

Promotion

Acheteur

commande

Modele Document

Commande

Promotion

Article

Article

Acheteur

Page 24: Tirer le meilleur de ses données avec ElasticSearch

Intégrer les commandes

24

Oracle

ElasticSearchcluster

Dénormaliser

MongoDb

Page 25: Tirer le meilleur de ses données avec ElasticSearch

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

Page 26: Tirer le meilleur de ses données avec ElasticSearch

Recherche unifiée

26

Architecture obtenue

Front

Front

ElasticSearchcluster

Oracle MongoDb

Page 27: Tirer le meilleur de ses données avec ElasticSearch

Recherche unifiée

27

Objectif atteint

Page 28: Tirer le meilleur de ses données avec ElasticSearch

Vers de nouveaux usages

3

Facettes

B.I.

Page 29: Tirer le meilleur de ses données avec ElasticSearch

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 :

Page 30: Tirer le meilleur de ses données avec ElasticSearch

Facette par termes

30

Nombre de commandes par statut

Page 31: Tirer le meilleur de ses données avec ElasticSearch

Facette par range

31

Nombre de commande par tranche

Page 32: Tirer le meilleur de ses données avec ElasticSearch

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

Page 33: Tirer le meilleur de ses données avec ElasticSearch

CatalogueRecherche exploratoire

33

Page 34: Tirer le meilleur de ses données avec ElasticSearch

Pour aller plus loin ....

34

BI et monitoring métier

Page 35: Tirer le meilleur de ses données avec ElasticSearch

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

Page 36: Tirer le meilleur de ses données avec ElasticSearch

Monitoring métier

36

‣ Facette de type histogramme

Page 37: Tirer le meilleur de ses données avec ElasticSearch

37

La percolation

‣ Ajoutez des recherches au percolateur

‣ Identifiez à la volée les documents qui y correspondent

‣ Levez l’alerte correspondante

Page 38: Tirer le meilleur de ses données avec ElasticSearch

LogsCentralisation et exploitation

4

Page 39: Tirer le meilleur de ses données avec ElasticSearch

39

Centralisation des logsIndexez les logs

‣ Plusieurs outils du marché

‣ Pour collecter les logs et les importer dans un cluster ElasticSearch

Page 40: Tirer le meilleur de ses données avec ElasticSearch

40

Centralisation des logsExploitez vos données avec Kibana

Page 41: Tirer le meilleur de ses données avec ElasticSearch

41

Kibana - Demo

Page 42: Tirer le meilleur de ses données avec ElasticSearch

Et +Autres feature, roadmap, ...

5

Page 43: Tirer le meilleur de ses données avec ElasticSearch

Quelques fonctions

43

Recherche géographique

Page 44: Tirer le meilleur de ses données avec ElasticSearch

44

Quelques fonctionsAPI de suggestion

Page 45: Tirer le meilleur de ses données avec ElasticSearch

Quelques fonctions

45

Intégration native avec Hadoop

Page 46: Tirer le meilleur de ses données avec ElasticSearch

Vers la 1.0Road map

46

‣ Refonte et enrichissement de l’API de facette

‣ Full cluster restart for upgrades support

‣ Outillage des backup / restore

‣ ...

Page 47: Tirer le meilleur de ses données avec ElasticSearch

Références

47

Page 48: Tirer le meilleur de ses données avec ElasticSearch

Merci de votre

attention

Des questions ?