Qu'est-ce que les données diffusées en continu ?
Les données en streaming sont des données qui sont émises à un volume élevé de manière continue et incrémentielle dans le but d'un traitement à faible latence. Les organisations disposent de milliers de sources de données qui émettent généralement simultanément des messages, des enregistrements ou des données dont la taille varie de quelques octets à plusieurs mégaoctets (Mo). Les données en streaming comprennent les données de localisation, d'événements et de capteurs que les entreprises utilisent pour l'analytique en temps réel et la visibilité pour de nombreux aspects de leurs activités. Par exemple, les entreprises peuvent suivre l'évolution du sentiment du public à l'égard de leurs marques et de leurs produits en analysant en permanence les parcours de navigation et les publications des clients sur les réseaux sociaux, puis en réagissant rapidement si nécessaire.
Quelles sont les caractéristiques des données en streaming ?
Un flux de données possède les caractéristiques spécifiques suivantes qui le définissent.
Importance chronologique
Les éléments individuels d'un flux de données contiennent des horodateurs. Le flux de données lui-même peut être sensible au temps et perdre de son importance après un intervalle spécifique. Par exemple, votre application fait des recommandations de restaurants en fonction de l'emplacement actuel de son utilisateur. Vous devez agir sur les données de géolocalisation des utilisateurs en temps réel, sinon elles perdent de leur importance.
Flux continu
Un flux de données n'a ni début ni fin. Il recueille des données de manière constante et continue aussi longtemps que nécessaire. Par exemple, les journaux d'activité du serveur s'accumulent tant que le serveur fonctionne.
Unique
La transmission répétée d'un flux de données est difficile en raison de la sensibilité au temps. Le traitement précis des données en temps réel est donc capital. Malheureusement, les dispositions relatives à la retransmission sont limitées dans la plupart des sources de données en streaming.
Non homogène
Certaines sources peuvent diffuser des données en streaming dans plusieurs formats qui sont des formats structurés tels que JSON, Avro et valeurs séparées par des virgules (CSV) avec des types de données comprenant des chaînes de caractères, des chiffres, des dates et des types binaires. Vos systèmes de traitement des flux doivent avoir les capacités de gérer de telles variations de données.
Imparfait
Des erreurs temporaires à la source peuvent entraîner des éléments endommagés ou manquants au niveau des données diffusées. Il peut être difficile de garantir la cohérence des données en raison de la nature continue du flux. Les systèmes de traitement de flux et d'analytique comprennent généralement une logique de validation des données en vue d'atténuer ou de minimiser ces erreurs.
Pourquoi les données en streaming sont-elles importantes ?
Les systèmes traditionnels de traitement des données capturent les données dans un entrepôt des données central et les traitent par groupes ou par lots. Ces systèmes ont été conçus pour ingérer et structurer les données avant l'analytique. Toutefois, au cours de ces dernières années, la nature des données d'entreprise et des systèmes de traitement des données sous-jacents ont considérablement changé.
Volume de données infini
Les volumes de données générés issus des sources de flux peuvent être très importants. Dès lors, il est devenu difficile pour l'analytique en temps réel de réguler l'intégrité (validation), la structure (évolution) ou la vitesse (débit et latence) des données en streaming.
Systèmes avancés de traitement des données
Dans le même temps, l'infrastructure cloud a introduit une certaine souplesse au niveau de l'échelle et de l'utilisation des ressources informatiques. Vous utilisez exactement ce dont vous avez besoin et ne payez que pour ce que vous utilisez. Vous avez la possibilité d'effectuer un filtrage ou une agrégation en temps réel avant et après le stockage des données en streaming. L'architecture de données en streaming utilise des technologies cloud pour consommer, enrichir, analyser et stocker de façon permanente les données en streaming, selon les besoins.
Quels sont les cas d'utilisation pour les données en streaming ?
Un système de traitement de flux est bénéfique dans la plupart des cas lorsque de nouvelles données dynamiques sont générées en continu. Cela s'applique à la plupart des secteurs d'activité et aux cas d'utilisation du big data.
Les entreprises commencent généralement par des applications simples telles que les journaux de système de collecte et le traitement rudimentaire tel que les calculs min./max. continus. Ces applications évoluent ensuite vers un traitement plus avancé, quasi en temps réel.
Voici d'autres exemples de données en streaming.
Analyse de données
Les applications traitent les flux de données pour générer des rapports et effectuer des actions pour y répondre, par exemple, en émettant des alarmes lorsque des mesures clés dépassent certains seuils. Des applications de traitement des flux plus sophistiquées permettent d'obtenir des informations plus approfondies en appliquant des algorithmes de machine learning aux données métier et aux données relatives aux activités des clients.
Applications IoT
Les appareils de l'Internet des objets (IoT) constituent un autre cas d'utilisation des données en streaming. Les capteurs équipant les véhicules, les équipements industriels et les machines agricoles envoient des données à une application de streaming. L'application contrôle les performances, détecte les défauts potentiels à l'avance et commande automatiquement une pièce de rechange pour garantir la disponibilité de l'équipement.
Analyse financière
Les établissements financiers utilisent des données de flux pour suivre l'évolution du marché boursier en temps réel, calculer la Value At Risk (VAR) et rééquilibrer automatiquement les portefeuilles en fonction des variations des cours boursiers. Un autre cas d'utilisation dans le domaine financier est la détection de la fraude au niveau des transactions par carte de crédit à l'aide de l'inférence en temps réel des données de transaction en streaming.
Recommandations en temps réel
Les applications immobilières suivent les données de géolocalisation des appareils mobiles des consommateurs et font des recommandations en temps réel sur les propriétés à visiter. De même, les applications de publicité, d'alimentation, de vente au détail et de consommation peuvent intégrer des recommandations en temps réel pour ainsi apporter plus de valeur aux clients.
Garanties de service
Vous pouvez mettre en œuvre le traitement des flux de données pour suivre et maintenir les niveaux de service au niveau des applications et des équipements. Par exemple, une société d'énergie solaire doit maintenir son débit d'énergie pour ses clients ou payer des pénalités. Elle met en œuvre une application de données en streaming qui surveille tous les panneaux du réseau et programme les tâches d'entretien et de réparation en temps réel. Cela permet de réduire les périodes de faible débit de chaque panneau et les paiements de pénalités associés.
Médias et jeux
Les éditeurs de médias diffusent des milliards d'enregistrements de parcours de navigation à partir de leurs propriétés en ligne, agrègent et enrichissent les données avec les informations démographiques des utilisateurs, et optimisent le placement du contenu. Cela aide les éditeurs à proposer une expérience améliorée et plus pertinente à leur public. De même, les sociétés de jeux en ligne utilisent le traitement des flux d'événements pour analyser les interactions joueur-jeu et proposer des expériences dynamiques pour impliquer les joueurs.
Contrôle des risques
Les plateformes de streaming en direct et sociales capturent les données relatives au comportement des utilisateurs en temps réel afin de contrôler les risques liés à l'activité financière des utilisateurs, comme les recharges, les remboursements et les récompenses. Elles consultent des tableaux de bord en temps réel pour ajuster les stratégies de risque avec un haut niveau de flexibilité.
Quelle est la différence entre les données par lots et les données en streaming ?
Le traitement par lots est la méthode utilisée par les ordinateurs pour effectuer périodiquement des tâches de données répétitives et volumineuses. Vous pouvez l'utiliser pour calculer des requêtes arbitraires sur différents ensembles de données. Il tire généralement des résultats de calcul de toutes les données qu'il englobe et permet une analyse approfondie des ensembles de big data. Les systèmes basés sur MapReduce, tels qu'Amazon EMR, sont des exemples de plateformes qui prennent en charge les traitements par lots.
En revanche, le traitement des flux exige l'acquisition d'une séquence de données et la mise à jour incrémentielle de métriques, rapports et statistiques de résumé pour répondre à l'arrivée de chaque enregistrement de données. Ce mode de traitement est plus adapté à l'analytique en temps réel et aux fonctions de réponse.
Traitement par lots | Traitement des flux |
|||
Portée des données |
Requêtes ou traitement portant sur la totalité ou la majorité des données de l'ensemble de données. | Requêtes ou traitement portant sur les données d'une fenêtre temporelle continue ou sur l'enregistrement de données le plus récent. |
||
Taille des données |
Lots de données volumineux. |
Enregistrements individuels ou micro lots comprenant quelques enregistrements. |
||
Performance |
|
Nécessite une latence de l'ordre de quelques secondes ou millisecondes. |
||
Analyse |
Analyses complexes. | Fonctions de réponse simples, regroupements et métriques continues. |
De nombreuses organisations créent un modèle hybride en combinant les deux approches en vue de conserver une couche de traitement en temps réel et une couche de traitement par lots. Par exemple, vous pouvez d'abord traiter les données dans une plateforme de données en streaming telle qu'Amazon Kinesis pour en extraire des informations en temps réel. Ensuite, vous pouvez les faire persister dans un magasin comme Amazon Simple Storage Service (Amazon S3). Là, elles peuvent être transformées et chargées pour divers cas d'utilisation du traitement par lots.
Amazon Redshift Streaming Ingestion permet aux utilisateurs d'ingérer des données directement à partir d'Amazon Kinesis Data Streams sans avoir à les développer dans Amazon S3. Le service peut également ingérer des données d'Amazon Managed Streaming for Apache Kafka (Amazon MSK) dans Amazon Redshift.
Comment pouvez-vous traiter les données en streaming ?
L'architecture de données en streaming contient deux grands types de composants.
Producteurs de flux
Les producteurs de flux sont des composants logiciels dans les applications et les systèmes IoT qui collectent des données. Ils transmettent au processeur de flux des enregistrements qui contiennent un nom de flux, une valeur de données et un numéro de séquence. Le processeur met en mémoire tampon ou regroupe temporairement les enregistrements de données par nom de flux. Il utilise le numéro de séquence pour suivre la position unique de chaque enregistrement et traiter les données chronologiquement.
Consommateurs de flux
Les consommateurs de flux sont des composants logiciels qui traitent et analysent les flux de données mis en mémoire tampon dans le processeur. Chaque consommateur dispose de capacités analytiques telles que les corrélations, les agrégations, le filtrage, l’échantillonnage ou le machine learning. Chaque flux peut avoir plusieurs consommateurs, et chaque consommateur peut traiter de nombreux flux. Les consommateurs peuvent également renvoyer les données modifiées au processeur afin de créer des flux pour d'autres consommateurs.
Mise en œuvre d'architecture
Pour mettre en œuvre une architecture de données en streaming, vous avez besoin de couches de stockage et de traitement. La couche de stockage doit prendre en charge la commande d'enregistrement et une cohérence forte pour permettre la lecture et l'écriture rapides, peu coûteuses et consultables en différé de grands flux de données. La couche de traitement est responsable de la consommation de données de la couche de stockage. Elle exécute des calculs sur ces données, puis indique à la couche de stockage de supprimer les données qui ne sont plus nécessaires.
Quels sont les défis liés au traitement des données en streaming ?
L'architecture des données en streaming exige des considérations particulières en raison de la nature et du volume des données.
Disponibilité
Les applications de données en streaming exigent de la cohérence, une faible latence et une haute disponibilité. Les consommateurs prélèvent constamment de nouvelles données du flux pour les traiter. Les retards du producteur pourraient sauvegarder le système et provoquer des erreurs.
Évolutivité
Les flux de données brutes peuvent augmenter rapidement et de façon inattendue. Par exemple, les messages sur les réseaux sociaux connaissent un pic lors d'un grand événement sportif. Par conséquent, le système doit donner la priorité au séquençage, à la disponibilité et à la cohérence des données, même pendant les pics de charge.
Durabilité
En raison de la sensibilité temporelle des données, le système de traitement de flux doit être tolérant aux pannes. Sinon, les données seront perdues à jamais en cas de panne ou de défaillance.
Comment AWS peut-il répondre à vos besoins en matière de streaming de données ?
AWS propose plusieurs options pour utiliser les données en streaming.
Amazon Kinesis
Kinesis est une plateforme pour les données en streaming sur AWS. Elle propose des services éprouvés qui facilitent le chargement et l'analyse des données en streaming et qui permettent également de concevoir des applications de données en streaming personnalisées afin de répondre à des besoins spécifiques.
Kinesis propose trois services : Amazon Kinesis Data Firehose, Amazon Kinesis Data Streams et Amazon Managed Streaming for Apache Kafka (Amazon MSK).
Kinesis Data Firehose
Kinesis Data Firehose peut capturer et charger automatiquement des données en streaming dans Amazon Simple Storage Service (Amazon S3) et Amazon Redshift. Cela vous permet d'effectuer une analytique en temps quasi réel avec les outils d'informatique décisionnelle existants et les tableaux de bord que vous utilisez déjà.
Kinesis Data Streams
Kinesis Data Streams peut capturer et stocker en continu des téraoctets (To) de données par heure à partir de centaines de milliers de sources. Il prend en charge votre sélection de cadres de traitement des flux, notamment Amazon Kinesis Client Library (KCL), Apache Storm et Apache Spark Streaming.
Amazon MSK
Amazon MSK est un service entièrement géré qui vous permet de créer et d'exécuter facilement des applications qui utilisent Apache Kafka pour traiter les données en streaming. Apache Kafka est une plateforme open source permettant de créer des pipelines et des applications de données en streaming en temps réel.
Amazon Redshift
Amazon Redshift Streaming Ingestion permet aux utilisateurs d'ingérer des données en streaming dans leur entrepôt des données pour l'analytique en temps réel à partir de plusieurs flux de données Kinesis. Vous pouvez effectuer des analyses complexes à l'aide de SQL communs, mais aussi créer et gérer facilement des pipelines ELT. Il vous permet également de traiter de gros volumes de données en streaming avec une faible latence et un débit élevé pour obtenir des informations en quelques secondes.
Autres solutions de streaming sur Amazon EC2
Vous pouvez installer les plateformes de données en streaming de votre choix sur Amazon Elastic Compute Cloud (Amazon EC2) and Amazon EMR, et créer vos propres couches de stockage et de traitement des flux. Par conséquent, vous pouvez éviter les frictions liées à l'allocation de l'infrastructure et avoir accès à divers cadres de stockage et de traitement des flux. Amazon MSK et Apache Flume sont des solutions de couche de stockage de données, tandis qu'Apache Spark Streaming et Apache Storm sont des options de couche de traitement des flux.
Démarrez avec les données en streaming sur AWS en créant un compte AWS gratuit dès aujourd'hui.