BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Streaming Big Data avec Amazon Kinesis

Streaming Big Data avec Amazon Kinesis

Amazon a récemment annoncé Kinesis, un service qui permet aux développeurs de streamer de grandes quantités de données provenant de différentes sources et de les traiter. Le service est actuellement en limited preview.

Qu'est-ce exactement que Kinesis ? Et en quoi est-il différent de SQS ? BuckKniferson l'explique :

Kinesis semble englober les files SQS et instances de calcul avec auto-scaling, dans un nouveau produit. Kinesis vous donne la possibilité d'accepter des millions de requêtes POST par seconde et de les traiter en temps réel sous forme de flux. Vous pouvez envoyer les données en streaming directement à S3, et les envoyer à vos applications de traitement et de stockage relationnel et et et ... Le tout en temps réel.

Les messages sont limités à 256kb de messages texte (généralement JSON, mais vous pouvez utiliser ce que vous voulez). Les flux Kinesis sont provisionnés en mégaoctets par seconde, et à ma connaisance, peuvent accepter n'importe quel type de données via un PUT HTTP.

En outre, le flux de données Kinesis est disponible pour vos applications pendant 24 heures dans de multiples zones de disponibilité tandis que les messages SQS sont dépendants de la zone et ne sont pas durables. Si une zone n'est plus accessible, ou s'il y a un pépin, vos messages SQS sont partis. Et je ne pense pas que SQS ait la scalabilité et les IOs que Kinesis possède. Je n'ai jamais vu une garantie IOPS publiée pour SQS mais Kinesis peux accepter 1000 demandes PUT par seconde, par fragment.

Les applications utilisent les flux Kinesis pour capturer, stocker et transporter des données, dont chacune peut avoir plusieurs readers et writers. La capacité d'un flux est spécifiée en termes de fragments, chaque fragment a la possibilité d'écrire 1000 transactions d'écriture, jusqu'à 1 Mo par seconde. Les utilisateurs peuvent faire évoluer la capacité de flux individuels en ajoutant ou retirant des fragments sans temps d'arrêt.

Les développeurs peuvent utiliser la bibliothèque cliente Kinesis pour construire des applications qui tirent parti de Kinesis. Le côté producteur utilise l'API PutRecord pour envoyer des données. Du côté des consommateurs, vous fournissez une implémentation de IRecordProcessor et le client « poussera » de nouveaux enregistrements dès qu'ils seront créés. Il existe également des interfaces de bas niveau telles que GetShardIterator et GetNextRecords. Après le traitement d'un enregistrement, le code du consommateur peut stocker la donnée dans un des services de stockage AWS (S3, RedShift, DynamoDB) ou peut le transmettre à un autre flux Kinesis.

Le traitement en temps réel fourni par Kinesis est différent des traitements par lots (tels que permis par Hadoop) car les données peuvent être traitées dès qu'elles sont disponibles, plutôt que par lots. Amazon liste la gestion des logs, le traitement des données des médias sociaux, le traitement en temps réel des transactions financières et le machine learning en ligne comme quelques-uns des cas d'utilisation possibles. Storm est un autre produit qui permet de grandes quantités de traitement complexes en temps réel.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT