Démarrer avec Amazon Kinesis Data Streams »

Découvrir les nouveautés d'Amazon Kinesis Data Streams »

Demandez de l'assistance pour votre démonstration de faisabilité ou votre évaluation »

Amazon Kinesis Data Streams est un service d'ingestion et de traitement de données extrêmement évolutif et hautement durable, optimisé pour la diffusion de données. Vous pouvez configurer des centaines de milliers de producteurs de données de manière à ce qu'ils ajoutent des données en continu à un flux de données Kinesis. Les données seront disponibles en quelques millisecondes pour vos applications Amazon Kinesis, lesquelles recevront les enregistrements de données dans l'ordre où elles ont été générées.

Amazon Kinesis Data Streams est intégré à un certain nombre de services AWS, notamment Amazon Kinesis Data Firehose pour la transformation en temps quasi-réel et la livraison de flux de données dans un lac de données AWS comme Amazon S3, Kinesis Data Analytics pour le traitement des flux gérés, AWS Lambda pour le traitement des événements ou des enregistrements, AWS PrivateLink pour la connectivité privée, Amazon Cloudwatch pour le traitement des métriques et des journaux, et AWS KMS pour le chiffrement côté serveur.

Dans le schéma d'architecture suivant, le service Amazon Kinesis Data Streams est utilisé en tant que passerelle d'une solution Big Data. Les données issues de diverses sources sont ajoutées à un flux Amazon Kinesis, puis les données du flux sont utilisées par différentes applications Amazon Kinesis. Dans cet exemple, une application (en jaune) exécute un tableau de bord en temps réel pour les données diffusées en continu. Une autre application (en rouge) réalise une agrégation simple et envoie les données traitées vers Amazon S3. Les données dans  S3 sont par ailleurs traitées et stockées dans Amazon Redshift à des fins d'analyse complexe. La troisième application (en vert) transmet les données brutes vers Amazon S3. Ces dernières sont ensuite archivées dans Amazon Glacier pour un stockage à long terme à moindre coût. Veuillez noter que trois de ces pipelines de traitement de données surviennent simultanément et en parallèle.

kinesis-architecture-crop

Concepts clés

Producteur de données

Un producteur de données est une application qui émet généralement des enregistrements de données lorsqu'ils sont générés dans un flux de données Kinesis. Les producteurs de données attribuent des clés de partition aux enregistrements. Les clés de partition déterminent finalement quelle partition ingère l'enregistrement de données pour un flux de données.

Consommateur de données

Un consommateur de données est une application Kinesis distribuée ou un service AWS qui extrait les données de toutes les partitions d'un flux au fur et à mesure de leur génération. La plupart des consommateurs de données récupèrent les données les plus récentes dans une partition, ce qui permet l'analyse en temps réel ou la gestion des données.

Flux de données

Un flux de données est un regroupement logique de partitions. Le nombre de partitions est illimité dans un flux de données (demandez une augmentation de limite si nécessaire). Un flux de données conserve les données pendant 24 heures ou 7 jours maximum lorsque la rétention étendue est activée.

Partition

Une partition est l'unité de débit de base d'un flux Amazon Kinesis.

  • Une partition est un journal d'ajout uniquement et une unité de capacité de diffusion. Une partition contient une séquence ordonnée d'enregistrements classés par heure d'arrivée.
  • Une partition peut ingérer jusqu'à 1 000 enregistrements par seconde ou 1 Mo/s. Ajoutez d'autres partitions pour augmenter la capacité d'ingestion.
  • Ajoutez ou supprimez des partitions de votre flux de manière dynamique au fil des changements de votre débit de données à l'aide de la console AWS, API UpdateShardCount, déclenchez la mise à l'échelle automatique via AWS Lambda ou à l'aide de l'utilitaire de mise à l'échelle automatique.
  • Lorsque les consommateurs utilisent la distribution améliorée, une seule partition fournit 1 Mo/s de données en entrée et 2 Mo/s de données en sortie pour chaque consommateur de données inscrit à l'utilisation de la distribution améliorée.
  • Lorsque les consommateurs n'utilisent pas la distribution améliorée, une partition fournit 1 Mo/s de données en entrée et 2 Mo/s de données en sortie, et cette sortie est partagée avec tout consommateur n'utilisant pas la distribution améliorée.
  • Vous déterminez le nombre de partitions nécessaires lors de la création d'un flux et vous pouvez modifier la quantité à tout moment. Vous pouvez, par exemple, créer un flux comportant deux partitions. Si vous disposez de 5 consommateurs de données utilisant la distribution améliorée, ce flux peut fournir jusqu'à 20 Mo/s de données en sortie au total (2 partitions x 2 Mo/s x 5 consommateurs de données). Lorsque les consommateurs de données n'utilisent pas la distribution améliorée, ce flux a un débit de 2 Mo/s de données en entrée et de 4 Mo/s de données en sortie. Dans tous les cas, ce flux autorise jusqu'à 2 000 enregistrements PUT par seconde, soit 2 Mo/s de données en entrée, quelle que soit la limite atteinte en premier.
  • Vous pouvez surveiller les métriques au niveau des partitions dans Amazon Kinesis Data Streams.

