SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Show de boucane pour ELK
François Belleau et Régis Ongaro
du AD Lab
http://compbio.ulaval.ca/
Question de science :
Comment
mange-t-on les
pommes au
Québec ?
Selon Open Food Fact
https://world.openfoodfacts.org/cgi/search.pl
Selon Metro
https://www.metro.ca/epicerie-en-ligne/recherche?filter=pomme&freeText=true
Notre problème :
Comment répondre à cette
question ?
La question du jour :
Comment construire un site
web pour répondre à cette
question ?
Avec
Elasticsearch et
Kibana !
C’est vendredi alors on cuisine...avec la recette ELK
Les ingrédients nécessaires :
● Elasticsearch, un contenant
○ https://www.elastic.co/fr/downloads/elasticsearch
● Kibana, une interface
○ https://www.elastic.co/fr/downloads/kibana
● Postman, pour mesurer
○ https://www.getpostman.com/downloads/
● Python, pour mélanger
○ https://github.com/elastic/elasticsearch-py
● OpenFoodFacts, des données
○ https://world.openfoodfacts.org/cgi/search.pl
D’abord la mise en place
1. Télécharger Elasticsearch et Kibana et les dézipper
2. Lancer Elasticsearch
a. cd /elasticsearc/bin
b. ./elastic
c. GET http://localhost:9200
3. Lancer Kibana
a. cd kibana/bin
b. ./kibana
c. GET http://localhost:5601
4. Installer la librairie python pour Elasticsearch
a. pip install elasticsearch
5. Et bien connaître son JSON
a. https://www.json.org/json-fr.html
Vous connaissez votre JSON ?
https://www.json.org/json-fr.html
https://fr.wikipedia.org/wiki/JavaScript_Object_Notation
JavaScript Object Notation (JSON) est un format de données textuelles dérivé de
la notation des objets du langage JavaScript. Il permet de représenter de
l’information structurée comme le permet XML par exemple. Créé par Douglas
Crockford entre 2002 et 2005, il est actuellement décrit par deux normes en
concurrence : RFC 8259 [archive] de l’IETF et ECMA-4041 de l'ECMA.
Des bibliothèques pour le format JSON existent dans la plupart des langages de
programmation.
dans la plupart des langages de programmation…
c’est vrai !
Sans faire de fautes…
http://json.parser.online.fr/
Une procédure en 3 étapes, comme pour l’ETL
1. Ingérer
2. Transformer
3. Consommer
Ingérer
● Importation d’un fichier CSV ou JSON
● Avec le protocole HTTP
○ CURL, WGET
○ POSTMAN
● Avec Python un document à la fois
● Avec Python en lot avec le mode bulk
Transformer
● En python avec un itérateur
○ ou tout autre langage
● Avec Logstash (le L de ELK)
● Avec le langage Painless
● Avec un ETL supportant JSON
● Comme bon vous semble via des requêtes
REST
Consommer
● En construisant un tableau de bord avec
Kibana
● En utilisant les services APIs REST/JSON
d’Elasticsearch
● En construisant vos propres APIs
● En développant une application mobile ou
HTML5 qui consomme les services REST
Et un peu de théorie.
https://fr.wikipedia.org/wiki/NoSQL
En informatique et en bases de données, NoSQL désigne une famille de
systèmes de gestion de base de données (SGBD) qui s'écarte du paradigme
classique des bases relationnelles. L'explicitation du terme la plus populaire de
l'acronyme est Not only SQL (« pas seulement SQL » en anglais) même si cette
interprétation peut être discutée.
L'architecture machine en clusters induit une structure logicielle distribuée
fonctionnant avec des agrégats répartis sur différents serveurs permettant des
accès et modifications concurrentes mais imposant également de remettre en
cause de nombreux fondements de l'architecture SGBD relationnelle
traditionnelle, notamment les propriétés ACID.
Les temps changent
https://db-engines.com/en/ranking_trend
https://fr.wikipedia.org/wiki/Extract-transform-load
Extract-transform-load est connu sous le sigle ETL, ou extracto-chargeur, (ou
parfois : datapumping). Il s'agit d'une technologie informatique intergicielle
(comprendre middleware) permettant d'effectuer des synchronisations massives
d'information d'une source de données (le plus souvent une base de données)
vers une autre. Selon le contexte, on est amené à exploiter différentes fonctions,
souvent combinées entre elles : « extraction », « transformation », « constitution »
ou « conversion », « alimentation ».
https://fr.wikipedia.org/wiki/Elasticsearch
Elasticsearch est un serveur utilisant Lucene pour l'indexation et la recherche des
données. Il fournit un moteur de recherche distribué et multi-entité à travers une
interface REST. C'est un logiciel libre écrit en Java et publié en open source sous
licence Apache.
Elasticsearch est le serveur de recherche d'entreprise le plus populaire, suivi par
Apache Solr qui utilise aussi Lucene. Il est associé à deux autres produits libres,
Kibana et Logstash, qui sont respectivement un visualiseur de données et un ETL
(initialement destiné aux logs).
L'indexation des données s'effectue à partir d'une requête HTTP PUT. La
recherche des données s'effectue avec la requête HTTP GET. Les données
échangées sont au format JSON.
https://fr.wikipedia.org/wiki/Big_data
Le big data (litt. « grosses données » en anglais), les mégadonnées ou les
données massives, désigne des ensembles de données devenus si volumineux
qu'ils dépassent l'intuition et les capacités humaines d'analyse et même celles des
outils informatiques classiques de gestion de base de données ou de l'information.
Dimensions :
1. Volume
2. Variété
3. Vélocité
https://fr.wikipedia.org/wiki/Representational_state_transfer
REST (representational state transfer) est un style d'architecture logicielle
définissant un ensemble de contraintes à utiliser pour créer des services web. Les
services web conformes au style d'architecture REST, aussi appelés services web
RESTful, établissent une interopérabilité entre les ordinateurs sur Internet.
D'autres types de services web tels que les services web SOAP exposent leurs
propres ensembles d'opérations arbitraires.
Dans un service web REST, les requêtes effectuées sur l'URI d'une ressource
produisent une réponse dont le corps est formaté en HTML, XML, JSON ou un
autre format. Lorsque le protocole HTTP est utilisé, comme c'est souvent le cas,
les méthodes HTTP disponibles sont GET, HEAD, POST, PUT, PATCH, DELETE,
CONNECT, OPTIONS et TRACE.
Comment ça marche ?
Elasticsearch
● Distributed
● JSON-based
● Search and analytics engine
● Design for horizontal scalability
● Near Realtime (NRT)
Distributed nodes
Data structure
Index (SQL) Inverted index (Elasticsearch)
Doc Words inside document
A
crow, tree, cheese, fox, french,
book, toaster, stick...
B
brown, dog, jump, over, lazy, fox,
asleep, cheese, tree,...
Word (Document, position)
crow (A,0)
tree [(A,1), (B,8)]
cheese [(A,2), (B,7)]
fox [(A,3), (B,5)]
... ...
Tokenization
"Sports bikes under the $1000 RR"
⇓
"sport, bike, under, dollar, 1000, race ready"
Operation Before After
Stemming (root) curves curve
Stop words filtering the
Text normalization $ dollar
Synonym expansion AUR area under curve
Kibana
● Visualizations
● Dashboards
● Elasticsearch interface
● Client-side & server-side
● Facets/Aggregations
Facets
Aggregation
● Bucket ➡ document set (/criterion)
● Metric ➡ aggregate values
● Matrix ➡ aggregate on multiple fields
● Pipeline ➡ aggregate-ception
Bucket on shapes
DÉMO time
1. Analyse de logs web (Démo de Kibana)
2. Visualisation de logs système produits par Metricbeat sur
un serveur ES
3. Comment mange-t-on les pommes au Québec ?
a. La réponse avec ES/Kibana en utilisant les données
ouvertes d’Open Food Facts.
4. Le projet Kibio.science
Logs web avec le démo de Kibana
Comment mange-t-on les pommes au
Québec ?
Ingérer les données d’Open Food Facts
Ingérer un fichier CSV
Ingérer un fichier CSV
Ingérer un service REST/JSON avec Python
Ingérer un service REST/JSON avec Python
Consommer un service REST/JSON d’ElasticSearch
Consommer les données avec
Kibana ou ElasticSearch
Consommer avec Kibana
Affiliations
Intéressé par un stage ?
Contactez Arnaud.Droit@crchudequebec.ulaval.ca
https://www.slideshare.net/fbelleau

