Qu'est-ce qu'AWS Kinesis ? Modèle de conception, cas d'utilisation et comparaison

Publié: 2022-07-01

Nous vivons à l'ère des intégrations inter-applications, des notifications instantanées et des mises à jour instantanées des données. Dans un tel scénario, il devient plus important de créer, de maintenir et de modifier des systèmes en temps réel.

Au fil des ans, divers outils utiles ont été développés pour aider à la construction et à la maintenance de tels systèmes multiplateformes. RabbitMQ, Kafka et AWS Kinesis sont trois de ces outils qui ont aidé les développeurs et les ingénieurs à travailler de manière transparente avec des données en temps réel. Ces systèmes ont tous été créés et maintenus, en gardant différents objectifs à l'esprit. Par conséquent, ils viennent avec leurs avantages et leurs limites distincts en fonction du travail à accomplir.

Cet article parlera en détail d'AWS Kinesis et de son fonctionnement.

Kinesis est un service de streaming construit sur AWS. Il peut être utilisé pour traiter toutes sortes de données - des journaux, des données IoT, des données vidéo, pratiquement n'importe quel format de données. Cela vous permet d'exécuter différents modèles et processus d'apprentissage automatique sur les données en temps réel au fur et à mesure qu'elles circulent dans votre système. Par conséquent, cela réduit les tracas de parcourir les bases de données traditionnelles tout en augmentant l'efficacité globale.

Table des matières

Explorez nos cours de MBA populaires

Master en administration des affaires de la Golden Gate University Master en administration des affaires (MBA) Liverpool Business School MBA de la Deakin Business School
MBA en marketing numérique de l'Université Dekin Executive MBA de la SSBM Voir tous les cours de MBA

Le modèle de conception Pub/Sub