Enregistrements de données

L'enregistrement est l'unité utilisée pour les données stockées dans un flux Amazon Kinesis. Un enregistrement se compose d'un numéro de séquence, d'une clé de partition et d'un blob de données. Le blob de données correspond aux données utiles que le producteur ajoute au flux. La taille maximale d'un blob de données (charge de données utiles après le décodage en base64) est de 1 méga-octet (Mo).

Clé de partition

Une clé de partition est généralement un identifiant significatif, tel qu'un ID utilisateur ou un horodatage. Elle est indiquée par votre producteur de données lors de la saisie de données dans un flux de données Amazon Kinesis, et elle permet aux consommateurs de rejouer ou de créer un historique associé à la clé de partition. La clé de partition sert également à isoler et à acheminer les enregistrements de données vers différentes partitions d'un flux. Par exemple, supposons que vous disposiez d'un flux de données Amazon Kinesis comprenant deux partitions (partition 1 et partition 2). Vous pouvez configurer votre producteur de données afin qu'il utilise deux clés de partition (clé A et clé B), de manière à placer tous les enregistrements associés à la clé A dans la partition 1 et tous ceux associés à la clé B, dans la partition 2.

Numéro de séquence

Un numéro de séquence est un identifiant unique associé à un enregistrement de données. Le numéro de séquence est attribué par Amazon Kinesis Data Streams lorsqu'un producteur de données appelle l'API PutRecord ou PutRecords afin d'ajouter des données à un flux de données Amazon Kinesis. Les numéros de séquence correspondant à une même clé de partition deviennent généralement de plus en plus longs au fil du temps ; plus l'intervalle de temps entre chaque requête PutRecord ou PutRecords est élevé, plus les numéros de séquence sont longs.

Utilisation d'Amazon Kinesis Data Streams

Une fois votre inscription à Amazon Web Services terminée, vous pouvez commencer à utiliser Amazon Kinesis Data Streams en :

  • créant un flux de données Amazon Kinesis via la console de gestion Amazon Kinesis ou l'API CreateStream d'Amazon Kinesis ;
  • configurant vos producteurs de données de manière à ce qu'ils envoient des données en continu vers votre flux de données Amazon Kinesis ;
  • développant vos applications Amazon Kinesis pour pouvoir lire et traiter les données de votre flux de données Amazon Kinesis.

Ajout de données aux flux

Les producteurs de données peuvent placer des données dans les flux de données Amazon Kinesis via les API Amazon Kinesis Data Streams, la bibliothèque Amazon KPL (Kinesis Producer Library) ou Amazon Kinesis Agent.

Amazon Kinesis Data Generator

Placez des données d'échantillon dans un flux de données Kinesis ou Kinesis Data Firehose à l'aide d'Amazon Kinesis Data Generator.

API Amazon Kinesis Data Streams

Amazon Kinesis Data Streams propose deux API pour placer des données dans un flux Amazon Kinesis : PutRecord et PutRecords. L'opération PutRecord autorise un seul enregistrement de données au sein d'un appel d'API. L'opération PutRecords, quant à elle, en autorise plusieurs.

Bibliothèque Producer Amazon Kinesis (KPL)

La bibliothèque Producer Amazon Kinesis (KPL) est une bibliothèque facile à utiliser et hautement configurable qui vous permet d'ajouter des données à un flux de données Amazon Kinesis. La bibliothèque Producer Amazon Kinesis (KCL) est dotée d'une interface simple, asynchrone et fiable qui vous permet d'atteindre rapidement un débit producteur élevé avec le minimum de ressources client.

