SlideShare une entreprise Scribd logo
1
REALISE PAR:
ELFILALI TAOUFIQ
2018/2019
1
2
3
4
5
6
plan
Introduction
La bonne pratique Ealstic Stack
Les bases d’Elasticsearch
Installation et Pratique
Mapping
ElasticSearch vs Hadoop
2
ElasticSearch est un moteur de recherche Open Source(Apache 2). Il utilise
la librairie Apache Lucene et indexe les données sous forme de documents.
Sa mise en place est facile et rapide.
Il possède des avantages indéniables dont :
 recherche en quasi temps réel
 scalable, Haute disponibilité
 automatiquement sauvegardé et répliqué
 API REST
La Première version a été en 2010
La dernière version est 6.4.3 publié le 06 Novembre 2018
3
Introduction
Logstash est un pipeline de traitement de
données côté serveur qui ingère des données
provenant de plusieurs sources simultanément,
les transforme et les envoie ensuite dans une
"réserve" comme Elasticsearch, et
un ETL (initialement destiné aux logs).
Kibana permet aux utilisateurs de visualiser
des données avec des diagrammes et des
graphiques dans Elasticsearch.
4
Introduction
5
Introduction
6
Simplicité
Elasticsearch dissimule toute la complexité derrière l'API. Il est possible de l'utiliser
avec la configuration par défaut, ou de tout redéfinir manuellement : indexation,
réplication, clusterisation, tout se fait automatiquement.
Scalabilité,vitesse
D'un serveur local à une architecture distribuée gérant des péta octets de données
Des recherches quasiment en temps réel.
Modulaire
Un système de plugins permet d'ajouter des fonctionnalités à celles de base proposées par
Elasticsearch :
Sécurité, monitoring, alerting, reporting
Pourquoi Elasticsearch?
Les bases de
Elasticsearch
7
Document
Document : Un simple enregistrement dans un shard Elasticsearch.
Un document est structuré comme un objet JSON et doit appartenir à
un type (qui défini sa structure).
Exemple d'un document de type Ville
8
Les bases d’Elasticsearch
{
"title" : "Star Wars",
"directors" : ["George Lucas"],
"release_date" : "1977-05-25T00:00:00Z",
"rating" : 8.7,
"genres" : ["Action","Adventure","Fantasy","Sci-Fi"],
"plot" : "Luke Skywalker joins forces with a Jedi Knight, a cocky pilot, a wookiee and two droids to
save the universe from the Empire's world-destroying battle-station, while also attempting to
rescue Princess Leia from the evil Darth Vader.",
"actors" : ["Mark Hamill","Harrison Ford","Carrie Fisher"],
"year" : 1977
}
Noeud
Correspond à un processus d'Elasticsearch en cours d’exécution.
Cluster
Cluster : Il est composé d’un à plusieurs Node. Un noeud maître est
choisi, il sera remplacé en cas de défaillance.
Shard
Correspond à une instance Lucène.
9
Les bases d’Elasticsearch
Index
Un index est un espace logique de stockage de documents de même
type, découpé sur un à plusieurs Primary Shards.
Un index peut être répliqué sur zéro ou plusieurs Secondary Shards
Primary Shards
C'est une partition de l'index. Par défaut, l'index est découpé en 5
Shards Primary. Il n'est pas possible de changer le nombre de
Shards après sa création.
Secondary Shards
Il s'agit de de copies de Primary Shards. Il peut y en avoir zéro à
plusieurs par Primary Shard. Ce comportement est adopté à des fin de
performance et de sécurisation des données.
10
Les bases d’Elasticsearch
11
Les bases d’Elasticsearch
12
Les bases d’Elasticsearch
13
Les bases d’Elasticsearch
SGBDR ELASTICSEARCH
Base de données Index ES
Tables de la BD Indices de l’index ES
Colonnes de la table Types de l’indice /propriétés des
documents JSON
Lignes de la table Documents de l’indice
{
"title" : "Star Wars",
"directors" : ["George Lucas"],
"release_date" : "1977-05-25T00:00:00Z",
"rating" : 8.7,
"genres" : ["Action","Adventure","Fantasy","Sci-Fi"],
}
Installation
et pratique
14
 On peut même ignorer complètement l'installation en utilisant le service hébergé
Elasticsearch sur Elastic Cloud. Vous pouvez essayer le service hébergé
gratuitement.
15
 Elasticsearch requiert au moins Java 8,Autant
