SlideShare uma empresa Scribd logo
1 de 36
www.usievents.com #USI2014
Lambda-architecture
ou comment réconcilier les Big-Data avec le temps réel
Mathieu DESPRIEE
@mdeocto
www.usievents.com #USI2014
λ-ARCHITECTURE
Quels use-cases ?
Qu’est-ce que la lambda-architecture ?
Quels sont ses principes, comment elle se construit ?
Quelles technologies pour l’implémenter ?
www.usievents.com #USI2014
Origines
manning.com/marz
Nathan Marz
Ex-Backtype & Twitter
Initiateur des frameworks
Storm
Cascalog
ElephantDB
Backtype
Capture d’événements et de
logs Twitter pour analyse
25 TB binary data
100 Billions of records
400 QPS Average
www.usievents.com #USI2014
BigData + Temps Réel :
Pour quels use-cases ?
Recommandation en temps-réel
Prise en compte de la navigation récente, geolocalisation
Pour : re-marketing, publicité en ligne…
Surveillance de larges infrastructures
Telcos, Industrie, grands data-centers…
Smart-metering
Agrégation de données financières à l’échelle d’une banque
Internet des objets
…
Des flux de données à prendre en compte en temps-réel
Des historiques très volumineux qui recèlent de la valeur
www.usievents.com #USI2014
Prend en charge toutes les données
qu’elles soient historique ou datent de la
dernière seconde
Capable de répondre à n’importe quel
type de requête
analytique, datamining, search…
Tolérant les pannes
Robuste aux évolutions, aux erreurs
Scalable :
x 10 TB en stockage
x 1’000 evt / second
x 100 query / second
Basse latence en écriture ET en lecture
Le système BigData à construire
data
flow
big data system
queries
application
www.usievents.com #USI2014
De quelles données parle-t-on ?
un tweet
un utilisateur qui se loggue
un utilisateur qui donne une nouvelle adresse
un hit sur un serveur web
un paiement
une métrique d’infrastructure
 Tout est événement