Amazon Kinesis Agent

Amazon Kinesis Agent est une application Java pré-intégrée qui permet de collecter et d'envoyer facilement des données vers votre flux Amazon Kinesis. Cet agent peut être installé dans des environnements basés sur des serveurs Linux tels que des serveurs Web, serveurs de journaux ou encore serveurs de base de données. L'agent surveille certains fichiers et envoie en continu des données sur votre flux.

Exécution d'applications de traitement de flux entièrement gérées ou création de vos propres applications

Exécutez des applications de traitement de flux entièrement gérées à l'aide des services AWS ou créez vos propres applications.

Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose est le moyen le plus simple de transformer et de charger de manière fiable des données de streaming vers des magasins de données et des outils d'analyse. Vous pouvez utiliser un flux de données Kinesis en tant que source pour Kinesis Data Firehose.

Amazon Kinesis Data Analytics

AWS Lambda

Vous pouvez vous abonner aux fonctions Lambda pour lire automatiquement les enregistrements de votre flux de données Kinesis. AWS Lambda est généralement utilisé pour le traitement de flux d'enregistrement par enregistrement (également connu sous le nom de traitement de flux événementiel).

Bibliothèque client Amazon Kinesis (KCL)

La bibliothèque client Amazon Kinesis (KCL) est une bibliothèque pré-intégrée qui vous permet de créer facilement des applications Amazon Kinesis pour la lecture et le traitement des données d'un flux de données Amazon Kinesis. La bibliothèque KCL gère des problèmes complexes, tels que l'adaptation à des flux aux volumes fluctuants, l'équilibrage de la charge pour les données diffusées en continu, la coordination des services distribués et le traitement des données en garantissant la tolérance aux pannes. Elle vous permet ainsi de vous concentrer sur la logique métier lors de la création des applications Amazon Kinesis. À partir de KCL 2.0, vous pouvez utiliser une API de diffusion HTTP/2 à faible latence et une distribution améliorée pour extraire les données d'un flux.

Bibliothèque Connector Amazon Kinesis

La bibliothèque Connector Amazon Kinesis est une bibliothèque pré-intégrée qui vous permet d'intégrer facilement Amazon Kinesis à d'autres services AWS et à des outils tiers. La bibliothèque client Amazon Kinesis (KCL) est requise pour l'utilisation de la bibliothèque Connector. Dans sa version actuelle, cette bibliothèque fournit des connecteurs pour Amazon DynamoDB, Amazon Redshift, Amazon S3 et Amazon Elasticsearch Service. La bibliothèque inclut également des exemples de connecteurs de chaque type, ainsi que des fichiers de construction Apache Ant pour l'exécution des exemples.

Amazon Kinesis Storm Spout

Amazon Kinesis Storm Spout est une bibliothèque pré-intégrée qui vous permet d'intégrer facilement Amazon Kinesis Data Streams à Apache Storm. Dans sa version actuelle, la bibliothèque Amazon Kinesis Storm Spout récupère des données de flux de données Kinesis et les émet en tant que tuples. Vous pouvez l'ajouter à votre topologie Storm afin d'exploiter Amazon Kinesis Data Streams en tant que service de collecte, de stockage et de consultation à la fois scalable et fiable.

Fonctionnalités de gestion

Accès privé aux API Kinesis Data Streams à partir d'Amazon VPC

Vous pouvez bénéficier d'un accès privé aux API Kinesis Data Streams à partir de votre VPC (Amazon Virtual Private Cloud) en créant des points de terminaison de VPC. Avec des points de terminaison de VPC, le routage entre le VPC et Kinesis Data Streams est géré par le réseau AWS, sans qu'il y ait besoin d'une passerelle Internet, d'une passerelle NAT ou d'une connexion VPN. La dernière génération de points de terminaison de VPC utilisée par Kinesis Data Streams repose sur AWS PrivateLink, une technologie qui permet une connectivité privée entre les services AWS en utilisant des interfaces réseau elastic (ENI) avec des adresses IP privées dans vos VPC. Pour en savoir plus sur PrivatLink, consultez la documentation d'AWS PrivateLink.

Distribution des données de Kinesis Data Streams sans sacrifier les performances