dire qu'avant d'installer Elasticsearch, vérifiez
d'abord votre version de Java
java -version
echo $JAVA_HOME
 Téléchargez Elasticsearch 6.4.3 comme suit:
curl -L -O
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-
6.4.3.tar.gz
installation
16
 Puis extrayez-le comme suit: tar -xvf elasticsearch-6.4.3.tar.gz
 Il va ensuite créer un tas de fichiers et
de dossiers dans notre répertoire
actuel. Nous allons ensuite dans le
répertoire bin comme suit
cd elasticsearch-6.4.3/bin
 Et maintenant, nous sommes prêts à démarrer
notre nœud et notre cluster unique:
./elasticsearch
installation
installation
ElasticSearch offre une API REST permettant d’effectuer tous
types d’opération. Il supporte les méthodes HTTP (GET, PUT,
POST et DELETE).
curl -XPUT 'http://localhost:9200/[index]/[type]/[id]/[action]'
Index : Nom de l’index
Type : Nom du type du document
Id : ID du document
Action : Action à effectuer
18
pratique
Création d’un index
19
pratique
Suppression d’un index
Chercher un index
20
Indexer un document
pratique
réponse
21
Modifier le document _doc
pratique
22
Supprimer réponse
pratique
Rechercher un document
23
réponse
pratique
24
Le Mapping
25
Elasticsearch est ‘sans schéma’
 Configurer seulement au besoin
 Mapping explicite créé pour les types non configurés
 Mapping dynamique: appliquer les mapping par défaut
pour les informations extraites du document JSON.
Le Mapping
26
Mapping = Définir comment les documents sont
analysés et indexés:
 Les types des champs/objets du document.
 Les relations entre les documents.
 La gestion des méta-données du document.
 La définition de la pertinence par champ/document (boosting)
Le Mapping
Le Mapping pourquoi?
27
 Adapter l’analyse de données à un domaine métier spécifique
 Adapter la recherche aux utilisateurs :
terminologies spécifiques, multi-langages.
 Certaines fonctionnalités l’exigent : Tri,Agrégation
Le Mapping dynamique
28
 Les champs et les types de mappage n'ont pas besoin d'être
définis avant d'être utilisés.
 Grâce au mappage dynamique, de nouveaux noms de champs
seront ajoutés automatiquement, simplement en indexant un
document.
 Les règles de mappage dynamique peuvent être configurées
pour personnaliser le mappage utilisé pour les nouveaux
champs.
Le Mapping explicite
29
 Vous en savez plus sur vos données qu'Elasticsearch ne peut
en deviner.
 Ainsi, bien que le mappage dynamique puisse être utile pour
commencer, vous souhaiterez éventuellement spécifier vos
propres mappages explicites.
 Vous pouvez créer des mappages de champs lorsque vous créez
un index et vous pouvez ajouter des champs à un index
existant avec l'API de mappage PUT.
Exemple de Mapping
30
Un mappage peut être spécifié lors de la création d'un index, comme suit:
31
Elasticsearch
vs
Hadoop
Les principales différences
32
Hadoop offre beaucoup plus de flexibilité avec une variété d’outils, par rapport à ES.
Hadoop peut stocker une grande quantité de données, contrairement à ES.
Hadoop peut gérer des traitements étendus et une logique complexe, où ES ne peut
gérer qu'un traitement limité et un type de logique d'agrégation de base
comparaison
33
Base de comparaison Hadoop ElasticSearch
Principe fonctionnel Basé sur MapReduce Basé sur JSON et donc langage spécifique à un
domaine
complexité La manipulation de MapReduce est relativement
complexe
DSL basé sur JSON est assez facile à
comprendre et à mettre en œuvre
schéma Hadoop est basé sur la technologie NoSQL. Il
est donc facile de télécharger des données dans
n'importe quel format de valeur clé
recommande que les données soient au format
générique clé-valeur avant le téléchargement
Transfert groupé Le transfert groupé n'est pas un défi ici Les ES possèdent une certaine limite tampon,
Mais cela pourrait être prolongé après avoir
analysé l'échec survenu à quel point
LA BONNE PRATIQUE
ELASTIC STACK
34
Mise en place de Logstash
Logstash est un outil très puissant et polyvalent.
Décomposition du traitement en 3 zones :
 Les entrées
 Les filtres
 Les sorties
