SlideShare une entreprise Scribd logo
1  sur  42
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

Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for EveryoneAlexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for EveryoneZabbix
 
The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS NATS
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack주표 홍
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용NAVER D2
 
Deploying On-Prem as SaaS: Why we go with Ansible
Deploying On-Prem as SaaS: Why we go with AnsibleDeploying On-Prem as SaaS: Why we go with Ansible
Deploying On-Prem as SaaS: Why we go with AnsibleMartin Etmajer
 
Couchbase presentation
Couchbase presentationCouchbase presentation
Couchbase presentationsharonyb
 
Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance TuningRicardo Santos
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with AnsibleRayed Alrashed
 
OpenStack Administration by Mobarak Hossain Group Organizer Bangladesh
OpenStack Administration by Mobarak Hossain Group Organizer BangladeshOpenStack Administration by Mobarak Hossain Group Organizer Bangladesh
OpenStack Administration by Mobarak Hossain Group Organizer BangladeshMobarak Hossain
 
An overview of Amazon Athena
An overview of Amazon AthenaAn overview of Amazon Athena
An overview of Amazon AthenaJulien SIMON
 
Lessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure codeLessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure codeYevgeniy Brikman
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
 
Azure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDBAzure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDBNicholas Vossburg
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeMartin Schütte
 
Service Function Chaining in Openstack Neutron
Service Function Chaining in Openstack NeutronService Function Chaining in Openstack Neutron
Service Function Chaining in Openstack NeutronMichelle Holley
 
Simplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache SparkSimplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache SparkDatabricks
 

Tendances (20)

Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for EveryoneAlexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
 
Log analytics with ELK stack
Log analytics with ELK stackLog analytics with ELK stack
Log analytics with ELK stack
 
The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용
 
Deploying On-Prem as SaaS: Why we go with Ansible
Deploying On-Prem as SaaS: Why we go with AnsibleDeploying On-Prem as SaaS: Why we go with Ansible
Deploying On-Prem as SaaS: Why we go with Ansible
 
Couchbase presentation
Couchbase presentationCouchbase presentation
Couchbase presentation
 
Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
OpenStack Administration by Mobarak Hossain Group Organizer Bangladesh
OpenStack Administration by Mobarak Hossain Group Organizer BangladeshOpenStack Administration by Mobarak Hossain Group Organizer Bangladesh
OpenStack Administration by Mobarak Hossain Group Organizer Bangladesh
 
An overview of Amazon Athena
An overview of Amazon AthenaAn overview of Amazon Athena
An overview of Amazon Athena
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Lessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure codeLessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure code
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
 
Azure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDBAzure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDB
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as Code
 
Service Function Chaining in Openstack Neutron
Service Function Chaining in Openstack NeutronService Function Chaining in Openstack Neutron
Service Function Chaining in Openstack Neutron
 
Simplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache SparkSimplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache Spark
 

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'ABESABES
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.xDr 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 fondamentauxAlphorm
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsMICHRAFY MUSTAFA
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 
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
 
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 DataArrow 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 webmediaMicrosoft
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - ElasticsearchDavid 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 Beatsgcatt
 
160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptxmajdoulineaitabdelal
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia 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
 
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
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
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

Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...France Travail
 
Les Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel MacronLes Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel Macroncontact Elabe
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentationbahija babzine
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023France Travail
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxbahija babzine
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attalcontact Elabe
 

Dernier (7)

Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
 
Les Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel MacronLes Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel Macron
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptx
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
 

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