La distribution améliorée permet aux clients d'adapter le nombre de consommateurs qui lisent un flux en parallèle tout en maintenant le niveau de performances. Vous pouvez utiliser la distribution améliorée et une API de récupération de données HTTP/2 afin de déployer les données sur plusieurs applications, généralement dans les 70 millisecondes suivant leur arrivée.

Chiffrement de vos données Kinesis Data Streams

Vous pouvez chiffrer les données saisies dans Kinesis Data Streams à l'aide d'un chiffrement côté serveur ou côté client. Le chiffrement côté serveur est une fonction entièrement gérée qui chiffre et déchiffre automatiquement les données lorsqu'elles sont transférées vers un flux de données ou lorsqu'elles en sont extraites. Sinon, vous pouvez chiffrer les données du côté du client avant de les transférer dans un flux de données. Pour en savoir plus, consultez la section relative à la sécurité des questions fréquentes (FAQ) sur Kinesis Streams.

Intégration d'Amazon Kinesis Data Firehose et d'Amazon Kinesis Data Analytics

Utilisez un flux de données comme source de Kinesis Data Firehose pour transformer vos données à la volée tout en le livrant à S3, Redshift, Elasticsearch et Splunk. Connectez une application Kinesis Data Analytics pour traiter des données de streaming en temps réel avec du code SQL standard, sans avoir à maîtriser de nouveaux langages de programmation ou structures de traitement.

Intégration à Amazon CloudWatch

Amazon Kinesis Data Streams peut également être intégré à Amazon CloudWatch, ce qui vous permet d'enregistrer, de consulter et d'analyser aisément des métriques CloudWatch pour vos flux de données Amazon Kinesis et leurs partitions. Pour en savoir plus sur les métriques Amazon Kinesis Data Streams, consultez la section relative à la surveillance d'Amazon Kinesis à l'aide d'Amazon CloudWatch.

Intégration à AWS IAM