Il est très polyvalent car il est capable de traiter tout ce qui
ressemble de près ou de loin à du texte.
Les plugins de sortie sont également très variés.
36
36
Les entrées
# Input à partir d'un fichier
input {
file {
path => ...
}
}
# Input à partir d'une base de données MySQL
input {
jdbc {
jdbc_driver_library => "/path/to/mysql-connector-java-5.1.33-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://host:port/database"
jdbc_user => "user"
jdbc_password => "password"
statement => "SELECT ..."
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
}
}
37
Les filtres
c'est sa capacité à pouvoir filtrer tous les types possibles de données:
 d'extraire les données
 d'analyser les données
 de nettoyer les donnée
filter {
# Lecture d'un fichier csv
csv {
columns => ["col1","col2","col3"]
separator => ";"
}
}
38
Les sorties
# Sortie vers la console
output {
stdout { codec => rubydebug }
}
# Sotie vers une base elasticsearch
output {
elasticsearch {
host => "elasticsearch_host"
cluster => "elastic_cluster"
port => "9300"
index => "mon-index-%{+YYYY.MM.dd}"
protocol => "transport"
}
}
39
Mise en place de kibana
Kibana est un outil graphique qui permet de requêter une base
elasticsearch et de réaliser des graphes à partir des données
qu'elle contient.
40
Mise en place de kibana
Kibana se compose de plusieurs onglets :
 Discover : Cet onglet permet de faire des recherches via la barre dédiée et de
voir les résultats bruts stockés dans la base elasticsearch
 Visualize : Cet onglet permet de réaliser différents types de graphes à partir
d'une requête enregistrée ou à partir d'une nouvelle requête
 Dashboard : Cet onglet permet de regrouper plusieurs graphes réalisés au
préalable dans l'onglet visualize sur une même page
Résumé
41
Merci pour votre
attention
WIBOGRAPHIE
http://elastic.co
https://stph.scenari-community.org/contribs/nos/es5/co/es5.html
https://www.educba.com/hadoop-vs-elasticsearch/
Des questions?
42

Contenu connexe

Tendances

Elastic Stack ELK, Beats, and Cloud
Elastic Stack ELK, Beats, and CloudElastic Stack ELK, Beats, and Cloud
Elastic Stack ELK, Beats, and Cloud
Joe Ryan
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Ruslan Zavacky
 
Elastic search overview
Elastic search overviewElastic search overview
Elastic search overview
ABC Talks
 
Elasticsearch for beginners
Elasticsearch for beginnersElasticsearch for beginners
Elasticsearch for beginners
Neil Baker
 
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
Rahul K Chauhan
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Divij Sehgal
 
Elasticsearch From the Bottom Up
Elasticsearch From the Bottom UpElasticsearch From the Bottom Up
Elasticsearch From the Bottom Up
foundsearch
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Ismaeel Enjreny
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in action
Codemotion
 
Centralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackCentralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stack
Rich Lee
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
hypto
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
Vikram Shinde
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
Mohamed hedi Abidi
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Hermeto Romano
 
Elasticsearch presentation 1
Elasticsearch presentation 1Elasticsearch presentation 1
Elasticsearch presentation 1
Maruf Hassan
 
Elasticsearch 簡介
Elasticsearch 簡介Elasticsearch 簡介
Elasticsearch 簡介
Jui An Huang (黃瑞安)
 
Elk - An introduction
Elk - An introductionElk - An introduction
Elk - An introduction
Hossein Shemshadi
 
Elasticsearch development case
Elasticsearch development caseElasticsearch development case
Elasticsearch development case
일규 최
 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
Roopendra Vishwakarma
 
An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
Jurriaan Persyn
 

Tendances (20)

Elastic Stack ELK, Beats, and Cloud
Elastic Stack ELK, Beats, and CloudElastic Stack ELK, Beats, and Cloud
Elastic Stack ELK, Beats, and Cloud
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Elastic search overview
Elastic search overviewElastic search overview
Elastic search overview
 
Elasticsearch for beginners
Elasticsearch for beginnersElasticsearch for beginners
Elasticsearch for beginners
 
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Elasticsearch From the Bottom Up
Elasticsearch From the Bottom UpElasticsearch From the Bottom Up
Elasticsearch From the Bottom Up
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in action
 
Centralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackCentralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stack
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Elasticsearch presentation 1
Elasticsearch presentation 1Elasticsearch presentation 1
Elasticsearch presentation 1
 
Elasticsearch 簡介
Elasticsearch 簡介Elasticsearch 簡介
Elasticsearch 簡介
 
Elk - An introduction
Elk - An introductionElk - An introduction
Elk - An introduction
 
