Académique Documents
Professionnel Documents
Culture Documents
I- Objectifs
L’objectif de ce workshop consiste à permettre l’apprenant d’explorer les outils ElasticSearch
et Kibana pour stocker les données et visualiser les résultats d’analyses réalisés.
- Wikipedia (http://fr.wikipedia.org)
- The Guardian (http://www.theguardian.com)
- StackOverflow (http://stackoverflow.com/)
- GitHub (https://github.com/)
Comme démontré dans la figure ci-dessous, un cluster ElasticSearch est composé d’un à
plusieurs nœuds. Chaque nœud correspond à une instance ElasticSearch. Un nœud maitre est
choisi, il sera remplacé par un autre nœud en cas de défaillance.
Index : Il s’agit d’un espace logique de stockage de documents de même type, découpé sur un
à plusieurs PrimaryShards et peut être répliqué sur zéro ou plusieurs SecondaryShards.
1
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
PrimaryShard : Par défaut, l’index est découpé en 5 ShardsPrimary. Il n’est pas possible de
changer le nombre de partitions après sa création.
SecondaryShard : Il s’agit des partitions répliquées. Il peut en avoir zéro à plusieurs par
PrimaryShard.
BDR ElasticSearch
2
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
Tables Types
Lignes Documents
Colonnes Champs
sur HTTP. Un client lance une requête HTTP, et le serveur renvoie une réponse. Les réponses
du serveur pour les API REST peuvent être délivrées dans de multiples formats. Dans
ElasticSearch le format utilisé est JSON. Les méthodes supportées sont (GET, PUT, POST et
DELETE) :
- Vert : Tous les Shards primaires et replicas sont actifs (Le cluster fonctionne et la
tolérance aux pannes est assurée).
- Jaune : Tous les Shards primaires sont actifs, mais les Shards replicas ne sont pas tous
actifs (Le cluster fonctionne mais si un nœud tombe la tolérance aux pannes n’est pas
assurée).
- Rouge : Des Shards primaires sont inactifs (Le cluster n’est pas fonctionnel).
4
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
POST /biblio/livres/1
{
"title":"MapReduce",
"description":"Hadoop Data Processing in hadoop ",
"category":"Hadoop",
"tags":["HDFS", "MapReduce", "Hadoop","Cloudera", "big data"]
}
Pour récupérer un document :
GET /biblio/livres/1
POST /biblio/livres/2
{
"title":"HDFS",
"description":" Data Storage in Hadoop ",
"category":"Hadoop",
"tags":["HDFS","Hadoop","Cloudera"]
}
Lister tous les documents d’un index
GET /biblio/livres/_search?pretty
POST /biblio/livres/2/_update
{
"doc" : {
"tags":["big data","HDFS","Hadoop","Cloudera"]
}
}
Vérification :
GET /biblio/livres/2
GET /biblio/livres/_search
{
"query":{
"match":{"tags":"big data"}
}
5
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
Pour afficher la liste des index crées, sous kibana on exécute l’instruction suivante :
GET /_cat/indices?v
delete /biblio/
IV- Scénario
Dans ce scénario, on se focalise sur les données dans les fichiers accounts.zip et logs.jsonl.gz.
IV.1- Chargement des données
Les données dans le fichier accounts.log sont organisées selon le schéma suivant :
{
"account_number": INT,
"balance": INT,
"firstname": "String",
"lastname": "String",
"age": INT,
"gender": "M or F",
"address": "String",
"employer": "String",
"email": "String",
"city": "String",
"state": "String"
}
Cette commande permet d’importer les données du fichiers accounts.json dans le type account
de l’index bank. Pour vérifier, on doit lister le contenu de « account ».
6
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
GET /bank/account/_search?pretty
On peut effectuer une recherche sur ce type, par exemple, on affiche les comptes des utilisateurs
dont l’age est 33.
GET /bank/account/_search
{
"query":{
"match":{"age":"33"}
}
}
2. Le schéma des données logs comporte des dizaines de champs différents, mais les
principaux utilisés dans ce workshop sont les suivants:
{
"memory": INT,
"geo.coordinates": "geo_point"
"@timestamp": "date"
}
Avant de charger les données logs, nous devons configurer des mappings pour le champ
geo.coordinates. Le mapping divise les documents de l’index en groupes logiques et spécifie
les caractéristiques (les types) d’un champ. Dans notre cas, les données logs nécessitent un
mapping pour identifier les paires de latitude et de longitude comme des emplacements
géographiques en appliquant le type geo_point. Pour ce faire, on doit donc définir un mapping
pour les indexes logstash-2015.05.18, logstash-2015.05.19 et logstash-2015.05.20
PUT /logstash-2015.05.20?pretty
"mappings": {
"log": {
"properties": {
"geo": {
} } } }}
PUT /logstash-2015.05.19?pretty
7
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
"mappings": {
"log": {
"properties": {
"geo": {
} } } }}
PUT /logstash-2015.05.18?pretty
"mappings": {
"log": {
"properties": {
"geo": {
} } } }}
Une fois les mappings définis, on doit maintenant charger les données à partir du fichier
logs.json dans l’index logstash en utilisant l’API bulk.
GET _cat/indices?v
GET /logstash-2015.05.20/_search?pretty
GET /logstash-2015.05.19/_search?pretty
GET /logstash-2015.05.18/_search?pretty
8
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
qu’on souhaite explorer. Un index pattern peut correspondre au nom d'un seul index ou inclure
un caractère générique (*) pour faire correspondre plusieurs index.
Par exemple, pour notre cas, nous avons trois indexes crées ayant le format logstash-
YYYY.MMM.DD (logstash-2015.05.18, logstash-2015.05.19 et logstash-2015.05.20). Pour
explorer toutes les données logs de MAI 2018, on peut créer un seul index pattern logstash-*.
Dans Kibana, ouvrez l’onglet « Management », introduire par la suite le nom du pattern choisi
comme démontré dessous.
9
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
10
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
Nous souhaitons par exemple, afficher les personnes dont le numéro de compte est inférieur à
100 et la balance est supérieure à 47500. Pour ce faire, on doit sélectionner l’index pattern
« bank » et introduire la requête suivante :
Par défaut, tous les champs sont affichés, pour choisir des champs spécifiques, on peut les
sélectionner parmi la liste « Available Fields » .
11
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
Notre objectif maintenant est de créer un pie chart qui permet de visualiser le nombre de clients
par balance. Pour ce faire, on doit aller à l’onglet « Visualize » et choisir Pie Chart.
0 999
1000 2999
3000 6999
7000 14999
15000 30999
31000 50000
12
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
Maintenant on souhaite créer un map chart qui permet de visualiser les informations
géographiques dans les fichiers log. Pour ce faire on doit :
13
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
Nous allons créer un dashbord qui va contenir nos deux visualisations « PieExample » et
« MapExample ».
14
Ines Channoufi & Ines Slimene Esprit 2019-2020
Big Data Analytics 4ERP-BI
Dans le même dashboard, on vous demande de représenter le nombre de clients par age.
15
Ines Channoufi & Ines Slimene Esprit 2019-2020