Amazon Kinesis Data Streams s'intègre à AWS Identity and Access Management (IAM), un service qui vous permet de contrôler l'accès des utilisateurs à vos ressources et services AWS en toute sécurité. Vous pouvez, par exemple, créer une politique permettant uniquement à un utilisateur ou à un groupe d'utilisateurs en particulier d'ajouter des données à votre flux de données Amazon Kinesis. Pour en savoir plus sur la gestion et le contrôle des accès à votre flux de données Amazon Kinesis, référez-vous à la section Controlling Access to Amazon Kinesis Resources using IAM (Contrôle d'accès aux ressources Amazon Kinesis à l'aide d'IAM).

Intégration à AWS CloudTrail

Amazon Kinesis Data Streams peut être intégré à AWS CloudTrail, un service qui enregistre les appels d'API AWS sur votre compte et vous fournit les fichiers journaux. Pour en savoir plus sur la consignation des appels d'API et consulter la liste des API Amazon Kinesis prises en charge, consultez la section relative à la consignation des appels d'API Amazon Kinesis à l'aide d'AWS CloudTrail.

Prise en charge du balisage

Vous pouvez baliser vos flux de données Amazon Kinesis afin de gérer plus facilement les coûts et les ressources. Une balise est un libellé défini par l'utilisateur sous forme de paire clé-valeur, destiné à faciliter l'organisation des ressources AWS. Par exemple, vous pouvez attribuer des balises à vos flux de données en fonction de leur centre de coûts, ce qui vous permet de catégoriser et de suivre vos frais Amazon Kinesis Data Streams par centre de coûts. Pour plus d'informations, consultez la section relative au balisage Amazon Kinesis Data Streams.

Didacticiels

Analyse des données boursières avec Amazon Kinesis Data Streams

Ce didacticiel vous guide tout au long de la création d'un flux de données Amazon Kinesis, y compris lors de l'envoi de données de simulation boursière vers le flux de données et la conception d'une application permettant d'en traiter les données.  

Analyzing Streaming Data in Real Time with Amazon Kinesis (ABD301)

Amazon Kinesis facilite la collecte, le traitement et l'analyse de données diffusées en streaming en temps réel, afin d'obtenir rapidement des informations stratégiques et de réagir rapidement. Dans cette session, nous vous présentons une solution de données diffusées en streaming de bout en bout en utilisant Kinesis Streams pour l'intégration des données, Kinesis Analytics pour le traitement en temps réel et Kinesis Firehose pour la persistance. Nous revoyons en détail comment écrire des requêtes SQL en utilisant les données diffusées en streaming et nous abordons les bonnes pratiques pour optimiser et surveiller vos applications Kinesis Analytics. Enfin, nous parlons de comment estimer les coûts du système entier.

Voir l'enregistrement de la session | Télécharger la présentation 

Workshop: Building Your First Big Data Application on AWS (ABD317)

Vous souhaitez améliorer vos connaissances des services web Big Data AWS et lancer votre première application Big Data sur le cloud ? Nous vous accompagnons dans la simplification du traitement du Big Data en bus de données comprenant l'intégration, le stockage, le traitement et la visualisation. Vous concevez une application Big Data en utilisant des services gérés AWS, notamment Amazon Athena, Amazon Kinesis, Amazon DynamoDB et Amazon S3. Au cours du processus, nous revoyons les modèles de conception d'architectures pour les applications Big Data et nous vous donnons accès à un atelier à faire chez vous afin de concevoir de nouveau et de personnaliser vous-même l'application. Vous devez apporter votre propre ordinateur portable et avoir des connaissances de base des services AWS pour tirer au mieux profit de cette session.

Télécharger la présentation 

Workshop: Don't Wait Until Tomorrow to Use Streaming Data to Gain Real-time Insights into Your Business (ABD321)

Ces dernières années, le nombre d'appareils connectés et de sources de données en temps réel a grandement augmenté. De ce fait, des données sont produites en continu et ce taux de production s'accélère. Les entreprises ne peuvent plus atteindre des heures ou des jours avant d'utiliser ces données. Afin d'obtenir les informations les plus importantes, ils doivent utiliser ces données immédiatement, ce qui leur permet de réagir rapidement aux nouvelles informations. Dans cet atelier, vous allez apprendre à tirer profit des sources de données diffusées en streaming pour analyser et réagir presque en temps réel. Nous allons vous présenter différentes exigences pour un scénario réel avec des données diffusées en streaming en temps réel et nous allons vous demander de créer une solution qui répond aux exigences, en utilisant des services comme Amazon Kinesis, AWS Lambda et Amazon SNS.

Télécharger la présentation

How Amazon Flex Uses Real-time Analytics to Deliver Packages on Time (ABD217)

Il est important pour les entreprises et les clients de réduire le temps d'obtention des analyses décisionnelles depuis les données s'ils utilisent des outils d'analyse de données par lots et s'ils explorent les bénéfices de l'analyse en streaming. Apprenez les bonnes pratiques pour étendre votre architecture des entrepôts de données et des bases de données aux solutions en temps réel. Apprenez comment utiliser Amazon Kinesis pour obtenir des informations sur les données en temps réel et pour les intégrer dans Amazon Aurora, Amazon RDS, Amazon Redshift et Amazon S3. L'équipe Amazon Flex décrit comment elle utilise les analyses en streaming dans son application mobile Amazon Flex, utiliser par les livreurs d'Amazon pour livrer des millions de colis à l'heure chaque mois. Elle aborde l'architecture qui a permis de passer d'un système de traitement par lots à un système en temps réel, surmontant les difficultés de la migration de données en lot existantes en données diffusées en streaming. l'équipe évoque également les avantages des analyses en temps réel.

Voir l'enregistrement de la session | Télécharger la présentation

Real-Time Streaming Applications on AWS: Use Cases and Patterns (ABD203)

Pour prospérer sur le marché et offrir différentes expériences client, les entreprises doivent être capables d'utiliser des données en temps réel pour faciliter la prise de décision rapide. Dans cette session, vous étudiez les cas d'utilisation et les architectures courants du traitement des données en streaming. Tout d'abord, nous vous donnons une présentation des capacités des données diffusées en continu AWS et des données diffusées en streaming. Ensuite, nous abordons quelques exemples client et leurs applications en streaming en temps réel. Enfin, nous étudions les architectures et les modèles de conception communs des cas d'utilisation des données en streaming principaux.

Voir l'enregistrement de la session | Télécharger la présentation

Démarrer avec Amazon Kinesis Data Strams

Consultez le Guide du développeur
Prêt à vous lancer ?
S'inscrire
D'autres questions ?
Contactez-nous