Démarrer avec HAQM Kinesis Data Streams

Mise en route

HAQM Kinesis Data Streams est un service de traitement et d’ingestion de données extrêmement évolutif et hautement durable pour les données de streaming. 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. En quelques millisecondes, vos applications HAQM Kinesis disposent de ces données et reçoivent les enregistrements de données selon l’ordre dans lequel elles ont été générées.

HAQM Kinesis Data Streams est intégré à plusieurs services AWS, notamment HAQM Kinesis Data Firehose pour la transformation quasiment en temps réel et la livraison de flux de données dans un lac de données AWS comme HAQM S3, le service géré HAQM pour Apache Flink 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, HAQM Cloudwatch pour le traitement des métriques et des journaux et AWS KMS pour le chiffrement côté serveur.

Le service HAQM 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 HAQM Kinesis, puis les données du flux sont utilisées par différentes applications HAQM 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 HAQM S3. Les données dans S3 sont par ailleurs traitées et stockées dans HAQM Redshift à des fins d’analytique complexe. La troisième application (en vert) transmet les données brutes vers HAQM S3. Ces dernières sont ensuite archivées dans HAQM Glacier pour un stockage à long terme plus économique. Vous noterez que trois de ces pipelines de traitement de données surviennent simultanément et en parallèle.

Démarrer avec HAQM Kinesis Data Strams

Voir l’actualité HAQM Kinesis Data Streams

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

Vidéos

Utilisation de Kinesis Data Streams

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

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

Concepts clés

Open all

Un producteur de données est une application qui émet généralement des enregistrements de données à mesure qu'ils sont générés dans un flux de données Kinesis. Il attribue des clés de partition aux enregistrements. Les clés de partition finissent par déterminer quelle partition ingère l'enregistrement de données pour un flux 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 à mesure qu'elles sont générées. La plupart des consommateurs de données récupèrent les données les plus récentes d'une partition, ce qui permet l'analyse en temps réel et la gestion des 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 (limite modifiable sur demande si nécessaire). Un flux de données va conserver les données pendant 24 heures par défaut, ou en option jusqu'à 365 jours.

La partition est l'unité de débit de base d'un flux de données HAQM 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. Vous pouvez ajouter d'autres partitions pour augmenter la capacité d'ingestion.
  • Vous pouvez ajouter ou supprimer des partitions de votre flux de manière dynamique à mesure des changements de votre débit de données à l’aide de la console AWS ou l’API UpdateShardCount, mais aussi déclencher l’autoscaling via AWS Lambda ou l’utilitaire autoscaling.
  • Avec 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.
  • Sans 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 du flux et vous pouvez le modifier à 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 n'utilisent pas la distribution améliorée, ce flux présente un débit de 2 Mo/s de données en entrée et 4 Mo/s en sortie. Dans tous les cas, ce flux autorise jusqu'à 2 000 enregistrements PUT par seconde, ou 2 Mo/s de données en entrée, la première limite atteinte étant prise en compte.
  • Vous pouvez surveiller les métriques au niveau des partitions dans HAQM Kinesis Data Streams.

L'enregistrement est l'unité utilisée pour les données stockées dans un flux HAQM 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).

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 HAQM Kinesis et 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 HAQM 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.

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 HAQM 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 HAQM 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.

Ajout de données aux flux

Open all

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

Placez un échantillon de données dans un flux de données Kinesis ou Kinesis Data Firehose à l’aide d’HAQM Kinesis Data Generator.

HAQM Kinesis Data Streams propose deux API pour placer des données dans un flux HAQM 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.

La bibliothèque Producer HAQM Kinesis (KPL) est une bibliothèque facile à utiliser et hautement configurable qui vous permet d’ajouter des données à un flux de données HAQM Kinesis. La bibliothèque Producer HAQM Kinesis (KPL) 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.

HAQM Kinesis Agent est une application Java préintégrée qui permet de collecter et d’envoyer facilement des données vers votre flux HAQM Kinesis. Cet agent peut être installé dans des environnements basés sur des serveurs Linux tels que des serveurs web, des serveurs de journaux ou encore des 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 ou création de vos propres applications

Open all

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

HAQM 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’analytique. Vous pouvez utiliser un flux de données Kinesis en tant que source pour Kinesis Data Firehose.

