48
Tirer le meilleur de ses données avec ElasticSearch

Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Embed Size (px)

Citation preview

Page 1: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Tirer le meilleur de ses données avec ElasticSearch

Page 2: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

ElasticSearchOui ! mais c’est quoi ?

1

Page 5: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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

ElasticSearch

5

Page 6: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Un moteur d’indexationElasticSearch

6

Document

Page 7: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

7

Comment indexer ?ElasticSearch

Page 8: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Un moteur de recherche dans l’indexElasticSearch

8

Page 9: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Construire l’index

9

cleanup tokenize

stop wordstransform

Document

Page 10: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Alors pourquoi utiliser un moteur de recherche ?

ElasticSearch

10

Page 11: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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

ElasticSearch

11

Prenons un modèle simple

Page 12: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

ElasticSearch

13

Page 14: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

ElasticSearch

14

Page 15: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

ElasticSearch

15

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

Page 16: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Un middleware de donnéesElasticSearch

16

‣ NoSQL orienté document

‣ Apache Lucene

‣ API simple HTTP / REST + JSON

‣ Hautement disponible

‣ Cloud ready

Page 17: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Points fortsElasticSearch

17

Démarrage rapide : 5 minutes suffisent pour se lancer

Schemaless

convention over configuration

Scalabilité sous stéroïde

Page 18: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

ElasticSearch Demo

18

Page 19: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Use CaseMigration d’une base de commande ...

2

Page 20: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Exigences

Unifier

Enrichir

Scaler horizontalement

Temps réel

Page 22: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Du SGBDR vers

Elastic Search

Page 23: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Modele relationnel

Du relationnel au document

23

Article

Promotion

Acheteur

commande

Modele Document

Commande

Promotion

Article

Article

Acheteur

Page 24: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Intégrer les commandes

24

Oracle

ElasticSearchcluster

Dénormaliser

MongoDb

Page 25: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Recherche unifiée

26

Architecture obtenue

Front

Front

ElasticSearchcluster

Oracle MongoDb

Page 27: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Recherche unifiée

27

Objectif atteint

Page 28: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Vers de nouveaux usages

3

Facettes

B.I.

Page 29: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Facette par termes

30

Nombre de commandes par statut

Page 31: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Facette par range

31

Nombre de commande par tranche

Page 32: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

CatalogueRecherche exploratoire

33

Page 34: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Pour aller plus loin ....

34

BI et monitoring métier

Page 35: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Monitoring métier

36

‣ Facette de type histogramme

Page 37: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

37

La percolation

‣ Ajoutez des recherches au percolateur

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

‣ Levez l’alerte correspondante

Page 38: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

LogsCentralisation et exploitation

4

Page 39: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

39

Centralisation des logsIndexez les logs

‣ Plusieurs outils du marché

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

Page 40: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

40

Centralisation des logsExploitez vos données avec Kibana

Page 41: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

41

Kibana - Demo

Page 42: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Et +Autres feature, roadmap, ...

5

Page 43: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Quelques fonctions

43

Recherche géographique

Page 44: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

44

Quelques fonctionsAPI de suggestion

Page 45: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Quelques fonctions

45

Intégration native avec Hadoop

Page 46: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

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: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Références

47

Page 48: Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le Mesle

Merci de votre

attention

Des questions ?