des faits
datés
immuables (« éternellement vrais »)
www.usievents.com #USI2014
La bonne vieille base de données
Ex d’une action utilisateur (changement d’adresse) :
Le problème : chaque UPDATE détruit les informations
précédentes
UPDATE
www.usievents.com #USI2014
Stockage immuable
Pas d’UPDATE, seulement des INSERT
Toute autre information peut être dérivée/reconstruite à
partir de ces données brutes
www.usievents.com #USI2014
Immuabilité : quels gains ?
Performance du stockage
APPEND-only est très performant, ex. Hadoop/HDFS
Pensez-y, au cœur d’une base SQL, il y a un append-log,
qui est le maître en cas de crash…
Robustesse aux erreurs humaines
Un bug ne viendra jamais détruire de la donnée, seulement
ajouter des enregistrements erronés (ou doublonnés, ou…)
Facile à corriger :
Soit on vient supprimer les lignes erronées,
Soit on ajoute des lignes correctrices
www.usievents.com #USI2014
Principe #1
Une architecture basée sur des données immuables
www.usievents.com #USI2014
Prend en charge toutes les données
qu’elles soient historique ou datent de la
dernière seconde
Capable de répondre à n’importe quel
type de requête
analytique, datamining, search…
Tolérant les pannes
Robuste aux évolutions, aux erreurs
Scalable :
x 10 TB en stockage
x 1’000 evt / second
x 100 query / second
Basse latence en écriture ET en lecture
Le système BigData à construire
data
flow
big data system
queries
application
www.usievents.com #USI2014
query = function ( ALL data )
www.usievents.com #USI2014
ALL
DATA
precomputed
view
query
( ie. on sépare les problèmes : stockage, calcul, lecture )
Principe #2
Une architecture basée sur des vues précalculées
www.usievents.com #USI2014
hashtag hour_range count
#usi2014 09:00 12
#usi2014 10:00 138
#usi2014 11:00 12543
#lambda 11:00 42
… … …
hashtag day_range count
#usi2014 15/06 12
#usi2014 16/06 138
#lambda 15/06 5
… … …
hashtag user count
#lambda @mdeocto 5
#lambda @nathanmarz 2045
#lambda @mhausenblas 230
… … …
Vues précalculées
Pour chaque classe de requête, on
précalcule des vues dédiées
dénormalisées
indexées
rapides à requêter
supportant des opérations simples
(sum, count…)
www.usievents.com #USI2014
SERVING
LAYER
SPEED LAYER
BATCH LAYER
DATA FLOW QUERIES
λ-ARCHITECTURE
REAL TIME
STREAM PROCESSING
BATCH
PROCESSING
PRECOMPUTED
VIEWS
www.usievents.com #USI2014
BATCH LAYER
www.usievents.com #USI2014
DATA FLOW QUERIES
BATCH LAYER
BATCH
PROCESSING
« BATCH VIEWS »
Batch Layer
Stockage maître + traitements batch
MASTER DATA
www.usievents.com #USI2014
Batch Layer : quelle techno ?
Besoins :
Stockage scalable
Tolérant aux pannes
Robuste
notamment aux évolutions de schéma
Permettant tout type de processing
www.usievents.com #USI2014
SERVING LAYER
www.usievents.com #USI2014
real-time
processing
SPEED LAYER
REAL TIME
STREAM PROCESSING
DATA FLOW QUERIES
BATCH LAYER
SERVING
LAYER
Vues précalculées
2
1
batch processing
full dataset
BATCH VIEW
DATABASE
publish
www.usievents.com #USI2014
Stockage des vues : quelle techno ?
Besoins :
Ecritures massives
Lectures indexées (accès aléatoire) à faible temps de
réponse
Scalable et tolérant à la panne
www.usievents.com #USI2014
maintenant
TEMPS
Données prises en compte
dans les batch views
Pas encore
absorbées
QUELQUES HEURES
DE DONNÉES
www.usievents.com #USI2014
SPEED LAYER
www.usievents.com #USI2014
SPEED LAYER
REAL TIME
STREAM PROCESSING
DATA FLOW QUERIES
Speed Layer
Le rôle du speed layer est de mettre à jour des vues, en continu, de
manière incrémentale
La latence de traitement doit être de l’ordre de 10ms à qqs
secondes
« REAL-TIME VIEWS »
www.usievents.com #USI2014
Speed layer : caractéristiques recherchées
Traitement en continu (stream processing)
Architecture asynchrone, distribuée et scalable
Tolérant à la panne
Si possible avec des garanties de traitement
capacité à rejouer automatiquement des messages en cas
de perte d’un nœud
www.usievents.com #USI2014
Speed layer : technologies
Pour des petites topologies : Queues + Workers
Storm
Spark
www.usievents.com #USI2014
Focus : Storm
Framework initié par N. Marz
Storm est un framework de traitement
distribué orienté flux d’événements
prenant en charge :
management de multiple nœuds
queueing, routage
serialisation / de-serialisation
reprise sur panne
Storm est nativement distribué,
performant, tolérant les pannes, et
permet de garantir le traitement des
événements
www.usievents.com #USI2014
SPEED LAYER
REAL TIME
STREAM PROCESSING
DATA FLOW QUERIES
Real-time views
Les vues produites doivent pouvoir être requêtées de
façon intensive et performante
temps de réponse court
et fort débit de requête attendu
« REAL-TIME VIEWS »
SERVING
LAYER
www.usievents.com #USI2014
Real-time views : quelle techno ?
Besoins :
Doit supporter de fortes sollicitations en lecture
(requêtes) et écritures (mises-à-jour incrémentales)
Doit être scalable et tolérant à la panne
Des fonctions avancées peuvent être utiles à ce niveau
ex : compteurs atomiques distribués, structures type hashsets…
www.usievents.com #USI2014
…pour finir…
www.usievents.com #USI2014
SERVING
LAYER
QUERIES
Fusion des données batch et real-time
La logique de fusion est un développement custom qui dépend des
vues et de leur modélisation
Pas un sujet facile :
expiration des vues
recouvrement possible entre données batch et temps-réel
…
real-time
views
batch
views
www.usievents.com #USI2014
SERVING
LAYER
DATA FLOW QUERIES
SPEED LAYER
BATCH LAYER
real-time
processing
REAL TIME
STREAM PROCESSING
BATCH
PROCESSING
PRECOMPUTED
VIEWS
λ-ARCHITECTURE
www.usievents.com #USI2014
Mathieu DESPRIEE
@mdeocto
www.usievents.com #USI2014
Backup
www.usievents.com #USI2014
BATCH LAYER SPEED LAYER
Persistance Données maîtres Données volatiles
Type de calcul Full-scan Incrémental
Latence des traitements Heures / Jour Secondes
Cohérence vs. Fraicheur Données cohérentes à
terme
Données fraiches mais calculs
moins précis
Contrainte hardware CPU-bound
Disk-bound
Memory-bound
Exemple de tradeoff possible
dans la conception
Preprocessing ++
Batch views + rapides
Durée processing ++
Taille des vues temps-réèl ++
Imprécision ++
www.usievents.com #USI2014
Eventual accuracy (précision à terme)
Certains calculs sont difficiles à réaliser en incrémental
ex. Visiteurs uniques d’un site web
un comptage exact nécessite de conserver toutes les visites en
mémoire
Une alternative : HyperLogLog est un algorithme qui permet de
faire une approximation d’un unique count, avec un espace
mémoire très limité
ex2. Le visiteur navigue sur mon site en anonyme, puis se loggue. On
ne peut savoir que le visiteur est unique qu’après cette opération de
login…
Seules les vues batch peuvent calculer cette information
précisément