Avec le service géré HAQM pour Apache Flink, vous pouvez facilement interroger des données de streaming ou créer des applications de streaming à l’aide d’Apache Flink afin d’obtenir des informations exploitables et de répondre rapidement aux besoins de votre entreprise et de vos clients. Vous pouvez utiliser un flux de données Kinesis comme source et destination pour une application de service géré HAQM pour Apache Flink.

Vous pouvez souscrire aux fonctionnalités Lambda pour lire automatiquement les enregistrements de votre flux de données Kinesis. AWS Lambda est généralement utilisé pour le flux d’enregistrement par enregistrement (également appelé traitement de flux événementiel).

La bibliothèque client HAQM Kinesis (KCL) est une bibliothèque préintégrée qui vous permet de créer facilement des applications HAQM Kinesis pour la lecture et le traitement des données d’un flux de données HAQM 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 HAQM Kinesis. À partir de KCL 2.0, vous pouvez utiliser une API de diffusion HTTP/2 à faible latence et la distribution améliorée pour extraire les données d'un flux.

La bibliothèque Connector HAQM Kinesis est une bibliothèque préintégrée qui vous permet d’intégrer facilement HAQM Kinesis à d’autres services AWS et à des outils tiers. La bibliothèque Client HAQM Kinesis (KCL) est requise pour l'utilisation de la bibliothèque Connector. La version actuelle de cette bibliothèque fournit des connecteurs pour HAQM DynamoDB, HAQM Redshift, HAQM S3 et HAQM 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.

HAQM Kinesis Storm Spout est une bibliothèque préintégrée qui vous permet d’intégrer facilement HAQM Kinesis Data Streams à Apache Storm. Dans sa version actuelle, la bibliothèque HAQM 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 HAQM Kinesis Data Streams en tant que service de collecte, de stockage et de consultation à la fois scalable et fiable.

Gestion de flux

Open all

Vous pouvez bénéficier d'un accès privé aux API Kinesis Data Streams à partir de votre HAQM Virtual Private Cloud (VPC) 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 PrivateLink, consultez la documentation d’AWS PrivateLink.

La distribution améliorée permet aux clients d'adapter le nombre des 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 d'extraction 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.

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 fonctionnalité 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 FAQ sur Kinesis Data Streams.

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 service géré HAQM pour Apache Flinks pour traiter des données de streaming en temps réel avec un code SQL standard, sans avoir à maîtriser de nouveaux langages de programmation ou de nouvelles structures de traitement.

HAQM Kinesis Data Streams peut également être intégré à HAQM CloudWatch, ce qui vous permet d’enregistrer, de consulter et d’analyser des métriques CloudWatch pour vos flux de données HAQM Kinesis et leurs partitions. Pour en savoir plus sur les métriques HAQM Kinesis Data Streams, consultez la section Monitoring HAQM Kinesis with HAQM CloudWatch.

HAQM 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 certains utilisateurs ou groupes d'utilisateurs d'ajouter des données à votre flux HAQM Kinesis. Pour en savoir plus sur la gestion et le contrôle des accès à votre flux de données HAQM Kinesis, référez-vous à la section Controlling Access to HAQM Kinesis Resources using IAM.

HAQM 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 HAQM Kinesis prises en charge, consultez la section Logging HAQM Kinesis API calls Using AWS CloudTrail.

Vous pouvez ajouter des balises à vos flux de données HAQM 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 HAQM Kinesis en fonction de leur centre de coûts, ce qui vous permet de catégoriser et de suivre vos frais HAQM Kinesis Data Streams par centre de coûts. Pour plus d’informations, consultez la section Tagging Your HAQM Kinesis Data Streams.

Didacticiels

Open all

Ce didacticiel vous guide tout au long de la création d'un flux de données HAQM 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.  

Présentations à la une

Open all

Solutions présentées

La solution AWS de données de streaming pour HAQM Kinesis fournit des modèles AWS CloudFormation dans lesquels les flux de données transitent par des producteurs, un stockage de streaming, des consommateurs et des destinations. Afin de s'adapter aux différents cas d'utilisation et besoins professionnels, cette solution propose quatre modèles AWS CloudFormation. Les modèles sont configurés pour appliquer les meilleures pratiques afin de surveiller les fonctionnalités à l'aide de tableaux de bord et d'alarmes et de sécuriser les données.