Chp3 – Traitement de Données
Batch vs. Streaming Processing
Big Data
GL4 (Option Management des Systèmes d'Information) - 2016
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
Traitement par lot: Batch Processing
•  Moyen efficace de traiter de grands volumes de données
•  Les données sont collectées, stockées, traitées, puis les résultats
fournis
•  Les systèmes de batch processing ont besoin de programmes
différents pour l’entrée, le traitement et la génération des données
•  Le traitement est réalisé sur l’ensemble des données
•  Traitement de Données Complexes (CEP: Complex Event Processing)
§  Concept de traitement des évènements pour identifier les évènements
significatifs
§  Détection de schémas complexes, corrélation, abstraction et hiérarchie
entre évènements
•  Hadoop Map-Reduce est un exemple de système utilisant le
traitement par lot
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2
Présentation
Traitement par lot: Batch Processing
•  A accès à toutes les données
•  Peut réaliser des traitements lourds et complexes
•  Est en général plus concerné par le débit (nombre d’actions réalisées
en une unité de temps) que par la latence (temps requis pour réaliser
l’action) des différents composants du traitement
•  Sa latence est calculée en minutes (voire plus)
•  Cible les caractéristiques volume et variété des Big Data
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3
Caractéristiques
Traitement par lot: Batch Processing
•  Il n’est pas possible d’exécuter des travaux récursifs ou itératifs de
manière inhérente
•  Toutes les données doivent être prêtes avant le début du job
§  N’est pas approprié pour des traitements en ligne ou temps réel
•  Latence d’exécution élevée
§  Produit des résultats sur des données relativement anciennes
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4
Inconvénients
Traitement par lot: Batch Processing
•  Les chèques de dépôt dans une banque sont accumulés et traités
chaque jour
•  Les statistiques par mois/jour/année
•  Factures générées pour les cartes de crédit (en général mensuelles)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5
Cas d’utilisation
Traitement par Streaming
•  Les traitements se font sur un élément ou un petit nombre de données
récentes
•  Le traitement est relativement simple
•  Doit compléter chaque traitement en un temps proche du temps-réel
•  Les traitements sont généralement indépendants
•  Asynchrone: les sources de données n’interagissent pas directement
avec l’unité de traitement en streaming, en attendant une réponse par
exemple
•  La latence de traitement est estimée en secondes
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6
Caractéristiques
Traitement par Streaming
•  Pas de visibilité sur l’ensemble des données
§  Certains types de traitements ne peuvent pas être réalisés
•  Complexité opérationnelle élevée
§  Plus complexes à maintenir que les traitements batch
§  Le système doit être toujours connecté, toujours prêt, avoir des temps de
réponses courts, et gérer les données à l’arrivée
•  Risque de perte de données
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7
Inconvénients
Traitement par Streaming
•  Recommandations en temps réel
§  Prise en compte de navigation récente, géolocalisation
§  Publicité en ligne, re-marketing
•  Surveillance de larges infrastructures
•  Agrégation de données financières à l’échelle d’une banque
•  Internet des objets
•  …
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8
Cas d’Utilisation
Traitement en Temps réel
•  Réponse du système en quelques millisecondes
•  Plus approprié pour les APIs synchrones
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9
Caractéristiques
Lambda Architecture
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10
Architecture
Lambda Architecture
•  Batch Layer
§  Gérer l’unité de stockage principale: des données brutes, immuables et
complètes
§  Permet de précalculer et conserver les résultats de requêtes appelées batch
Views
•  Serving Layer
§  Permet d’indexer les batch views pour qu’elles soient requêtées au besoin
avec une faible latence
•  Speed Layer
§  Permet d’accommoder toutes les requêtes sujettes à des besoins de faible
latence
§  Utilisation d’algorithmes rapides et incrémentaux
§  Gère les données récentes uniquement
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11
Couches
Lambda Architecture
•  Stockage maître + Traitements Batch
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12
Batch Layer
Lambda Architecture
•  Besoins:
§  Stockage scalable
o  Haute distribution
o  Support de la charge et du volume
§  Tolérance aux pannes
o  Système de réplication et distribution des données
§  Robustesse
o  Surtout concernant les évolutions du schéma
§  Permettant tout type de traitement
•  Technologies
§  Hadoop
§  Avro : Système de sérialisation des données
§  Hive
§  …
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13
Batch Layer
Lambda Architecture
•  Mise à jour des vues en continu, de manière incrémentale
•  Latence: ~10ms -> qq secondes
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14
Speed Layer
Lambda Architecture
•  Besoins:
§  Traitement en continu (stream processing)
§  Architecture asynchrone, distribuée et scalable
§  Tolérance aux pannes
§  Garanties de traitement si possible
o  Rejeu possible des message en cas de perte d’un noeud
•  Technologies
§  Kafka : collecte temps réel
§  Akka : message-driven applications
§  Storm : Stream processing
§  Spark : Micro-batch processing
§  …
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15
Speed Layer
Lambda Architecture
•  Vues précalculées
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16
Serving Layer : Batch Views
Lambda Architecture
•  Besoins:
§  Écritures massives
§  Lectures indexées, accès aléatoire à faible temps de réponse
§  Scalabilité et tolérance aux pannes
•  Technologies
§  Cassandra
§  Hbase
§  SploutSQL : requêtage SQL à faible latence
§  …
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17
Serving Layer : Batch Views
Lambda Architecture
•  Vues doivent être requêtées de façon intensive et performante
•  Temps de réponse court, fort débit de requête supporté
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18
Serving Layer: Realtime Views
Lambda Architecture
•  Besoins
§  Support de fortes sollicitations en lecture et écriture (mise à jour
incrémentale)
§  Scalabilité et tolérance aux pannes
•  Technologies
§  Cassandra
§  Hbase
§  Redis
§  ElasticSearch
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19
Serving Layer: Realtime Views
Lambda Architecture
•  Logique de fusion développée selon les vues et leur modélisation
•  Peut s’avérer difficile
§  Expiration des vues
§  Recouvrement (intersection) possible entre les données batch et temps-réel
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20
Serving Layer: Fusion
Lambda Architecture
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21
Proposition d’Implémentation (MapR)
Lambda Architecture
Avantages
•  Données de base sont immuables et conservées en entier
•  Grande tolérance aux fautes contre les pannes matérielles et les
erreurs humaines
•  Supporte une variété de cas d’utilisation qui incluent un requêtage à
faible latence tout autant que des mises à jour
•  Capacité de « scaling out » linéaire
•  Facilement extensible
Inconvénients
•  Peut s’avérer coûteuse en terme de mise en place et expertise
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 22
Caractéristiques
•  Encore des lettres grecques…
§  Kappa :
http://radar.oreilly.com/2014/07/questioning-the-lambda-
architecture.html
§  Zeta :
http://fr.slideshare.net/MapRTechnologies/next-generation-
enterprise-architecture-41966097
§  ιot-a :
http://iot-a.info/
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 23
Autres Architectures
En Conclusion…
•  Tout est dans l’art d’être polyglotte…
§  Polyglot Programming
o  Utilisation de plusieurs langages et paradigmes de programmation dans une
seule application
§  Polyglot Persistence
o  Utilisation de plusieurs technologies de stockage
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 24
Sources
•  Présentations
§  Lambda Architecture: comment réconcilier Big Data et temps réel, Mathieu
Despriee
•  Articles
§  Lambda-Architecture, MapR Developer Center:
https://www.mapr.com/developercentral/lambda-architecture
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 25

BigData_Chp3: Data Processing

  • 1.
    Chp3 – Traitementde Données Batch vs. Streaming Processing Big Data GL4 (Option Management des Systèmes d'Information) - 2016 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1
  • 2.
    Traitement par lot:Batch Processing •  Moyen efficace de traiter de grands volumes de données •  Les données sont collectées, stockées, traitées, puis les résultats fournis •  Les systèmes de batch processing ont besoin de programmes différents pour l’entrée, le traitement et la génération des données •  Le traitement est réalisé sur l’ensemble des données •  Traitement de Données Complexes (CEP: Complex Event Processing) §  Concept de traitement des évènements pour identifier les évènements significatifs §  Détection de schémas complexes, corrélation, abstraction et hiérarchie entre évènements •  Hadoop Map-Reduce est un exemple de système utilisant le traitement par lot Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2 Présentation
  • 3.
    Traitement par lot:Batch Processing •  A accès à toutes les données •  Peut réaliser des traitements lourds et complexes •  Est en général plus concerné par le débit (nombre d’actions réalisées en une unité de temps) que par la latence (temps requis pour réaliser l’action) des différents composants du traitement •  Sa latence est calculée en minutes (voire plus) •  Cible les caractéristiques volume et variété des Big Data Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 Caractéristiques
  • 4.
    Traitement par lot:Batch Processing •  Il n’est pas possible d’exécuter des travaux récursifs ou itératifs de manière inhérente •  Toutes les données doivent être prêtes avant le début du job §  N’est pas approprié pour des traitements en ligne ou temps réel •  Latence d’exécution élevée §  Produit des résultats sur des données relativement anciennes Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 Inconvénients
  • 5.
    Traitement par lot:Batch Processing •  Les chèques de dépôt dans une banque sont accumulés et traités chaque jour •  Les statistiques par mois/jour/année •  Factures générées pour les cartes de crédit (en général mensuelles) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 Cas d’utilisation
  • 6.
    Traitement par Streaming • Les traitements se font sur un élément ou un petit nombre de données récentes •  Le traitement est relativement simple •  Doit compléter chaque traitement en un temps proche du temps-réel •  Les traitements sont généralement indépendants •  Asynchrone: les sources de données n’interagissent pas directement avec l’unité de traitement en streaming, en attendant une réponse par exemple •  La latence de traitement est estimée en secondes Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6 Caractéristiques
  • 7.
    Traitement par Streaming • Pas de visibilité sur l’ensemble des données §  Certains types de traitements ne peuvent pas être réalisés •  Complexité opérationnelle élevée §  Plus complexes à maintenir que les traitements batch §  Le système doit être toujours connecté, toujours prêt, avoir des temps de réponses courts, et gérer les données à l’arrivée •  Risque de perte de données Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7 Inconvénients
  • 8.
    Traitement par Streaming • Recommandations en temps réel §  Prise en compte de navigation récente, géolocalisation §  Publicité en ligne, re-marketing •  Surveillance de larges infrastructures •  Agrégation de données financières à l’échelle d’une banque •  Internet des objets •  … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 Cas d’Utilisation
  • 9.
    Traitement en Tempsréel •  Réponse du système en quelques millisecondes •  Plus approprié pour les APIs synchrones Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 Caractéristiques
  • 10.
    Lambda Architecture Dr. LiliaSFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 Architecture
  • 11.
    Lambda Architecture •  BatchLayer §  Gérer l’unité de stockage principale: des données brutes, immuables et complètes §  Permet de précalculer et conserver les résultats de requêtes appelées batch Views •  Serving Layer §  Permet d’indexer les batch views pour qu’elles soient requêtées au besoin avec une faible latence •  Speed Layer §  Permet d’accommoder toutes les requêtes sujettes à des besoins de faible latence §  Utilisation d’algorithmes rapides et incrémentaux §  Gère les données récentes uniquement Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 Couches
  • 12.
    Lambda Architecture •  Stockagemaître + Traitements Batch Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12 Batch Layer
  • 13.
    Lambda Architecture •  Besoins: § Stockage scalable o  Haute distribution o  Support de la charge et du volume §  Tolérance aux pannes o  Système de réplication et distribution des données §  Robustesse o  Surtout concernant les évolutions du schéma §  Permettant tout type de traitement •  Technologies §  Hadoop §  Avro : Système de sérialisation des données §  Hive §  … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13 Batch Layer
  • 14.
    Lambda Architecture •  Miseà jour des vues en continu, de manière incrémentale •  Latence: ~10ms -> qq secondes Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14 Speed Layer
  • 15.
    Lambda Architecture •  Besoins: § Traitement en continu (stream processing) §  Architecture asynchrone, distribuée et scalable §  Tolérance aux pannes §  Garanties de traitement si possible o  Rejeu possible des message en cas de perte d’un noeud •  Technologies §  Kafka : collecte temps réel §  Akka : message-driven applications §  Storm : Stream processing §  Spark : Micro-batch processing §  … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 Speed Layer
  • 16.
    Lambda Architecture •  Vuesprécalculées Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16 Serving Layer : Batch Views
  • 17.
    Lambda Architecture •  Besoins: § Écritures massives §  Lectures indexées, accès aléatoire à faible temps de réponse §  Scalabilité et tolérance aux pannes •  Technologies §  Cassandra §  Hbase §  SploutSQL : requêtage SQL à faible latence §  … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 Serving Layer : Batch Views
  • 18.
    Lambda Architecture •  Vuesdoivent être requêtées de façon intensive et performante •  Temps de réponse court, fort débit de requête supporté Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 Serving Layer: Realtime Views
  • 19.
    Lambda Architecture •  Besoins § Support de fortes sollicitations en lecture et écriture (mise à jour incrémentale) §  Scalabilité et tolérance aux pannes •  Technologies §  Cassandra §  Hbase §  Redis §  ElasticSearch Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19 Serving Layer: Realtime Views
  • 20.
    Lambda Architecture •  Logiquede fusion développée selon les vues et leur modélisation •  Peut s’avérer difficile §  Expiration des vues §  Recouvrement (intersection) possible entre les données batch et temps-réel Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20 Serving Layer: Fusion
  • 21.
    Lambda Architecture Dr. LiliaSFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21 Proposition d’Implémentation (MapR)
  • 22.
    Lambda Architecture Avantages •  Donnéesde base sont immuables et conservées en entier •  Grande tolérance aux fautes contre les pannes matérielles et les erreurs humaines •  Supporte une variété de cas d’utilisation qui incluent un requêtage à faible latence tout autant que des mises à jour •  Capacité de « scaling out » linéaire •  Facilement extensible Inconvénients •  Peut s’avérer coûteuse en terme de mise en place et expertise Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 22 Caractéristiques
  • 23.
    •  Encore deslettres grecques… §  Kappa : http://radar.oreilly.com/2014/07/questioning-the-lambda- architecture.html §  Zeta : http://fr.slideshare.net/MapRTechnologies/next-generation- enterprise-architecture-41966097 §  ιot-a : http://iot-a.info/ Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 23 Autres Architectures
  • 24.
    En Conclusion… •  Toutest dans l’art d’être polyglotte… §  Polyglot Programming o  Utilisation de plusieurs langages et paradigmes de programmation dans une seule application §  Polyglot Persistence o  Utilisation de plusieurs technologies de stockage Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 24
  • 25.
    Sources •  Présentations §  LambdaArchitecture: comment réconcilier Big Data et temps réel, Mathieu Despriee •  Articles §  Lambda-Architecture, MapR Developer Center: https://www.mapr.com/developercentral/lambda-architecture Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 25