Contenu connexe

Tendances

Information Scientifique et Technique : pour des moteurs efficaces, liberez l...
Information Scientifique et Technique : pour des moteurs efficaces, liberez l...Information Scientifique et Technique : pour des moteurs efficaces, liberez l...
Information Scientifique et Technique : pour des moteurs efficaces, liberez l...Fleury Christine
 
Livres, périodiques, thèses et manuscrits en réseau
Livres, périodiques, thèses et manuscrits en réseauLivres, périodiques, thèses et manuscrits en réseau
Livres, périodiques, thèses et manuscrits en réseauY. Nicolas
 
Calames - presentation à l'ecole des chartes
Calames - presentation à l'ecole des chartesCalames - presentation à l'ecole des chartes
Calames - presentation à l'ecole des chartesY. Nicolas
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Calames. Editer, rechercher, exposer des métadonnées EAD
Calames. Editer, rechercher, exposer des métadonnées EADCalames. Editer, rechercher, exposer des métadonnées EAD
Calames. Editer, rechercher, exposer des métadonnées EADY. Nicolas
 
L'utilisation d’ontologies dans le cadre de Biblissima
L'utilisation d’ontologies dans le cadre de BiblissimaL'utilisation d’ontologies dans le cadre de Biblissima
L'utilisation d’ontologies dans le cadre de BiblissimaEquipex Biblissima
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
L’indexation des éditions de sources et la conception de base(s) prosopograph...
L’indexation des éditions de sources et la conception de base(s) prosopograph...L’indexation des éditions de sources et la conception de base(s) prosopograph...
L’indexation des éditions de sources et la conception de base(s) prosopograph...Equipex Biblissima
 
Marseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France LabsMarseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France Labsfrancelabs
 

Tendances (10)

Information Scientifique et Technique : pour des moteurs efficaces, liberez l...
Information Scientifique et Technique : pour des moteurs efficaces, liberez l...Information Scientifique et Technique : pour des moteurs efficaces, liberez l...
Information Scientifique et Technique : pour des moteurs efficaces, liberez l...
 
Livres, périodiques, thèses et manuscrits en réseau
Livres, périodiques, thèses et manuscrits en réseauLivres, périodiques, thèses et manuscrits en réseau
Livres, périodiques, thèses et manuscrits en réseau
 
Calames - presentation à l'ecole des chartes
Calames - presentation à l'ecole des chartesCalames - presentation à l'ecole des chartes
Calames - presentation à l'ecole des chartes
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Calames. Editer, rechercher, exposer des métadonnées EAD
Calames. Editer, rechercher, exposer des métadonnées EADCalames. Editer, rechercher, exposer des métadonnées EAD
Calames. Editer, rechercher, exposer des métadonnées EAD
 
L'utilisation d’ontologies dans le cadre de Biblissima
L'utilisation d’ontologies dans le cadre de BiblissimaL'utilisation d’ontologies dans le cadre de Biblissima
L'utilisation d’ontologies dans le cadre de Biblissima
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
L’indexation des éditions de sources et la conception de base(s) prosopograph...
L’indexation des éditions de sources et la conception de base(s) prosopograph...L’indexation des éditions de sources et la conception de base(s) prosopograph...
L’indexation des éditions de sources et la conception de base(s) prosopograph...
 
Marseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France LabsMarseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France Labs
 

Similaire à Show de boucane pour ELK

Presentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUGPresentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUGfrancelabs
 
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014francelabs
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
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
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTCHAKER ALLAOUI
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementMohamed hedi Abidi
 
Tunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouriTunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouriAymen ZAAFOURI
 
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesPostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesOpen Source Experience
 
Geneva jug Lucene Solr
Geneva jug Lucene Solr Geneva jug Lucene Solr
Geneva jug Lucene Solr francelabs
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - ElasticsearchDavid Pilato
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchRobert Viseur
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQSaid Sadik
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Play SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User GroupPlay SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User Grouparagot1
 
Introduction à ElasticSearch
Introduction à ElasticSearchIntroduction à ElasticSearch
Introduction à ElasticSearchFadel Chafai
 
Les micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkLes micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkMSDEVMTL
 
Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop
Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshopMigrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop
Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshopNuxeo
 

Similaire à Show de boucane pour ELK (20)

Presentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUGPresentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUG
 
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
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
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Tunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouriTunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouri
 
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesPostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
 
Geneva jug Lucene Solr
Geneva jug Lucene Solr Geneva jug Lucene Solr
Geneva jug Lucene Solr
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - Elasticsearch
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend Search
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Play SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User GroupPlay SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User Group
 
Introduction à ElasticSearch
Introduction à ElasticSearchIntroduction à ElasticSearch
Introduction à ElasticSearch
 
Les micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkLes micro orm, alternatives à entity framework
Les micro orm, alternatives à entity framework
 
Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop
Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshopMigrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop
Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop
 

Plus de François Belleau

Pitch Reactome2json_ld @ swat4hcls 2020
Pitch Reactome2json_ld @ swat4hcls 2020Pitch Reactome2json_ld @ swat4hcls 2020
Pitch Reactome2json_ld @ swat4hcls 2020François Belleau
 
Pitch Qliic coopérathon 2017
Pitch Qliic coopérathon 2017Pitch Qliic coopérathon 2017
Pitch Qliic coopérathon 2017François Belleau
 
2015-11-17 Présentation SEAO et ES
2015-11-17 Présentation SEAO et ES2015-11-17 Présentation SEAO et ES
2015-11-17 Présentation SEAO et ESFrançois Belleau
 
BD2K hackathon - Bio2RDF submission
BD2K hackathon - Bio2RDF submissionBD2K hackathon - Bio2RDF submission
BD2K hackathon - Bio2RDF submissionFrançois Belleau
 
Découvrir le web sémantique en 15 minutes (Decideo 2014)
Découvrir le web sémantique en 15 minutes (Decideo 2014)Découvrir le web sémantique en 15 minutes (Decideo 2014)
Découvrir le web sémantique en 15 minutes (Decideo 2014)François Belleau
 
Bio2RDF poster for Biocurator 2014 conference
Bio2RDF poster for Biocurator 2014 conferenceBio2RDF poster for Biocurator 2014 conference
Bio2RDF poster for Biocurator 2014 conferenceFrançois Belleau
 
Acfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDF
Acfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDFAcfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDF
Acfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDFFrançois Belleau
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013François Belleau
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012François Belleau
 
Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...
Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...
Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...François Belleau
 
Bio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and Mouse
Bio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and MouseBio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and Mouse
Bio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and MouseFrançois Belleau
 
Bio2RDF: Towards A Mashup To Build Bioinformatics Knowledge System
Bio2RDF: Towards A Mashup To Build Bioinformatics Knowledge SystemBio2RDF: Towards A Mashup To Build Bioinformatics Knowledge System
Bio2RDF: Towards A Mashup To Build Bioinformatics Knowledge SystemFrançois Belleau
 

