Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
ElasticSearch est un moteur de recherche open source reposant sur une interface JSON, pouvant fonctionner en mode distribué et interrogeable facilement via son API REST. Cédric Nirousset, Développeur web indépendant, vous fera découvrir les intérêts de l’utiliser dans vos applications à travers quelques exemples pratiques.
A propos de l’intervenant : Cédric Nirousset, diplomé dut DUT SRC Montébliard en 2006 et de l’UTBM en Informatique en 2010, il est maintenant développeur web indépendant à Besançon, travaillant pour des entreprises de toutes tailles et tous horizons. Suivez Cédric sur Twitter @Nyr0
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
Après les 2 précédents ateliers Varnish, c’est au tour d’ElasticSearch de passer entre les mains Ludovic Piot (Oxalide) avec Edouard Fajnzilberg (Kernel42) . Ils ont déroulé le sujet avec les points de vue Syadmin et Dev.
Subject: Oxalide's workshop about an overview of elasticsearch.
Date: 10-mar-2016
Speakers: Edouard Fajnzilberg (Kernel42) and Ludovic Piot (Oxalide)
Language: french
Video capture: https://youtu.be/3bPoeVoUdFI
Main topics:
When do we use elasticsearch?
Why is it cool?
Introduction to Head plugin
Introduction to the REST API
Introduction to the Query DSL and the JSON document
How to configure a cluster?
How does it compare to a SGBD-R?
How does a reversed-index work?
An explaination of Lucene Segments
An explaination of the cluster architecture
An overview of the mappings (principles, dynamic mapping and templates)
An overview of the aggregations (buckets, metrics, multiple, nestable, sortable, aggregation types, use cases, pipelines)
An overview of the ecosystem (Sense, Logstash, Beats, Kibana, TimeLion, Marvel, Watcher, Shield, Head, Kopf, HQ, Inquisitor, BigDesk, SegmentSpy)
Stockage et analyse temps réel d'événements avec Riak chez Booking.comDamien Krotkine
Chez Booking.com, un flux constant d'événements provient des différents systèmes et applications internes. Ces "events" sont des données critiques, et doivent être stockés pour être analysés en temps réel, ou bien sur du moyen et long terme. Ces données sont très peu structurées et de nature changeante, rendant difficile l'utilisation d'outils standards d'analyse.
Cette présentation montre comment fut construit un système de stockage complet avec analyse temps-réel, basé sur Riak.
Riak est une base de donnée NoSQL distribuée hybride très robuste et rapide.
Les points abordés seront: sérialisation et aggrégation des données, la configuration de Riak, les solutions pour diminuer la consommation de bande passante du cluster, l'implémentation de l'analyse temps-réel grace aux fonctions avancées de Riak: MapReduce, Secondary Indexes, commit-hooks.
Slides de la présentation "Cassandra Java Driver" à l'Ippevent du 20 juin 2013
http://blog.ippon.fr/2013/06/03/ippevent-utiliser-les-nouvelles-apis-cassandra-le-2-juin-2013/
Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
ElasticSearch est un moteur de recherche open source reposant sur une interface JSON, pouvant fonctionner en mode distribué et interrogeable facilement via son API REST. Cédric Nirousset, Développeur web indépendant, vous fera découvrir les intérêts de l’utiliser dans vos applications à travers quelques exemples pratiques.
A propos de l’intervenant : Cédric Nirousset, diplomé dut DUT SRC Montébliard en 2006 et de l’UTBM en Informatique en 2010, il est maintenant développeur web indépendant à Besançon, travaillant pour des entreprises de toutes tailles et tous horizons. Suivez Cédric sur Twitter @Nyr0
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
Après les 2 précédents ateliers Varnish, c’est au tour d’ElasticSearch de passer entre les mains Ludovic Piot (Oxalide) avec Edouard Fajnzilberg (Kernel42) . Ils ont déroulé le sujet avec les points de vue Syadmin et Dev.
Subject: Oxalide's workshop about an overview of elasticsearch.
Date: 10-mar-2016
Speakers: Edouard Fajnzilberg (Kernel42) and Ludovic Piot (Oxalide)
Language: french
Video capture: https://youtu.be/3bPoeVoUdFI
Main topics:
When do we use elasticsearch?
Why is it cool?
Introduction to Head plugin
Introduction to the REST API
Introduction to the Query DSL and the JSON document
How to configure a cluster?
How does it compare to a SGBD-R?
How does a reversed-index work?
An explaination of Lucene Segments
An explaination of the cluster architecture
An overview of the mappings (principles, dynamic mapping and templates)
An overview of the aggregations (buckets, metrics, multiple, nestable, sortable, aggregation types, use cases, pipelines)
An overview of the ecosystem (Sense, Logstash, Beats, Kibana, TimeLion, Marvel, Watcher, Shield, Head, Kopf, HQ, Inquisitor, BigDesk, SegmentSpy)
Stockage et analyse temps réel d'événements avec Riak chez Booking.comDamien Krotkine
Chez Booking.com, un flux constant d'événements provient des différents systèmes et applications internes. Ces "events" sont des données critiques, et doivent être stockés pour être analysés en temps réel, ou bien sur du moyen et long terme. Ces données sont très peu structurées et de nature changeante, rendant difficile l'utilisation d'outils standards d'analyse.
Cette présentation montre comment fut construit un système de stockage complet avec analyse temps-réel, basé sur Riak.
Riak est une base de donnée NoSQL distribuée hybride très robuste et rapide.
Les points abordés seront: sérialisation et aggrégation des données, la configuration de Riak, les solutions pour diminuer la consommation de bande passante du cluster, l'implémentation de l'analyse temps-réel grace aux fonctions avancées de Riak: MapReduce, Secondary Indexes, commit-hooks.
Slides de la présentation "Cassandra Java Driver" à l'Ippevent du 20 juin 2013
http://blog.ippon.fr/2013/06/03/ippevent-utiliser-les-nouvelles-apis-cassandra-le-2-juin-2013/
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
Ce talk est un retour d’expérience sur la mise en œuvre de Spark et Streaming Spark. Nous aborderons :
La collecte des données à la volée dans l’application Web avec Akka
La séparation des producteurs et consommateurs avec Kafka
La transformation des données avec Spark et Streaming Spark
Le déploiement sur un cluster avec Apache Mesos
Breizhcamp : Guide de survie du développeur dans une application (Java) qui ramebleporini
Je suis développeur Java. L'application fonctionne parfaitement ou presque sur mon laptop. Je suis le seul utilisateur et ma base est quasiment vide... La campagne de tests de charge et ou la mise en prod révèlent un bilan alarmant: le projet ne tient pas ses objectifs en terme de performance et de scalabilité. La consommation mémoire et les temps de traitements dévissent complètement.
C'est l'horreur. Je ne sais pas par où prendre le problème. Est-ce le moment de mettre à jour mon CV?
Réveillez-vous de ce cauchemar! Je vous propose dans cette session de passer en revue les signes vitaux que la JVM met à notre disposition, comment les interpréter et de quelle façon il peuvent nous guider pour résoudre les problèmes de lenteur ou de scalabilité.
Tirer le meilleur de ses données avec ElasticSearchSéven Le Mesle
Qu'est-ce qu'un moteur de recherche ? Qu'est-ce qu'ElasticSearch ? Comment l'utiliser dans le monde réel et peut-on aller plus loin que la recherche full texte ?
Présentation sur Ajax dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l\'Ecole de technologie supérieure, Montréal, Automne 2008
Le SQL est un standard pour accéder vos données, donc, dans un monde orienté flux, quoi de plus normal que de retrouver le SQL pour traiter vos streams. Dans ce talk, vous découvrirez les extensions apportées à SQL par Apache Calcite pour répondre à cette problématique. Présentation faite au JugSummerCamp 2018
Elastic search
Moteur de recherche
Crée en 2010 par Shay Banon
Basé sur Apache Lucene (+multi-nodes)
Développé en Java
Open source (Licence Apache)
La société a été crée en 2012
La version courante est 2.0
Site officiel: https://www.elastic.co/
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
Ce talk est un retour d’expérience sur la mise en œuvre de Spark et Streaming Spark. Nous aborderons :
La collecte des données à la volée dans l’application Web avec Akka
La séparation des producteurs et consommateurs avec Kafka
La transformation des données avec Spark et Streaming Spark
Le déploiement sur un cluster avec Apache Mesos
Breizhcamp : Guide de survie du développeur dans une application (Java) qui ramebleporini
Je suis développeur Java. L'application fonctionne parfaitement ou presque sur mon laptop. Je suis le seul utilisateur et ma base est quasiment vide... La campagne de tests de charge et ou la mise en prod révèlent un bilan alarmant: le projet ne tient pas ses objectifs en terme de performance et de scalabilité. La consommation mémoire et les temps de traitements dévissent complètement.
C'est l'horreur. Je ne sais pas par où prendre le problème. Est-ce le moment de mettre à jour mon CV?
Réveillez-vous de ce cauchemar! Je vous propose dans cette session de passer en revue les signes vitaux que la JVM met à notre disposition, comment les interpréter et de quelle façon il peuvent nous guider pour résoudre les problèmes de lenteur ou de scalabilité.
Tirer le meilleur de ses données avec ElasticSearchSéven Le Mesle
Qu'est-ce qu'un moteur de recherche ? Qu'est-ce qu'ElasticSearch ? Comment l'utiliser dans le monde réel et peut-on aller plus loin que la recherche full texte ?
Présentation sur Ajax dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l\'Ecole de technologie supérieure, Montréal, Automne 2008
Le SQL est un standard pour accéder vos données, donc, dans un monde orienté flux, quoi de plus normal que de retrouver le SQL pour traiter vos streams. Dans ce talk, vous découvrirez les extensions apportées à SQL par Apache Calcite pour répondre à cette problématique. Présentation faite au JugSummerCamp 2018
Elastic search
Moteur de recherche
Crée en 2010 par Shay Banon
Basé sur Apache Lucene (+multi-nodes)
Développé en Java
Open source (Licence Apache)
La société a été crée en 2012
La version courante est 2.0
Site officiel: https://www.elastic.co/
3 Microsoft Advanced Threat Analytics - GenèveaOS Community
Session qui va décrire et présenter la technologie Azure Site Recovery. Ce service dans Azure propose un PRA pour les systèmes d'informations avec comme source plusieurs technologies ( Hyper-V , VMware) cette session va présenter ASR dans les moindres détails en passant par la phase design , déploiement et administration.
Cette session sera consacrée à la présentation d’Amazon Redshift, qui est un service d’entrepôt de données entièrement géré dont la taille va de quelques centaines de giga-octets à un ou plusieurs péta-octets, coûtant moins de 1 000 USD par téra-octet et par an, soit un dixième du coût de la plupart des solutions classiques d'entrepôt de données. Vous découvrirez la simplicité avec laquelle vous pouvez démarrer avec Amazon RedShift et analyser et lancer des rapports sur plusieurs millions de lignes d’enregistrements en quelques secondes.
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
Vous êtes développeur, chef de projet technique ou même responsable et vous souhaitez avoir de la visibilité sur le fonctionnement de vos applicatifs, ou sur la plateforme sur laquelle ils sont hébergés ?
Nous étudierons comment, grâce à des outils simples (StatD / Graphite / Log BDD) et nos expériences chez M6Web, mettre en place un monitoring applicatif ultra complet.
Ce monitoring vous permettra de retrouver la vue sur vos projets, pour mieux anticiper la charge, detecter la root cause en cas d'incident et connaitre l'état de chacun de vos services ...
Actuellement, on parle beaucoup de traitement en lots (batch) dans le monde du Big Data. Mais qu’en est-il du Streaming et du temps réel ? Beaucoup de frameworks Big Data tentent de répondre à cette problématique. En tête de liste figure Spark : grâce à son composant Spark Streaming, il permet un traitement en continu des flux de données et une disponibilité 24/7.
Au programme :
- Streaming et Architecture Big Data
- Hello world Spark Streaming
- Intégration de Flume à Spark Streaming
- Use case “métriques sur des logs applicatifs”
- Architecture physique : driver / workers / receivers
- Monitoring de Spark Streaming
- Fail over : reliable / unreliable sources, checkpoint, recover
- Tuning et performance.
Speakers :
- Nadhem LAMTI, Architecte Technique chez PALO IT
Depuis 10 ans, Nadhem intervient principalement sur des projets JAVA JEE de grande envergure dans différents secteurs (Télécommunication, Banque, Finance, Transports, Tourisme, etc.), développant ainsi une expertise polyvalente en abordant multiples technologies et architectures. Fort d’une expérience concluante en tant qu’Ingénieur Performance & Support, Nadhem est capable d’intervenir sur des problématiques de production liées à des systèmes d’informations complexes. Actuellement en mission chez Voyages SNCF, il contribue à un grand chantier Big Data de centralisation de logs et s’intéresse tout particulièrement au nouveau produit phare de traitement de données Apache Spark.
- Saâd-Eddine MALTI, Expert BDD chez Voyages SNCF
En poste depuis 10 ans chez Voyages SNCF, Saâd-Eddine intervient en tant qu’Expert BDD sur toutes les applications de manière transverse. L’orientation affichée de Voyages SNCF vers le Big Data pousse Saâd-Eddine à s’investir pleinement dans ce domaine, également sur le nouveau produit phare de traitement de données Apache Spark.
On Wednesday 13th of November, we organized with the Node.js Paris group a new meetup in our office in Paris around Javascript! It was a real success with nearly 70 people who attended the event to exchange views on Micro Services, CPU Profiling WebSocket, TypeScript.
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
Sujet : Apache Web Server Internals
Description : Le Serveur Web Apache est devenu le logiciel le plus utilisé au mondepour servir les pages internet et intranet. Son utilisation très variée, du petit site familial au site d’entreprise avec systèmes de balance de charge et architecture objet, fait que sa structure est peu connue ainsi que ses différentes configurations.
Conférenciers : Neil Armstrong, élève ingénieur chez Neotion et futur ingénieur Polytech’Nice-Sophia, spécialisé en Logiciels Embarqués et technologies Open-Source.
Date : 10 juin 2008
Lieu : Amphithéâtre Edison, CICA, Sophia Antipolis, FRANCE
http://www.brownbaglunch.fr/baggers.html#Olivier_BAZOUD
Monitoring: regarder votre application à la loupe!
Regarder fonctionner votre application sous toutes les coutures.
Nous verrons comment alimenter Graphite, un excellent outil de métrologie, dans une architecture java (je peux m'adapter à vote langage): collectd, jmxtrans, metrics, statsd,.. afin de prendre des mesures au niveau du système, de l'applicatif, des batchs et du métier (KPI). Nous aborderons ensuite la corrélation tous ces métriques de façon très visuelle et comment réveiller vos sysadmins en cas d'urgence ;)
L'ORM de Django est particulièrement efficace, il permet au développeur de complètement abstraire la couche de stockage de données au point de pouvoir utiliser le même code avec SQLite, PostgreSQL ou d'autres bases plus exotiques encore. Lorsque les problèmes de performance surviennent faire le chemin inverse depuis la base vers le code devient un véritable chemin de croix. On verra dans cette présentation comment se faciliter la vie avec quelques outils et méthodes.
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
Slides du talk réalisé à Web2Day 2016 sur Apache Zeppelin (env. dédié à l'exploration des données, avec support de multiples langages, multiples backends)
Explorez vos données avec apache zeppelinBruno Bonnin
Rapide présentation du projet Apache Zeppelin, environnement web facilitant l'exploration et le partage autour de vos données : le support de multiples langages pour le traitement (Spark) et l'accès aux bases de données (PostgreSQL, Cassandra, ...) permet à Zeppelin de s'adapter aux backends les plus divers.
4. Avertissement
Subjectif ?
“Qui fait une part exagérée aux opinions
personnelles ; partial : Une critique subjective.”
Merci Josette Larousse!
Ce sera surtout d’une totale mauvaise foi !
6. Stream processing = traitement temps réel des data
Mais pour quels besoins ?
- Import continue des données
pour analyse en temps réel
- Construction de dashboards
live
- Exploration immédiate des
données
Exemples:
- Monitoring de logs pour
surveillance de menaces
- Moteur de recommandations
- Analyse de sentiment
- Prévention d’anomalies avec
alertes
« A l'horizon 2020, 70 % des organisations et des entreprises adopteront le
streaming des données pour permettre des analyses en temps réel » (Gartner)
7. Traitement sur un stream ?
weblogs
url status
/help 200
Compter les nombres
de requêtes pour
chaque URL
/help 1
/help 1
/products 1
/help 1
/products 2
/products 200
/products 500
Réception ➜ Traitement ➜ Mise à jour du résultat
8.
9. Mais en avez-vous vraiment besoin ?
Exemple du réel vrai de vrai:
- Le client: "Je veux faire du streaming, j’ai besoin de traiter en temps réel pas mal de
messages, et j’ai vu ce que fait Uber, ça me parait bien adapté”
- Le fournisseur: “Et combien de messages ? C’est pour voir quelle plateforme on va pouvoir
vous proposer, dimensionner…”
- Le client: “Plusieurs centaines !”
- Le fournisseur: “Par millisecondes ?”
- Le client: “Non, quand même pas, on débute, ce sera... par jour !!"
10. Un Kafka en PROD ? Mais bien sûr, monsieur le client !
$ vi kafka-server.sh
#!/bin/bash
echo "[" $(date) "] INFO starting (kafka.server.KafkaServer)"
sleep 3
echo "[" $(date) "] INFO Awaiting socket connections on 0.0.0.0:9092. (kafka.network.Acceptor)"
while [ true ]
do
nc -l 9092 >> trash.txt 2>&1
done
11. Architecture vue de loin
Data delivery
Kafka
HDFS
Processors / Analytics Sinks
Kafka
HDFS
MongoDB
Hive
Cassandra
Elasticsearch
Schema
registry
Data sources
Logs
Social
Bases de
données
Evénements
Capteurs
...
S3
DB
...
Data Viz
Data
storage
Data processing
Aggregate
Join
Branch ...
Projection
Filter
MySQL ...
16. Largement adopté par tous (même si on peut/veut l’éviter…)
○ Développeur
○ Architecte data
○ Data scientist
○ Et des beaucoup moins techniques !!
Pourquoi SQL in 2018 ?
C’est un standard !
Les streams sont des données comme les autres !
Alors pourquoi ne pas utiliser SQL pour les requêter ?
17. SQL vs. Stream processing
Relational Algebra / SQL Stream Processing
Relations (or tables) are bounded (multi-)sets of
tuples.
A stream is an infinite sequences of tuples.
A query that is executed on batch data (e.g., a table
in a relational database) has access to the
complete input data.
A streaming query cannot access all data
when is started and has to "wait" for data to
be streamed in.
A batch query terminates after it produced a fixed
sized result.
A streaming query continuously updates its
result based on the received records and
never completes.
Source: https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/table/streaming.html
18. Requêter en SQL un stream ?
weblogs
url status
/help 200
Compter les nombres
de requêtes pour
chaque URL
/help 1
/help 1
/products 1
/help 1
/products 2
/products 200
/products 500
Réception ➜ Traitement ➜ Mise à jour du résultat
SELECT
url,
count(*) as nb_req
FROM
weblogs
GROUP BY
url
20. Apache Calcite
● Catalogue des metadatas
● Parsing SQL
● Validation des requêtes SQL
● Optimisation des requêtes SQL
○ Plan d’exécution
● Adaptateurs pour différentes sources de données (MongoDB, Elastic, …)
Pour les streams: définition d’un minimum de mots-clés et de fonctions
pour les requêter
L’exécution des requêtes est à la charge du système utilisant Calcite
21. THE keyword !
SELECT STREAM * FROM weblogs;
weblogs est un stream
Requêtes ne se terminant pas
Sur quelles données ? de maintenant à ...
SELECT STREAM url, status_code, nb_bytes FROM weblogs;
SELECT STREAM url, nb_bytes FROM weblogs WHERE status = 500;
22. Jointure avec une table
Et si la table bouge ?
Une solution: stocker
l’historique dans la table pour
l’utiliser dans la requête
SELECT STREAM c.id_pizza, p.prix
FROM commandes_pizza AS c
JOIN pizzas AS p
ON c.id_pizza = p.id_pizza;
Simple pour une table qui
ne change pas
SELECT STREAM c.id_pizza, p.prix
FROM commandes_pizza AS c
JOIN pizzas AS p
ON c.id_pizza = p.id_pizza
AND c.rowtime
BETWEEN p.dateDebut AND p.dateFin;
23. Group by, order by: quelques contraintes
SELECT STREAM status, count(*) FROM weblogs
GROUP BY status;
Non autorisé par Calcite
Le GROUP BY doit inclure une valeur monotone (par ex, rowtime)
SELECT STREAM status, count(*) FROM weblogs
GROUP BY rowtime, status;
24. Windowing
sum() 3 12 13 8
Tumbling window
SELECT STREAM
TUMBLE_END(rowtime, INTERVAL '10' SECOND),
url,
SUM(nb_bytes) AS total_bytes
FROM weblogs
GROUP BY TUMBLE(rowtime, INTERVAL '10' SECOND), url;
1
2 3
5
4 6
7
8
t
0 10 20 30 40
25. Windowing
Hopping window
SELECT STREAM
HOP_END(rowtime, INTERVAL '10' SECOND , INTERVAL '15' SECOND ) AS rowtime,
SUM(nb_bytes) AS total_bytes
FROM weblogs
GROUP BY HOP(rowtime, INTERVAL '5' SECOND , INTERVAL '10' SECOND );
sum() 6 18 21 17
1
2 3
5
4
6
7
8
t
0 10 20 30 40
9
28. Storm SQL
CREATE EXTERNAL TABLE weblogs
(ID INT PRIMARY KEY, TS BIGINT, IP_ADDRESS VARCHAR,
URL VARCHAR, STATUS INT, NB_BYTES INT)
LOCATION 'kafka://localhost:2181/brokers?topic=weblogs'
CREATE EXTERNAL TABLE errorlogs
(ID INT PRIMARY KEY, TS BIGINT, URL VARCHAR,
STATUS INT, NB_BYTES INT)
LOCATION 'kafka://localhost:2181/brokers?topic=errorlogs'
TBLPROPERTIES
'{"producer":{"bootstrap.servers":"localhost:9092","acks":"1",
"key.serializer":"org.apache.storm.kafka.IntSerializer",
"value.serializer":"org.apache.storm.kafka.ByteBufferSerializer"}}'
INSERT INTO errorlogs
SELECT ID, TS, URL, STATUS, NB_BYTES
FROM weblogs
WHERE STATUS >= 400
Kafka
spout
Filtre
erreurs
Kafka
producer
tupletuple
29. Storm SQL
Logical Plan
Table Scan
Filter
Projection
Table Modify
Physical Plan
Storm Spout
Filter
Projection
Storm Sink
INSERT INTO errorlogs
SELECT
ID, TS, URL, STATUS, NB_BYTES
FROM weblogs
WHERE STATUS >= 400
topo.newStream()
.filter(...)
.projection(...)
.persist(...)
On retrouve Apache Calcite à
peu près par là (construction du
plan d’exécution logique)
30. L’exemple Uber: Athenax
The mission of Uber is to make transportation as reliable as
running water. The business is fundamentally driven by real-time
data — more than half of the employees in Uber, many of whom
are non-technical, use SQL on a regular basis to analyze data and
power their business decisions. We are building AthenaX, a stream
processing platform built on top of Apache Flink to enable our
users to write SQL to process real-time data efficiently and reliably
at Uber’s scale.
“
”
35. Ouais, bon, coder c’est
quand même mieux !
(et hop, un p’tit peu de dette technique en prod!)
36. Conclusion
Certes, SQL et le drag&drop, ce n’est pas du rêve de développeurs
!
Mais n’oubliez pas les personnes qui vont
“développer” les traitements.
Le SQL et un framework comme Flink
permettent de réunir tous les acteurs
autour d’un outil commun pour traiter
les données, streams ou pas !