Elasticsearch development case
Elasticsearch development caseElasticsearch development case
Elasticsearch development case
 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
 
An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
 

Similaire à Elastic serach

code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
ABES
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
Amal Abid
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
Dr Hajji Hicham
 
Alphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
MICHRAFY MUSTAFA
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
Noël Bardelot
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
David Pilato
 
Big sql4meetup
Big sql4meetupBig sql4meetup
Big sql4meetup
Jacques Milman
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08Loïc Descotte
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
Arrow-Institute
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
Arrow Group
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
Microsoft
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
Blandine Larbret
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - Elasticsearch
David Pilato
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
Alexis Seigneurin
 
Consolidez vos journaux et vos métriques avec Elastic Beats
Consolidez vos journaux et vos métriques avec Elastic BeatsConsolidez vos journaux et vos métriques avec Elastic Beats
Consolidez vos journaux et vos métriques avec Elastic Beats
gcatt
 
160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx
majdoulineaitabdelal
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
Lilia Sfaxi
 

Similaire à Elastic serach (20)

code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
 
Alphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentaux
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
Big sql4meetup
Big sql4meetupBig sql4meetup
Big sql4meetup
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - Elasticsearch
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Consolidez vos journaux et vos métriques avec Elastic Beats
Consolidez vos journaux et vos métriques avec Elastic BeatsConsolidez vos journaux et vos métriques avec Elastic Beats
Consolidez vos journaux et vos métriques avec Elastic Beats
 
160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 

Dernier

Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
contact Elabe
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
contact Elabe
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
contact Elabe
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
contact Elabe
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
La Fabrique de l'industrie
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
Institut de l'Elevage - Idele
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Institut de l'Elevage - Idele
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
contact Elabe
 
Les Français et les élections législatives
Les Français et les élections législativesLes Français et les élections législatives
Les Français et les élections législatives
contact Elabe
 
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
contact Elabe
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
contact Elabe
 

Dernier (11)

Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
 
Les Français et les élections législatives
Les Français et les élections législativesLes Français et les élections législatives
Les Français et les élections législatives
 
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
 