Avant d'approfondir la manière dont Kinesis peut être utilisé, il est essentiel d'en savoir un peu plus sur le modèle de conception qu'il utilise. Dans ce cas, nous parlons de la conception de l'éditeur et de l'abonné, souvent appelée modèle de conception pub/sub. Ce modèle de conception a été développé pour que l'éditeur (l'expéditeur du message, envoie les événements dans Kinesis) soit un bus d'événements. Ensuite, ce bus d'événements distribue avec succès les données d'entrée à tous les abonnés.

Un élément clé à garder à l'esprit ici est que les éditeurs n'ont essentiellement aucune idée de l'existence d'abonnés. Toute la messagerie et le transport de la messagerie sont entièrement gérés par AWS Kinesis.

Autrement dit, le modèle de conception pub/sub est utilisé pour une communication efficace des messages sans créer une conception très couplée. Au lieu de cela, Kinesis se concentre sur l'utilisation de composants indépendants et la création d'un flux de travail distribué global à partir de cela.

Essentiellement, AWS Kinesis est un puissant outil de streaming qui offre des avantages distincts, en particulier par rapport à d'autres outils de streaming en temps réel. L'un de ces avantages est qu'il s'agit d'un service géré, de sorte que les développeurs n'ont pas à gérer l'administration du système. Cela permet aux développeurs de se concentrer davantage sur leur code et leurs systèmes et moins sur les tâches administratives.

Examinons maintenant quelques cas d'utilisation de Kinesis.

Cas d'utilisation d'AWS Kinesis - Données en continu

AWS Kinesis est utile pour les grandes et petites entreprises qui cherchent à gérer et à intégrer leurs données dans différentes plateformes. Kinesis est avantageux dans des scénarios à grande et petite échelle pour les organisations qui cherchent à gérer et à intégrer leurs données sur plusieurs plates-formes.

Examinons deux grands cas d'utilisation où des entreprises ont utilisé AWS Kinesis pour gérer de manière transparente de grandes quantités de données en temps réel.

Netflix

Netflix utilise AWS Kinesis pour traiter plusieurs To de données de journaux chaque jour. Netflix a besoin d'une application centralisée qui enregistre toutes les données en temps réel. En utilisant Kinesis, Netflix a développé Dredge, qui enrichit le contenu avec des métadonnées en temps réel. De cette façon, les données sont traitées instantanément lorsqu'elles passent par Kinesis. Cela élimine une étape fastidieuse de chargement des données dans une base de données pour un traitement futur.

Veritone

Veriton fournit des services d'IA et d'apprentissage automatique. Il utilise les flux vidéo AWS Kinesis pour le traitement des données client. Veriton applique également des modèles ML et l'IA au contenu en temps réel pour l'améliorer avec des métriques et des métadonnées. Grâce à ces informations supplémentaires, Veritone facilite la recherche de flux vidéo Kinesis en examinant l'audio, la reconnaissance faciale, les données balisées, etc.

Ce ne sont que deux des nombreux exemples de la façon dont les entreprises exploitent aujourd'hui AWS Kinesis pour travailler plus efficacement avec des données de streaming en temps réel.

Passons aux aspects techniques et aux composants essentiels du flux AWS Kinesis.

Apprenez des cours d'IA et de ML dans les meilleures universités du monde. Gagnez des programmes de maîtrise, Executive PGP ou Advanced Certificate pour accélérer votre carrière.

Flux vs Firehose

AWS Kinesis propose aux développeurs deux produits principaux : Kinetic Streams et Kinesis Firehose.

Pour travailler avec Kinesis Stream, vous devez utiliser la bibliothèque Kinesis Producer. Cela vous permettra de mettre toutes les données en temps réel dans votre flux. De plus, vous pouvez connecter cette bibliothèque à presque n'importe quelle application ou processus. Cependant, Kinesis Streams n'est pas un service géré à 100 %. Ainsi, l'équipe de développeurs devra le mettre à l'échelle manuellement si nécessaire. De plus, les données introduites dans le flux y resteront pendant sept jours.

Kinesis Firehose est légèrement plus simple à mettre en œuvre. Les données transmises à Kinesis Firehose sont envoyées à Amazon Redshift, Amazon S3 et même Elasticsearch, le tout à l'aide du moteur AWS Kinesis. Après cela, vous pouvez le traiter selon vos besoins. Si les données sont stockées dans Amazon S3 ou tout autre système de stockage AWS, vous pouvez les y laisser aussi longtemps que vous le souhaitez.

Configuration d'un flux sur Kinesis

Avant de commencer à accéder à Kinesis, vous devez configurer un flux en accédant à l'AWS CLI. Dans le shell de commande, entrez la commande suivante pour créer un flux appelé DataProcessingStream

–nom-flux DataProcessingStream \

–shard-count 1 \

–région eu-ouest-1

Créer un pipeline de streaming avec Python

Une fois que vous avez configuré un flux sur Kinesis, vous devez commencer à créer le producteur et le consommateur. Les composants principaux de Kinesis vous aident à créer une couche d'accès pour intégrer d'autres systèmes, logiciels et applications.

Dans ce didacticiel, nous travaillerons avec la bibliothèque Python boto3 pour nous connecter à Kinesis.

Création du producteur

Utilisez le code mentionné ci-dessous pour créer le producteur à l'aide du langage de programmation Python :

importer boto3

importer json

journalisation des importations

logging.basicConfig(niveau = logging.INFO)

session = boto3.Session(region_name='eu-west-1′)

client = session.client('kinesis')

test_data = {'data_tag' : 'DataOne', 'score' : '10', 'char' : 'Database Warrior'}

réponse = client.put_record(

StreamName='DataProcessingStream',

Données=json.dumps({

"data_tag": test_data['data_tag'],

"score": test_data['score'],

"char": test_data['char']

}),

PartitionKey='a01′

)

logging.info("Input New Data Score: %s", test_data)

Pour extraire les données, vous avez besoin d'un autre script pour écouter les données transmises aux producteurs. Pour cela, vous pouvez utiliser ShardIterator pour accéder à toutes les données introduites dans Kinesis. De cette façon, vous pouvez accéder aux enregistrements en temps réel et futurs dans Kinesis.

Créer le consommateur

Utilisez le code ci-dessous pour créer un consommateur Python :

importer boto3

importer json

importer système

journalisation des importations

logging.basicConfig(niveau = logging.INFO)

session = boto3.Session(region_name='eu-west-1′)

client = session.client('kinesis')

aws_kinesis_stream = client.describe_stream(StreamName='DataProcessingStream)

shard_id = aws_kinesis_stream['StreamDescription']['Shards'][0]['ShardId']

stream_response = client.get_shard_iterator(

StreamName='DataProcessingStream',

ShardId=shard_id,

ShardIteratorType='TRIM_HORIZON'

)

itérateur = stream_response['ShardIterator']

tandis que Vrai :

essayer:

aws_kinesis_response = client.get_records(ShardIterator=iterator, Limit=5)

itérateur = aws_kinesis_response['NextShardIterator']

pour l'enregistrement dans aws_kinesis_response['Records'] :

si 'Données' dans l'enregistrement et len(enregistrement['Données']) > 0 :

logging.info("Nouveau score de données reçu : %s", json.loads(record['Data']))

sauf KeyboardInterrupt :

sys.exit()

Dans l'exemple ci-dessus, nous imprimons uniquement les données.

Problèmes avec les pipelines Kinesis

Kinesis est véritablement bénéfique, mais il ne va pas sans défis et sans lacunes. L'« observabilité » est l'un des défis importants auxquels vous serez confronté lorsque vous travaillerez avec Kinesis.

Au fur et à mesure que vous travaillez avec plusieurs composants AWS, le système que vous créez devient de plus en plus complexe. Par exemple, si vous utilisez les fonctions Lambda en tant que producteur et consommateur et que vous les connectez à différents systèmes de stockage AWS, il deviendra très difficile de gérer et de suivre les dépendances et les erreurs.

Lisez nos articles populaires liés au MBA

Salaire d'analyste financier - débutants et expérimentés Principales questions et réponses d'entrevue pour les RH Options de carrière en marketing MBA aux États-Unis
Meilleures options de carrière aux États-Unis après le MBA en ressources humaines Les 7 meilleures options de carrière dans la vente Emplois de la finance les mieux rémunérés aux États-Unis : de la moyenne à la plus élevée
Top 7 des options de carrière en finance aux États-Unis : à lire absolument Top 5 des tendances marketing en 2022 Salaire MBA aux États-Unis en 2022 [Toutes les spécialisations]

En conclusion

Il ne fait aucun doute que le streaming de données et le travail avec des données en temps réel sont le besoin de l'heure, et ne feront qu'augmenter à mesure que notre monde produit de plus en plus de données. Donc, si vous souhaitez maîtriser les astuces de Kinesis, un cours professionnel pourrait vous aider.

Le Master of Science in Machine Learning and AI d'upGrad, proposé avec la collaboration de l'IIIT-B et du LJMU, est un cours complet de 18 mois conçu pour vous aider à démarrer avec les bases mêmes de l'exploration de données et à atteindre tous les concepts critiques de NLP, Deep Apprentissage, apprentissage par renforcement, etc. De plus, vous pouvez travailler sur des projets industriels, un soutien de carrière à 360 degrés, un mentorat personnalisé, des opportunités de réseautage entre pairs et bien plus encore pour vous aider à maîtriser l'apprentissage automatique et l'IA.

1. AWS Kinesis peut-il extraire des données ?

Amazon Kinesis est une solution de streaming de données en temps réel évolutive et durable qui fonctionne en capturant en continu des Go de données en temps réel à partir de milliers de sources.

2. Un flux Kinesis peut-il avoir plusieurs consommateurs ?

Oui, en utilisant des itérateurs de partition, vous pouvez fournir plusieurs consommateurs dans un flux Kinesis.

3. Avec quel type de file d'attente AWS Kinesis fonctionne-t-il ?

AWS Kinesis est FIFO - First In First Out - dans ses opérations et ses processus de données.