Mais conteúdo relacionado

Mais procurados

Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataMicrosoft
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysVictor Coustenoble
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQLAntoine Augusti
 
HTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréHTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréZenika
 
DataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTDataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTVictor Coustenoble
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkALTIC Altic
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraVictor Coustenoble
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...OCTO Technology
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2Mehdi TAZI
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamTelecomValley
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3 Mehdi TAZI
 
Big Data : Une Introduction
Big Data : Une IntroductionBig Data : Une Introduction
Big Data : Une IntroductionNicolas OGÉ
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Jérôme Mainaud
 

Mais procurados (20)

Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
HTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréHTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien Landuré
 
DataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTDataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoT
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
 
Webinar Degetel DataStax
Webinar Degetel DataStaxWebinar Degetel DataStax
Webinar Degetel DataStax
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3
 
Big Data : Une Introduction
Big Data : Une IntroductionBig Data : Une Introduction
Big Data : Une Introduction
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
 

Destaque

Implementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache SparkImplementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache SparkDataWorks Summit
 
Big data real time architectures
Big data real time architecturesBig data real time architectures
Big data real time architecturesDaniel Marcous
 
Architecture data-flow programmable pour le traitement d’image
Architecture data-flow programmable pour le traitement d’imageArchitecture data-flow programmable pour le traitement d’image
Architecture data-flow programmable pour le traitement d’imageCiprian Teodorov
 
Lambda architecture for real time big data
Lambda architecture for real time big dataLambda architecture for real time big data
Lambda architecture for real time big dataTrieu Nguyen
 
Apache storm vs. Spark Streaming
Apache storm vs. Spark StreamingApache storm vs. Spark Streaming
Apache storm vs. Spark StreamingP. Taylor Goetz
 
Amadeus
AmadeusAmadeus
AmadeusH Boy
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraMichaël Figuière
 
Solving the Internet of Things - AWS IoT Web Day
Solving the Internet of Things - AWS IoT Web Day Solving the Internet of Things - AWS IoT Web Day
Solving the Internet of Things - AWS IoT Web Day AWS Germany
 