Elastic serach

  • 2. 1 2 3 4 5 6 plan Introduction La bonne pratique Ealstic Stack Les bases d’Elasticsearch Installation et Pratique Mapping ElasticSearch vs Hadoop 2
  • 3. ElasticSearch est un moteur de recherche Open Source(Apache 2). Il utilise la librairie Apache Lucene et indexe les données sous forme de documents. Sa mise en place est facile et rapide. Il possède des avantages indéniables dont :  recherche en quasi temps réel  scalable, Haute disponibilité  automatiquement sauvegardé et répliqué  API REST La Première version a été en 2010 La dernière version est 6.4.3 publié le 06 Novembre 2018 3 Introduction
  • 4. Logstash est un pipeline de traitement de données côté serveur qui ingère des données provenant de plusieurs sources simultanément, les transforme et les envoie ensuite dans une "réserve" comme Elasticsearch, et un ETL (initialement destiné aux logs). Kibana permet aux utilisateurs de visualiser des données avec des diagrammes et des graphiques dans Elasticsearch. 4 Introduction
  • 6. 6 Simplicité Elasticsearch dissimule toute la complexité derrière l'API. Il est possible de l'utiliser avec la configuration par défaut, ou de tout redéfinir manuellement : indexation, réplication, clusterisation, tout se fait automatiquement. Scalabilité,vitesse D'un serveur local à une architecture distribuée gérant des péta octets de données Des recherches quasiment en temps réel. Modulaire Un système de plugins permet d'ajouter des fonctionnalités à celles de base proposées par Elasticsearch : Sécurité, monitoring, alerting, reporting Pourquoi Elasticsearch?
  • 8. Document Document : Un simple enregistrement dans un shard Elasticsearch. Un document est structuré comme un objet JSON et doit appartenir à un type (qui défini sa structure). Exemple d'un document de type Ville 8 Les bases d’Elasticsearch { "title" : "Star Wars", "directors" : ["George Lucas"], "release_date" : "1977-05-25T00:00:00Z", "rating" : 8.7, "genres" : ["Action","Adventure","Fantasy","Sci-Fi"], "plot" : "Luke Skywalker joins forces with a Jedi Knight, a cocky pilot, a wookiee and two droids to save the universe from the Empire's world-destroying battle-station, while also attempting to rescue Princess Leia from the evil Darth Vader.", "actors" : ["Mark Hamill","Harrison Ford","Carrie Fisher"], "year" : 1977 }
  • 9. Noeud Correspond à un processus d'Elasticsearch en cours d’exécution. Cluster Cluster : Il est composé d’un à plusieurs Node. Un noeud maître est choisi, il sera remplacé en cas de défaillance. Shard Correspond à une instance Lucène. 9 Les bases d’Elasticsearch
  • 10. Index Un index est un espace logique de stockage de documents de même type, découpé sur un à plusieurs Primary Shards. Un index peut être répliqué sur zéro ou plusieurs Secondary Shards Primary Shards C'est une partition de l'index. Par défaut, l'index est découpé en 5 Shards Primary. Il n'est pas possible de changer le nombre de Shards après sa création. Secondary Shards Il s'agit de de copies de Primary Shards. Il peut y en avoir zéro à plusieurs par Primary Shard. Ce comportement est adopté à des fin de performance et de sécurisation des données. 10 Les bases d’Elasticsearch
  • 13. 13 Les bases d’Elasticsearch SGBDR ELASTICSEARCH Base de données Index ES Tables de la BD Indices de l’index ES Colonnes de la table Types de l’indice /propriétés des documents JSON Lignes de la table Documents de l’indice { "title" : "Star Wars", "directors" : ["George Lucas"], "release_date" : "1977-05-25T00:00:00Z", "rating" : 8.7, "genres" : ["Action","Adventure","Fantasy","Sci-Fi"], }
  • 15.  On peut même ignorer complètement l'installation en utilisant le service hébergé Elasticsearch sur Elastic Cloud. Vous pouvez essayer le service hébergé gratuitement. 15  Elasticsearch requiert au moins Java 8,Autant dire qu'avant d'installer Elasticsearch, vérifiez d'abord votre version de Java java -version echo $JAVA_HOME  Téléchargez Elasticsearch 6.4.3 comme suit: curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch- 6.4.3.tar.gz installation
  • 16. 16  Puis extrayez-le comme suit: tar -xvf elasticsearch-6.4.3.tar.gz  Il va ensuite créer un tas de fichiers et de dossiers dans notre répertoire actuel. Nous allons ensuite dans le répertoire bin comme suit cd elasticsearch-6.4.3/bin  Et maintenant, nous sommes prêts à démarrer notre nœud et notre cluster unique: ./elasticsearch installation
  • 18. ElasticSearch offre une API REST permettant d’effectuer tous types d’opération. Il supporte les méthodes HTTP (GET, PUT, POST et DELETE). curl -XPUT 'http://localhost:9200/[index]/[type]/[id]/[action]' Index : Nom de l’index Type : Nom du type du document Id : ID du document Action : Action à effectuer 18 pratique
  • 19. Création d’un index 19 pratique Suppression d’un index Chercher un index
  • 21. 21 Modifier le document _doc pratique
  • 25. 25 Elasticsearch est ‘sans schéma’  Configurer seulement au besoin  Mapping explicite créé pour les types non configurés  Mapping dynamique: appliquer les mapping par défaut pour les informations extraites du document JSON. Le Mapping
  • 26. 26 Mapping = Définir comment les documents sont analysés et indexés:  Les types des champs/objets du document.  Les relations entre les documents.  La gestion des méta-données du document.  La définition de la pertinence par champ/document (boosting) Le Mapping
  • 27. Le Mapping pourquoi? 27  Adapter l’analyse de données à un domaine métier spécifique  Adapter la recherche aux utilisateurs : terminologies spécifiques, multi-langages.  Certaines fonctionnalités l’exigent : Tri,Agrégation
  • 28. Le Mapping dynamique 28  Les champs et les types de mappage n'ont pas besoin d'être définis avant d'être utilisés.  Grâce au mappage dynamique, de nouveaux noms de champs seront ajoutés automatiquement, simplement en indexant un document.  Les règles de mappage dynamique peuvent être configurées pour personnaliser le mappage utilisé pour les nouveaux champs.
  • 29. Le Mapping explicite 29  Vous en savez plus sur vos données qu'Elasticsearch ne peut en deviner.  Ainsi, bien que le mappage dynamique puisse être utile pour commencer, vous souhaiterez éventuellement spécifier vos propres mappages explicites.  Vous pouvez créer des mappages de champs lorsque vous créez un index et vous pouvez ajouter des champs à un index existant avec l'API de mappage PUT.
  • 30. Exemple de Mapping 30 Un mappage peut être spécifié lors de la création d'un index, comme suit:
  • 32. Les principales différences 32 Hadoop offre beaucoup plus de flexibilité avec une variété d’outils, par rapport à ES. Hadoop peut stocker une grande quantité de données, contrairement à ES. Hadoop peut gérer des traitements étendus et une logique complexe, où ES ne peut gérer qu'un traitement limité et un type de logique d'agrégation de base
  • 33. comparaison 33 Base de comparaison Hadoop ElasticSearch Principe fonctionnel Basé sur MapReduce Basé sur JSON et donc langage spécifique à un domaine complexité La manipulation de MapReduce est relativement complexe DSL basé sur JSON est assez facile à comprendre et à mettre en œuvre schéma Hadoop est basé sur la technologie NoSQL. Il est donc facile de télécharger des données dans n'importe quel format de valeur clé recommande que les données soient au format générique clé-valeur avant le téléchargement Transfert groupé Le transfert groupé n'est pas un défi ici Les ES possèdent une certaine limite tampon, Mais cela pourrait être prolongé après avoir analysé l'échec survenu à quel point
  • 35. Mise en place de Logstash Logstash est un outil très puissant et polyvalent. Décomposition du traitement en 3 zones :  Les entrées  Les filtres  Les sorties Il est très polyvalent car il est capable de traiter tout ce qui ressemble de près ou de loin à du texte. Les plugins de sortie sont également très variés. 36
  • 36. 36 Les entrées # Input à partir d'un fichier input { file { path => ... } } # Input à partir d'une base de données MySQL input { jdbc { jdbc_driver_library => "/path/to/mysql-connector-java-5.1.33-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://host:port/database" jdbc_user => "user" jdbc_password => "password" statement => "SELECT ..." jdbc_paging_enabled => "true" jdbc_page_size => "50000" } }
  • 37. 37 Les filtres c'est sa capacité à pouvoir filtrer tous les types possibles de données:  d'extraire les données  d'analyser les données  de nettoyer les donnée filter { # Lecture d'un fichier csv csv { columns => ["col1","col2","col3"] separator => ";" } }
  • 38. 38 Les sorties # Sortie vers la console output { stdout { codec => rubydebug } } # Sotie vers une base elasticsearch output { elasticsearch { host => "elasticsearch_host" cluster => "elastic_cluster" port => "9300" index => "mon-index-%{+YYYY.MM.dd}" protocol => "transport" } }
  • 39. 39 Mise en place de kibana Kibana est un outil graphique qui permet de requêter une base elasticsearch et de réaliser des graphes à partir des données qu'elle contient.
  • 40. 40 Mise en place de kibana Kibana se compose de plusieurs onglets :  Discover : Cet onglet permet de faire des recherches via la barre dédiée et de voir les résultats bruts stockés dans la base elasticsearch  Visualize : Cet onglet permet de réaliser différents types de graphes à partir d'une requête enregistrée ou à partir d'une nouvelle requête  Dashboard : Cet onglet permet de regrouper plusieurs graphes réalisés au préalable dans l'onglet visualize sur une même page