Plus de François Belleau (20)

Bio2RDF @ DILS 2008
Bio2RDF @ DILS 2008Bio2RDF @ DILS 2008
Bio2RDF @ DILS 2008
 
Pitch Reactome2json_ld @ swat4hcls 2020
Pitch Reactome2json_ld @ swat4hcls 2020Pitch Reactome2json_ld @ swat4hcls 2020
Pitch Reactome2json_ld @ swat4hcls 2020
 
Pitch Qliic coopérathon 2017
Pitch Qliic coopérathon 2017Pitch Qliic coopérathon 2017
Pitch Qliic coopérathon 2017
 
2015-11-17 Présentation SEAO et ES
2015-11-17 Présentation SEAO et ES2015-11-17 Présentation SEAO et ES
2015-11-17 Présentation SEAO et ES
 
Linuq 20160130
Linuq 20160130Linuq 20160130
Linuq 20160130
 
textOdossier
textOdossiertextOdossier
textOdossier
 
BD2K hackathon - Bio2RDF submission
BD2K hackathon - Bio2RDF submissionBD2K hackathon - Bio2RDF submission
BD2K hackathon - Bio2RDF submission
 
Découvrir le web sémantique en 15 minutes (Decideo 2014)
Découvrir le web sémantique en 15 minutes (Decideo 2014)Découvrir le web sémantique en 15 minutes (Decideo 2014)
Découvrir le web sémantique en 15 minutes (Decideo 2014)
 
Bio2RDF poster for Biocurator 2014 conference
Bio2RDF poster for Biocurator 2014 conferenceBio2RDF poster for Biocurator 2014 conference
Bio2RDF poster for Biocurator 2014 conference
 
Acfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDF
Acfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDFAcfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDF
Acfas 2013 - Comment publier sur le web sémantique : la méthode de Bio2RDF
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012
 
Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...
Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...
Producing, Publishing and Consuming Linked Data Three lessons from the Bio2RD...
 
Bio2RDF@BH2010
Bio2RDF@BH2010Bio2RDF@BH2010
Bio2RDF@BH2010
 
Bio2RDF @ W3C HCLS2009
Bio2RDF @ W3C HCLS2009Bio2RDF @ W3C HCLS2009
Bio2RDF @ W3C HCLS2009
 
Bio2RDF-ISMB2008
Bio2RDF-ISMB2008Bio2RDF-ISMB2008
Bio2RDF-ISMB2008
 
Bio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and Mouse
Bio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and MouseBio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and Mouse
Bio2RDF : A Semantic Web Atlas of post genomic knowledge about Human and Mouse
 
Bio2RDF should we do it
Bio2RDF should we do itBio2RDF should we do it
Bio2RDF should we do it
 
Bio2RDF: Towards A Mashup To Build Bioinformatics Knowledge System
Bio2RDF: Towards A Mashup To Build Bioinformatics Knowledge SystemBio2RDF: Towards A Mashup To Build Bioinformatics Knowledge System
Bio2RDF: Towards A Mashup To Build Bioinformatics Knowledge System
 
Bio2RDF/Virtuoso
Bio2RDF/VirtuosoBio2RDF/Virtuoso
Bio2RDF/Virtuoso
 