Construire des Applications Web Performantes - Rule Book Webinar
Construire des Applications Web Performantes - Rule Book WebinarConstruire des Applications Web Performantes - Rule Book Webinar
Construire des Applications Web Performantes - Rule Book WebinarAmazon Web Services
 
BigData en France par Excelerate Systems
BigData en France par Excelerate Systems BigData en France par Excelerate Systems
BigData en France par Excelerate Systems Excelerate Systems
 
Pachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerPachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerEnguerran Delahaie
 
Big Data in the Cloud - Montreal April 2015
Big Data in the Cloud - Montreal April 2015Big Data in the Cloud - Montreal April 2015
Big Data in the Cloud - Montreal April 2015Cindy Gross
 
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)Robert Metzger
 
#BigDataBx 1 - Présentation de la BI au BigData - Solocal Group
#BigDataBx 1 - Présentation de la BI au BigData - Solocal Group#BigDataBx 1 - Présentation de la BI au BigData - Solocal Group
#BigDataBx 1 - Présentation de la BI au BigData - Solocal GroupExcelerate Systems
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopJoseph Glorieux
 
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormApache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormParis_Storm_UG
 
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...Nathan Bijnens
 

Destaque (20)

Implementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache SparkImplementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache Spark
 
Big data real time architectures
Big data real time architecturesBig data real time architectures
Big data real time architectures
 
Architecture data-flow programmable pour le traitement d’image
Architecture data-flow programmable pour le traitement d’imageArchitecture data-flow programmable pour le traitement d’image
Architecture data-flow programmable pour le traitement d’image
 
Lambda architecture for real time big data
Lambda architecture for real time big dataLambda architecture for real time big data
Lambda architecture for real time big data
 
Apache storm vs. Spark Streaming
Apache storm vs. Spark StreamingApache storm vs. Spark Streaming
Apache storm vs. Spark Streaming
 
Amadeus
AmadeusAmadeus
Amadeus
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
 
Solving the Internet of Things - AWS IoT Web Day
Solving the Internet of Things - AWS IoT Web Day Solving the Internet of Things - AWS IoT Web Day
Solving the Internet of Things - AWS IoT Web Day
 
Zenika MongoDB Tour - REX Amadeus
Zenika MongoDB Tour - REX AmadeusZenika MongoDB Tour - REX Amadeus
Zenika MongoDB Tour - REX Amadeus
 
Construire des Applications Web Performantes - Rule Book Webinar
Construire des Applications Web Performantes - Rule Book WebinarConstruire des Applications Web Performantes - Rule Book Webinar
Construire des Applications Web Performantes - Rule Book Webinar
 
BigData en France par Excelerate Systems
BigData en France par Excelerate Systems BigData en France par Excelerate Systems
BigData en France par Excelerate Systems
 
Pachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerPachyderm big data de l'ère docker
Pachyderm big data de l'ère docker
 
Big Data in the Cloud - Montreal April 2015
Big Data in the Cloud - Montreal April 2015Big Data in the Cloud - Montreal April 2015
Big Data in the Cloud - Montreal April 2015
 
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
 
#BigDataBx 1 - Présentation de la BI au BigData - Solocal Group
#BigDataBx 1 - Présentation de la BI au BigData - Solocal Group#BigDataBx 1 - Présentation de la BI au BigData - Solocal Group
#BigDataBx 1 - Présentation de la BI au BigData - Solocal Group
 
Présentation Cryptographie
Présentation CryptographiePrésentation Cryptographie
Présentation Cryptographie
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
 
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormApache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
 
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
 

Semelhante a [USI] Lambda-Architecture : comment réconcilier BigData et temps-réel

Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Webinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesWebinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesOVHcloud
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanneDidier Durand
 
Usi 2013-next big data architecture
Usi 2013-next big data architectureUsi 2013-next big data architecture
Usi 2013-next big data architectureOlivier Mallassi
 