Notes de l'éditeur

  1. Kibana et Logstach
  2. Les grandes sociétés qui l’utilisent
  3. Pourquoi elasticsearch?
  4. Schéma générale d’un cluster
  5. Mais à la différence de MongoDB, le nombre de shards est est défini à la création de l'index et ne peut pas être modifié par la suite. Tout à fait : en ajoutant un noeud, Elasticsearch va équilibrer les shards sur les différents noeuds. Pour assurer la disponibilité des données en cas de crash, il faut activer la réplication.
  6. Les index sont divisés en shards et les shards ont des réplicas. Les shards et les réplicas sont distribués entre les différents nœuds d'un cluster Elasticsearch : Le nombre de shards détermine la capacité du cluster à distribuer les opérations d'écriture entre les différents nœuds. S'ils ne sont pas assez nombreux, l'ajout de nœuds n'améliorera pas les performances d'écriture. Et s'ils sont trop nombreux, ils encombreront la RAM. Le nombre de réplicas détermine la capacité du cluster à distribuer les opérations de lecture, ainsi que la tolérance aux pannes. S'ils sont trop nombreux, ils occuperont un espace disque trop important. Et si leur nombre est faible, cela aura une incidence sur les performances de lecture et la tolérance aux pannes.
  7. C’est quoi le mapping
  8. Pourqoui?
  9. Mapp dynamique
  10. Mapp explicite
  11. Logstash
  12. Les entrées
  13. filtres
  14. Les sorties
  15. kibana