Show de boucane pour ELK

  • 1. Show de boucane pour ELK François Belleau et Régis Ongaro du AD Lab http://compbio.ulaval.ca/
  • 2. Question de science : Comment mange-t-on les pommes au Québec ?
  • 3. Selon Open Food Fact https://world.openfoodfacts.org/cgi/search.pl
  • 5. Notre problème : Comment répondre à cette question ?
  • 6. La question du jour : Comment construire un site web pour répondre à cette question ?
  • 8. C’est vendredi alors on cuisine...avec la recette ELK
  • 9. Les ingrédients nécessaires : ● Elasticsearch, un contenant ○ https://www.elastic.co/fr/downloads/elasticsearch ● Kibana, une interface ○ https://www.elastic.co/fr/downloads/kibana ● Postman, pour mesurer ○ https://www.getpostman.com/downloads/ ● Python, pour mélanger ○ https://github.com/elastic/elasticsearch-py ● OpenFoodFacts, des données ○ https://world.openfoodfacts.org/cgi/search.pl
  • 10. D’abord la mise en place 1. Télécharger Elasticsearch et Kibana et les dézipper 2. Lancer Elasticsearch a. cd /elasticsearc/bin b. ./elastic c. GET http://localhost:9200 3. Lancer Kibana a. cd kibana/bin b. ./kibana c. GET http://localhost:5601 4. Installer la librairie python pour Elasticsearch a. pip install elasticsearch 5. Et bien connaître son JSON a. https://www.json.org/json-fr.html
  • 11. Vous connaissez votre JSON ? https://www.json.org/json-fr.html
  • 12. https://fr.wikipedia.org/wiki/JavaScript_Object_Notation JavaScript Object Notation (JSON) est un format de données textuelles dérivé de la notation des objets du langage JavaScript. Il permet de représenter de l’information structurée comme le permet XML par exemple. Créé par Douglas Crockford entre 2002 et 2005, il est actuellement décrit par deux normes en concurrence : RFC 8259 [archive] de l’IETF et ECMA-4041 de l'ECMA. Des bibliothèques pour le format JSON existent dans la plupart des langages de programmation.
  • 13. dans la plupart des langages de programmation… c’est vrai !
  • 14. Sans faire de fautes… http://json.parser.online.fr/
  • 15. Une procédure en 3 étapes, comme pour l’ETL 1. Ingérer 2. Transformer 3. Consommer
  • 16. Ingérer ● Importation d’un fichier CSV ou JSON ● Avec le protocole HTTP ○ CURL, WGET ○ POSTMAN ● Avec Python un document à la fois ● Avec Python en lot avec le mode bulk
  • 17. Transformer ● En python avec un itérateur ○ ou tout autre langage ● Avec Logstash (le L de ELK) ● Avec le langage Painless ● Avec un ETL supportant JSON ● Comme bon vous semble via des requêtes REST
  • 18. Consommer ● En construisant un tableau de bord avec Kibana ● En utilisant les services APIs REST/JSON d’Elasticsearch ● En construisant vos propres APIs ● En développant une application mobile ou HTML5 qui consomme les services REST
  • 19. Et un peu de théorie.
  • 20. https://fr.wikipedia.org/wiki/NoSQL En informatique et en bases de données, NoSQL désigne une famille de systèmes de gestion de base de données (SGBD) qui s'écarte du paradigme classique des bases relationnelles. L'explicitation du terme la plus populaire de l'acronyme est Not only SQL (« pas seulement SQL » en anglais) même si cette interprétation peut être discutée. L'architecture machine en clusters induit une structure logicielle distribuée fonctionnant avec des agrégats répartis sur différents serveurs permettant des accès et modifications concurrentes mais imposant également de remettre en cause de nombreux fondements de l'architecture SGBD relationnelle traditionnelle, notamment les propriétés ACID.
  • 22. https://fr.wikipedia.org/wiki/Extract-transform-load Extract-transform-load est connu sous le sigle ETL, ou extracto-chargeur, (ou parfois : datapumping). Il s'agit d'une technologie informatique intergicielle (comprendre middleware) permettant d'effectuer des synchronisations massives d'information d'une source de données (le plus souvent une base de données) vers une autre. Selon le contexte, on est amené à exploiter différentes fonctions, souvent combinées entre elles : « extraction », « transformation », « constitution » ou « conversion », « alimentation ».
  • 23. https://fr.wikipedia.org/wiki/Elasticsearch Elasticsearch est un serveur utilisant Lucene pour l'indexation et la recherche des données. Il fournit un moteur de recherche distribué et multi-entité à travers une interface REST. C'est un logiciel libre écrit en Java et publié en open source sous licence Apache. Elasticsearch est le serveur de recherche d'entreprise le plus populaire, suivi par Apache Solr qui utilise aussi Lucene. Il est associé à deux autres produits libres, Kibana et Logstash, qui sont respectivement un visualiseur de données et un ETL (initialement destiné aux logs). L'indexation des données s'effectue à partir d'une requête HTTP PUT. La recherche des données s'effectue avec la requête HTTP GET. Les données échangées sont au format JSON.
  • 24. https://fr.wikipedia.org/wiki/Big_data Le big data (litt. « grosses données » en anglais), les mégadonnées ou les données massives, désigne des ensembles de données devenus si volumineux qu'ils dépassent l'intuition et les capacités humaines d'analyse et même celles des outils informatiques classiques de gestion de base de données ou de l'information. Dimensions : 1. Volume 2. Variété 3. Vélocité
  • 25. https://fr.wikipedia.org/wiki/Representational_state_transfer REST (representational state transfer) est un style d'architecture logicielle définissant un ensemble de contraintes à utiliser pour créer des services web. Les services web conformes au style d'architecture REST, aussi appelés services web RESTful, établissent une interopérabilité entre les ordinateurs sur Internet. D'autres types de services web tels que les services web SOAP exposent leurs propres ensembles d'opérations arbitraires. Dans un service web REST, les requêtes effectuées sur l'URI d'une ressource produisent une réponse dont le corps est formaté en HTML, XML, JSON ou un autre format. Lorsque le protocole HTTP est utilisé, comme c'est souvent le cas, les méthodes HTTP disponibles sont GET, HEAD, POST, PUT, PATCH, DELETE, CONNECT, OPTIONS et TRACE.
  • 27. Elasticsearch ● Distributed ● JSON-based ● Search and analytics engine ● Design for horizontal scalability ● Near Realtime (NRT)
  • 29. Data structure Index (SQL) Inverted index (Elasticsearch) Doc Words inside document A crow, tree, cheese, fox, french, book, toaster, stick... B brown, dog, jump, over, lazy, fox, asleep, cheese, tree,... Word (Document, position) crow (A,0) tree [(A,1), (B,8)] cheese [(A,2), (B,7)] fox [(A,3), (B,5)] ... ...
  • 30. Tokenization "Sports bikes under the $1000 RR" ⇓ "sport, bike, under, dollar, 1000, race ready" Operation Before After Stemming (root) curves curve Stop words filtering the Text normalization $ dollar Synonym expansion AUR area under curve
  • 31. Kibana ● Visualizations ● Dashboards ● Elasticsearch interface ● Client-side & server-side ● Facets/Aggregations
  • 33. Aggregation ● Bucket ➡ document set (/criterion) ● Metric ➡ aggregate values ● Matrix ➡ aggregate on multiple fields ● Pipeline ➡ aggregate-ception Bucket on shapes
  • 35. 1. Analyse de logs web (Démo de Kibana) 2. Visualisation de logs système produits par Metricbeat sur un serveur ES 3. Comment mange-t-on les pommes au Québec ? a. La réponse avec ES/Kibana en utilisant les données ouvertes d’Open Food Facts. 4. Le projet Kibio.science
  • 36. Logs web avec le démo de Kibana
  • 37. Comment mange-t-on les pommes au Québec ?
  • 38. Ingérer les données d’Open Food Facts
  • 41. Ingérer un service REST/JSON avec Python
  • 42. Ingérer un service REST/JSON avec Python
  • 43. Consommer un service REST/JSON d’ElasticSearch
  • 44. Consommer les données avec Kibana ou ElasticSearch
  • 47. Intéressé par un stage ? Contactez Arnaud.Droit@crchudequebec.ulaval.ca https://www.slideshare.net/fbelleau