Vision et poc EDFsur les enjeux big data
Vision et poc EDFsur les enjeux big dataVision et poc EDFsur les enjeux big data
Vision et poc EDFsur les enjeux big dataBruno Patin
 
Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018Converteo
 
HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...
HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...
HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...Hitachi Data Systems France
 
Retour d'expérience Reador sur le #WebSem sophiaconf2014
Retour d'expérience Reador sur le #WebSem sophiaconf2014Retour d'expérience Reador sur le #WebSem sophiaconf2014
Retour d'expérience Reador sur le #WebSem sophiaconf2014descl
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataLudovic Piot
 
Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitGregoire Lejeune
 
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Marius Zaharia
 
Les clouds, du buzz à la vraie science
Les clouds, du buzz à la vraie scienceLes clouds, du buzz à la vraie science
Les clouds, du buzz à la vraie scienceFrederic Desprez
 
Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Arnaud LEMAIRE
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...
Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...
Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...FactoVia
 
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataGUSS
 

Semelhante a [USI] Lambda-Architecture : comment réconcilier BigData et temps-réel (20)

Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Webinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesWebinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud Databases
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne
 
Mon Stockage a la Cloud Attitude
Mon Stockage a la Cloud Attitude Mon Stockage a la Cloud Attitude
Mon Stockage a la Cloud Attitude
 
Usi 2013-next big data architecture
Usi 2013-next big data architectureUsi 2013-next big data architecture
Usi 2013-next big data architecture
 
Vision et poc EDFsur les enjeux big data
Vision et poc EDFsur les enjeux big dataVision et poc EDFsur les enjeux big data
Vision et poc EDFsur les enjeux big data
 
Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018
 
HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...
HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...
HIF Paris 2014 - L'AGENDA 2014 par Michel Alliel, Directeur Marketing Produit...
 
Retour d'expérience Reador sur le #WebSem sophiaconf2014
Retour d'expérience Reador sur le #WebSem sophiaconf2014Retour d'expérience Reador sur le #WebSem sophiaconf2014
Retour d'expérience Reador sur le #WebSem sophiaconf2014
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 
Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnit
 
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
 
Les clouds, du buzz à la vraie science
Les clouds, du buzz à la vraie scienceLes clouds, du buzz à la vraie science
Les clouds, du buzz à la vraie science
 
Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy
 
Amazon summit 2015
Amazon summit 2015Amazon summit 2015
Amazon summit 2015
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Do you speak technique ?
Do you speak technique ?Do you speak technique ?
Do you speak technique ?
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...
Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...
Retour d'expérience Large IoT project / BigData : détail du cas réel de Hager...
 
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
 

