Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Hadoop
  3. Streaming 101
Extrait - Hadoop Devenez opérationnel dans le monde du Big Data
Extraits du livre
Hadoop Devenez opérationnel dans le monde du Big Data
1 avis
Revenir à la page d'achat du livre

Streaming 101

Introduction

« 60 % des données de capteurs perdent leur valeur dans les millisecondes qui suivent leur création si elle ne sont pas exploitées. » (constat d’IBM)

L’une des plus importantes tendances du Numérique est le phénomène qualifié d’IoT (Internet of Things - objets connectés ou Internet des objets en français). L’Internet des objets représente l’extension d’Internet à nos vies quotidiennes. Cette extension dépasse largement le cadre de l’interconnexion des ordinateurs pour s’appliquer aux objets de la vie courante. Par exemple, on parle de voiture connectée, de bracelet connecté, de montre connectée, etc. Le principe général des objets connectés est le suivant : des capteurs intégrés dans un objet (téléphone, voiture, thermostat, montre, etc.) captent en temps réel le comportement de l’objet et transfèrent les données captées à une application via un réseau (Wi-Fi, Bluetooth, etc.) ; cette application traite les données et prédit le comportement de l’objet ou de l’utilisateur de l’objet, ou bien déclenche une action au niveau de l’objet, ou encore prescrit des recommandations d’action à l’utilisateur de l’objet....

Domaine temporel

Dans le chapitre Hadoop, nous vous avons donné un aperçu de ce qu’est le streaming. Streaming est un mot anglais qui veut dire « continu », il fait référence à la façon continue, ininterrompue dont les rivières coulent. La continuité est une propriété mathématique qui fait référence à l’apparition systématique d’un phénomène à un intervalle de temps constant. Ainsi, ce n’est pas le fait que la rivière coule de façon ininterrompue qui fait d’elle un stream. Ce qui caractérise un stream, c’est la régularité dans l’apparition. Le streaming ne fait pas référence à quelque chose qui se passe en temps réel, il fait référence à quelque chose qui arrive de façon périodique. Par exemple, si une donnée est produite toutes les heures, alors elle est une source streaming. Si la même donnée est produite tous les mois, elle est également une source streaming. Encore une fois, ce qui est important, c’est la régularité dans la production des données. Le streaming se confond avec le temps réel lorsque la périodicité de production de données est égale ou inférieure à la seconde.

La périodicité...

Approches de traitement streaming

Le deuxième pilier 101 est la notion de traitement streaming. De façon traditionnelle, le traitement de données, qu’il soit batch ou interactif, se fait sur une vue statique des données, c’est-à-dire sur un lot de données persistées sur le disque sous forme d’un fichier ou chargées en mémoire. Cette approche pose deux problèmes en streaming :

  • Les données qui sont produites en streaming ont besoin d’un traitement immédiat, elles ne peuvent donc pas être historisées pour un traitement ultérieur. Il faut trouver le moyen de les traiter au fur et à mesure qu’elles arrivent dans le système.

  • Les données qui sont produites en streaming avec une périodicité égale à la seconde (ou même à la minute) ne peuvent pas passer par le circuit disque dur -> mémoire RAM -> processeur. Comme elles ont besoin d’un traitement immédiat, il faut qu’elles soient chargées directement en mémoire et ce, au fur et à mesure qu’elles arrivent, sinon la latence entraînée par le transfert du disque dur vers la mémoire pourrait être préjudiciable au rythme de calcul nécessaire pour suivre la cadence d’arrivée des données dans le système. Il faut trouver le moyen de créer un pont entre la source streaming et le système de traitement streaming.

Il s’ensuit la définition suivante : un traitement streaming est un traitement qui n’a pas besoin d’une image statique des données pour s’exécuter. En d’autres termes, un traitement streaming est un traitement qui se fait au fur et à mesure que les données arrivent dans le système. Comment est-ce possible ? Un traitement streaming se fait-il à l’aide d’une sorte d’algorithme qui s’exécute en continu et sans interruption ? Eh bien, pas sûr ! Pour faire du traitement streaming temps réel, il faut passer d’un raisonnement que nous allons qualifier de « base de données » à un raisonnement que nous qualifierons d’événementiel. Il faut cesser de voir la donnée comme...

Idempotence

L’idempotence est le troisième pilier 101 qu’il faut saisir pour comprendre les traitements streaming. En informatique, l’idempotence est utilisée pour décrire un traitement ou une opération qui produit le même résultat qu’il soit exécuté une ou plusieurs fois. Par exemple, la recherche du nom d’un client dans une base de données est typiquement idempotente, car l’opération ne change pas l’état de la base de données et retourne toujours le même nom. Passer une commande n’est pas idempotent, car plusieurs passations de commandes résulteront en plusieurs commandes. Le tri d’une liste d’éléments est une opération idempotente, car une fois la liste triée, le fait de la trier à nouveau ne changera pas l’ordre des éléments. Un service ou une application informatique idempotente signifie que si un client appelle le service ou l’application plusieurs fois, il obtiendra le même résultat que s’il l’avait appelé une seule fois. Pour faire simple, l’idempotence signifie qu’exécuter un traitement plusieurs fois a le même effet qu’exécuter ce traitement une seule fois. Les traitements idempotents n’ont pas d’impacts ou d’effets secondaires (side effect) sur le système.