[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel

  • 1. www.usievents.com #USI2014 Lambda-architecture ou comment réconcilier les Big-Data avec le temps réel Mathieu DESPRIEE @mdeocto
  • 2. www.usievents.com #USI2014 λ-ARCHITECTURE Quels use-cases ? Qu’est-ce que la lambda-architecture ? Quels sont ses principes, comment elle se construit ? Quelles technologies pour l’implémenter ?
  • 3. www.usievents.com #USI2014 Origines manning.com/marz Nathan Marz Ex-Backtype & Twitter Initiateur des frameworks Storm Cascalog ElephantDB Backtype Capture d’événements et de logs Twitter pour analyse 25 TB binary data 100 Billions of records 400 QPS Average
  • 4. www.usievents.com #USI2014 BigData + Temps Réel : Pour quels use-cases ? Recommandation en temps-réel Prise en compte de la navigation récente, geolocalisation Pour : re-marketing, publicité en ligne… Surveillance de larges infrastructures Telcos, Industrie, grands data-centers… Smart-metering Agrégation de données financières à l’échelle d’une banque Internet des objets … Des flux de données à prendre en compte en temps-réel Des historiques très volumineux qui recèlent de la valeur
  • 5. www.usievents.com #USI2014 Prend en charge toutes les données qu’elles soient historique ou datent de la dernière seconde Capable de répondre à n’importe quel type de requête analytique, datamining, search… Tolérant les pannes Robuste aux évolutions, aux erreurs Scalable : x 10 TB en stockage x 1’000 evt / second x 100 query / second Basse latence en écriture ET en lecture Le système BigData à construire data flow big data system queries application
  • 6. www.usievents.com #USI2014 De quelles données parle-t-on ? un tweet un utilisateur qui se loggue un utilisateur qui donne une nouvelle adresse un hit sur un serveur web un paiement une métrique d’infrastructure  Tout est événement des faits datés immuables (« éternellement vrais »)
  • 7. www.usievents.com #USI2014 La bonne vieille base de données Ex d’une action utilisateur (changement d’adresse) : Le problème : chaque UPDATE détruit les informations précédentes UPDATE
  • 8. www.usievents.com #USI2014 Stockage immuable Pas d’UPDATE, seulement des INSERT Toute autre information peut être dérivée/reconstruite à partir de ces données brutes
  • 9. www.usievents.com #USI2014 Immuabilité : quels gains ? Performance du stockage APPEND-only est très performant, ex. Hadoop/HDFS Pensez-y, au cœur d’une base SQL, il y a un append-log, qui est le maître en cas de crash… Robustesse aux erreurs humaines Un bug ne viendra jamais détruire de la donnée, seulement ajouter des enregistrements erronés (ou doublonnés, ou…) Facile à corriger : Soit on vient supprimer les lignes erronées, Soit on ajoute des lignes correctrices
  • 10. www.usievents.com #USI2014 Principe #1 Une architecture basée sur des données immuables
  • 11. www.usievents.com #USI2014 Prend en charge toutes les données qu’elles soient historique ou datent de la dernière seconde Capable de répondre à n’importe quel type de requête analytique, datamining, search… Tolérant les pannes Robuste aux évolutions, aux erreurs Scalable : x 10 TB en stockage x 1’000 evt / second x 100 query / second Basse latence en écriture ET en lecture Le système BigData à construire data flow big data system queries application
  • 12. www.usievents.com #USI2014 query = function ( ALL data )
  • 13. www.usievents.com #USI2014 ALL DATA precomputed view query ( ie. on sépare les problèmes : stockage, calcul, lecture ) Principe #2 Une architecture basée sur des vues précalculées
  • 14. www.usievents.com #USI2014 hashtag hour_range count #usi2014 09:00 12 #usi2014 10:00 138 #usi2014 11:00 12543 #lambda 11:00 42 … … … hashtag day_range count #usi2014 15/06 12 #usi2014 16/06 138 #lambda 15/06 5 … … … hashtag user count #lambda @mdeocto 5 #lambda @nathanmarz 2045 #lambda @mhausenblas 230 … … … Vues précalculées Pour chaque classe de requête, on précalcule des vues dédiées dénormalisées indexées rapides à requêter supportant des opérations simples (sum, count…)
  • 15. www.usievents.com #USI2014 SERVING LAYER SPEED LAYER BATCH LAYER DATA FLOW QUERIES λ-ARCHITECTURE REAL TIME STREAM PROCESSING BATCH PROCESSING PRECOMPUTED VIEWS
  • 17. www.usievents.com #USI2014 DATA FLOW QUERIES BATCH LAYER BATCH PROCESSING « BATCH VIEWS » Batch Layer Stockage maître + traitements batch MASTER DATA
  • 18. www.usievents.com #USI2014 Batch Layer : quelle techno ? Besoins : Stockage scalable Tolérant aux pannes Robuste notamment aux évolutions de schéma Permettant tout type de processing
  • 20. www.usievents.com #USI2014 real-time processing SPEED LAYER REAL TIME STREAM PROCESSING DATA FLOW QUERIES BATCH LAYER SERVING LAYER Vues précalculées 2 1 batch processing full dataset BATCH VIEW DATABASE publish
  • 21. www.usievents.com #USI2014 Stockage des vues : quelle techno ? Besoins : Ecritures massives Lectures indexées (accès aléatoire) à faible temps de réponse Scalable et tolérant à la panne
  • 22. www.usievents.com #USI2014 maintenant TEMPS Données prises en compte dans les batch views Pas encore absorbées QUELQUES HEURES DE DONNÉES
  • 24. www.usievents.com #USI2014 SPEED LAYER REAL TIME STREAM PROCESSING DATA FLOW QUERIES Speed Layer Le rôle du speed layer est de mettre à jour des vues, en continu, de manière incrémentale La latence de traitement doit être de l’ordre de 10ms à qqs secondes « REAL-TIME VIEWS »
  • 25. www.usievents.com #USI2014 Speed layer : caractéristiques recherchées Traitement en continu (stream processing) Architecture asynchrone, distribuée et scalable Tolérant à la panne Si possible avec des garanties de traitement capacité à rejouer automatiquement des messages en cas de perte d’un nœud
  • 26. www.usievents.com #USI2014 Speed layer : technologies Pour des petites topologies : Queues + Workers Storm Spark
  • 27. www.usievents.com #USI2014 Focus : Storm Framework initié par N. Marz Storm est un framework de traitement distribué orienté flux d’événements prenant en charge : management de multiple nœuds queueing, routage serialisation / de-serialisation reprise sur panne Storm est nativement distribué, performant, tolérant les pannes, et permet de garantir le traitement des événements
  • 28. www.usievents.com #USI2014 SPEED LAYER REAL TIME STREAM PROCESSING DATA FLOW QUERIES Real-time views Les vues produites doivent pouvoir être requêtées de façon intensive et performante temps de réponse court et fort débit de requête attendu « REAL-TIME VIEWS » SERVING LAYER
  • 29. www.usievents.com #USI2014 Real-time views : quelle techno ? Besoins : Doit supporter de fortes sollicitations en lecture (requêtes) et écritures (mises-à-jour incrémentales) Doit être scalable et tolérant à la panne Des fonctions avancées peuvent être utiles à ce niveau ex : compteurs atomiques distribués, structures type hashsets…
  • 31. www.usievents.com #USI2014 SERVING LAYER QUERIES Fusion des données batch et real-time La logique de fusion est un développement custom qui dépend des vues et de leur modélisation Pas un sujet facile : expiration des vues recouvrement possible entre données batch et temps-réel … real-time views batch views
  • 32. www.usievents.com #USI2014 SERVING LAYER DATA FLOW QUERIES SPEED LAYER BATCH LAYER real-time processing REAL TIME STREAM PROCESSING BATCH PROCESSING PRECOMPUTED VIEWS λ-ARCHITECTURE
  • 35. www.usievents.com #USI2014 BATCH LAYER SPEED LAYER Persistance Données maîtres Données volatiles Type de calcul Full-scan Incrémental Latence des traitements Heures / Jour Secondes Cohérence vs. Fraicheur Données cohérentes à terme Données fraiches mais calculs moins précis Contrainte hardware CPU-bound Disk-bound Memory-bound Exemple de tradeoff possible dans la conception Preprocessing ++ Batch views + rapides Durée processing ++ Taille des vues temps-réèl ++ Imprécision ++
  • 36. www.usievents.com #USI2014 Eventual accuracy (précision à terme) Certains calculs sont difficiles à réaliser en incrémental ex. Visiteurs uniques d’un site web un comptage exact nécessite de conserver toutes les visites en mémoire Une alternative : HyperLogLog est un algorithme qui permet de faire une approximation d’un unique count, avec un espace mémoire très limité ex2. Le visiteur navigue sur mon site en anonyme, puis se loggue. On ne peut savoir que le visiteur est unique qu’après cette opération de login… Seules les vues batch peuvent calculer cette information précisément