L’idempotence trouve le système dans un état, le modifie et à la fin le laisse dans l’état dans lequel il était initialement. Formellement, l’idempotence est la propriété d’un traitement telle que f(f(x)) = f(x) pour tout x. En d’autres termes, quelles que soient les entrées du traitement, il fournira toujours le même résultat. L’idempotence est une propriété mathématique, un principe. Par conséquent, on peut décider d’écrire un traitement de manière qu’il soit idempotent s’il ne l’est pas nativement. Pour rendre un traitement idempotent, il faut faire en sorte qu’il laisse le système dans son état initial, c’est-à-dire que si le traitement trouve une liste triée, alors après le traitement, la liste doit rester triée ; si le traitement trouve une valeur...

Disponibilité d’un système streaming

Le dernier pilier 101 qu’il vous faut comprendre pour avoir une vision à 360° du traitement streaming est le concept de disponibilité. Au chapitre Architecture infrastructurelle d’Hadoop, nous en avons parlé en profondeur. Cependant, en streaming, le concept de disponibilité n’a pas la même signification qu’en batch.

En streaming, le système ne doit pas simplement se contenter d’être capable de répondre aux requêtes des utilisateurs, il doit être opérationnel tout le temps et le demeurer. Reprenons l’exemple de Viadeo. Une défaillance dans le système streaming ou une défaillance générale du cluster serait une véritable catastrophe pour l’entreprise, car le système streaming étant indépendant du fonctionnement du site web, il y aurait toujours de l’activité sur le site web, ce qui entraînerait une perte d’argent importante pour l’entreprise en fonction du débit de l’activité sur le site et de la durée d’indisponibilité du système streaming.

La disponibilité d’un système streaming a donc plus d’enjeux que celle d’un système batch. En batch, comme l’activité est périodique, la perte du système...

Conclusion

Les activités économiques dans le Numérique sont résolument tournées vers Internet. Internet, en brisant les barrières géographiques qui existent entre les individus, a généré une explosion de données sans précédent. Les données n’ont pas juste explosé en volume, mais aussi et surtout en vélocité. Les données sont produites aujourd’hui très rapidement, spécialement celles qui capturent l’activité des utilisateurs d’Internet. L’Internet des objets a accentué ce problème. Combinez volume et vélocité des données et vous avez très vite dépassé la capacité de traitement raisonnable de nos SGBDR traditionnels. Le raisonnement statique de gestion de données qui a prévalu jusqu’à présent n’est dès lors plus adapté, il faut maintenant raisonner en termes d’événements. Et c’est là l’essence du streaming, plus précisément du streaming temps réel. Le futur du traitement de données exige d’être capable de combiner le streaming au temps réel. Cette combinaison repose sur quatre piliers fondamentaux à savoir le domaine temporel, les approches de traitement streaming, l’idempotence...

Guide d’étude du chapitre

Question 1 : Qu’est-ce qu’un traitement streaming ?

Question 2 : Quelle est la différence entre un traitement streaming et un traitement en temps réel ?

Question 3 : Où se situe la similarité entre le traitement streaming et le traitement en temps réel ?

Question 4 : En quoi consiste le fenêtrage de données ?

Question 5 : Qu’est-ce qu’une fenêtre de données ?

Question 6 : Qu’est-ce qu’une fenêtre fixe ?

Question 7 : Qu’est-ce qu’une fenêtre glissante ?

Question 8 : Comment interprétez-vous l’opération de fenêtrage suivante ?

Moyenne (source_donnees, x= 40, y = 10), où x est la longueur de la fenêtre et y la période glissante.

Question 9 : En quoi consiste l’approche batch par fenêtrage ?

Question 10 : Qu’est-ce qu’une session ?

Question 11 : En quoi consiste l’approche batch par sessions ?

Question 12 : Qu’est-ce qu’une opération agnostique au temps ?

Question 13 : Quelle est la différence entre une session et une fenêtre ?

Question 14 : Quelle est la différence entre le fenêtrage classique et le fenêtrage par temps de traitement ?

Question 15 : Donnez la définition de la latence...

À retenir

  • À la différence des données opérationnelles qui, même lorsqu’elles sont produites en streaming, peuvent être historisées pour un traitement ultérieur, les données produites en streaming se périment dans les instants qui suivent leur création et exigent donc un traitement immédiat.

  • Streaming est un mot anglais qui veut dire « continu », il fait référence à la production systématique des données à un intervalle de temps constant.

  • Le streaming se confond avec le temps réel lorsque la périodicité de production de données est égale ou inférieure à la seconde.

  • Le domaine temporel d’une source streaming est l’intervalle de temps durant lequel elle produit les données.

  • Dans le domaine temporel d’une source streaming, on distingue le temps de l’événement et le temps de traitement.

  • La latence d’un système de traitement streaming est la différence entre le temps de l’événement et le temps de traitement.

  • Un traitement streaming est un traitement qui n’a pas besoin d’une image statique des données pour s’exécuter.

  • Il existe deux approches pour le traitement des données streaming temps réel : l’approche batch et l’approche continue.

  • L’approche...