Accueil Cloud computing Amazon MSK présente la livraison de données gérées d’Apache Kafka vers votre lac de données

Amazon MSK présente la livraison de données gérées d’Apache Kafka vers votre lac de données

0
Amazon MSK présente la livraison de données gérées d’Apache Kafka vers votre lac de données


Exprimé par Polly

Je suis ravi d’annoncer aujourd’hui une nouvelle capacité de Streaming géré par Amazon pour Apache Kafka (Amazon MSK) qui vous permet de charger en continu des données à partir d’un Apache Kafka regrouper à Service de stockage simple Amazon (Amazon S3). Nous utilisons Amazon Kinesis Data Firehose— un service d’extraction, de transformation et de chargement (ETL) — pour lire les données d’une rubrique Kafka, transformer les enregistrements et les écrire dans une destination Amazon S3. Kinesis Data Firehose est entièrement géré et vous pouvez le configurer en quelques clics dans la console. Aucun code ni infrastructure n’est nécessaire.

Kafka est couramment utilisé pour créer des pipelines de données en temps réel qui déplacent de manière fiable des quantités massives de données entre des systèmes ou des applications. Il fournit un système de messagerie de publication-abonnement hautement évolutif et tolérant aux pannes. De nombreux clients AWS ont adopté Kafka pour capturer des données en streaming telles que des événements de flux de clics, des transactions, des événements IoT et des journaux d’applications et de machines, et disposent d’applications qui effectuent des analyses en temps réel, exécutent des transformations continues et distribuent ces données aux lacs de données et bases de données en temps réel.

Cependant, le déploiement de clusters Kafka ne va pas sans difficultés.

Le premier défi consiste à déployer, configurer et maintenir le cluster Kafka lui-même. C’est pourquoi nous avons lancé Amazon MSK dans mai 2019. MSK réduit le travail nécessaire à la configuration, à la mise à l’échelle et à la gestion d’Apache Kafka en production. Nous nous occupons de l’infrastructure, vous permettant ainsi de vous concentrer sur vos données et applications. Le deuxième défi consiste à écrire, déployer et gérer le code d’application qui consomme les données de Kafka. Cela nécessite généralement le codage des connecteurs à l’aide du Cadre Kafka Connect puis déployer, gérer et maintenir une infrastructure évolutive pour exécuter les connecteurs. En plus de l’infrastructure, vous devez également coder la logique de transformation et de compression des données, gérer les erreurs éventuelles et coder la logique de nouvelle tentative pour garantir qu’aucune donnée n’est perdue lors du transfert hors de Kafka.

Aujourd’hui, nous annonçons la disponibilité d’une solution entièrement gérée pour transmettre des données d’Amazon MSK vers Amazon S3 à l’aide de Amazon Kinesis Data Firehose. La solution est sans serveur (il n’y a aucune infrastructure de serveur à gérer) et ne nécessite aucun code. La logique de transformation des données et de gestion des erreurs peut être configurée en quelques clics dans la console.

L’architecture de la solution est illustrée par le schéma suivant.

Diagramme d'architecture Amazon MSK vers Amazon S3

Amazon MSK est la source de données et Amazon S3 est la destination des données tandis que Amazon Kinesis Data Firehose gère la logique de transfert des données.

Lorsque vous utilisez cette nouvelle fonctionnalité, vous n’avez plus besoin de développer de code pour lire vos données depuis Amazon MSK, les transformer et écrire les enregistrements résultants sur Amazon S3. Kinesis Data Firehose gère les opérations de lecture, de transformation et de compression, ainsi que les opérations d’écriture sur Amazon S3. Il gère également la logique d’erreur et de nouvelle tentative en cas de problème. Le système transmet les enregistrements qui ne peuvent pas être traités au compartiment S3 de votre choix pour une inspection manuelle. Le système gère également l’infrastructure requise pour gérer le flux de données. Il évoluera et évoluera automatiquement pour s’adapter au volume de données à transférer. Aucune opération d’approvisionnement ou de maintenance n’est requise de votre part.

Les flux de diffusion Kinesis Data Firehose prennent en charge les clusters publics et privés provisionnés ou sans serveur Amazon MSK. Il prend également en charge les connexions entre comptes pour lire à partir d’un cluster MSK et écrire dans des compartiments S3 dans différents comptes AWS. Le flux de diffusion Data Firehose lit les données de votre cluster MSK, met les données en mémoire tampon pendant une taille et une durée de seuil configurables, puis écrit les données mises en mémoire tampon sur Amazon S3 sous la forme d’un fichier unique. MSK et Data Firehose doivent se trouver dans la même région AWS, mais Data Firehose peut fournir des données aux compartiments Amazon S3 d’autres régions.

Les flux de diffusion Kinesis Data Firehose peuvent également convertir les types de données. Il dispose de transformations intégrées pour prendre en charge JSON vers Parquet Apache et Apache ORC formats. Il s’agit de formats de données en colonnes qui économisent de l’espace et permettent des requêtes plus rapides sur Amazon S3. Pour les données non JSON, vous pouvez utiliser AWS Lambda pour transformer les formats d’entrée tels que CSV, XML ou texte structuré en JSON avant de convertir les données en Apache Parquet/ORC. De plus, vous pouvez spécifier des formats de compression de données à partir de Data Firehose, tels que GZIP, FERMETURE ÉCLAIRet RAPIDEavant de transmettre les données à Amazon S3, ou vous pouvez transmettre les données à Amazon S3 sous leur forme brute.

Voyons voir comment ça fonctionne
Pour commencer, j’utilise un compte AWS sur lequel un cluster Amazon MSK est déjà configuré et certaines applications y diffusent des données. Pour démarrer et créer votre premier cluster Amazon MSK, je vous encourage pour lire le tutoriel.

Amazon MSK - Liste des clusters existants

Pour cette démo, j’utilise la console pour créer et configurer le flux de diffusion de données. Alternativement, je peux utiliser le Interface de ligne de commande AWS (AWS CLI), Kits SDK AWS, AWS CloudFormationou Terraforme.

Je navigue vers le Amazon Kinesis Data Firehose la page du Console de gestion AWS puis choisissez Créer un flux de diffusion.

Kinesis Data Firehose - Page de la console principale

Je sélectionne Amazon MSK comme données Source et Amazon S3 en livraison Destination. Pour cette démo, je souhaite me connecter à un cluster privé, je sélectionne donc Courtiers bootstrap privés sous Connectivité du cluster Amazon MSK.

Je dois saisir l’ARN complet de mon cluster. Comme la plupart des gens, je ne me souviens pas de l’ARN, alors je choisis Parcourir et sélectionnez mon cluster dans la liste.

Enfin, j’entre dans le cluster Sujet nom à partir duquel je souhaite que ce flux de diffusion soit lu.

Configurer le flux de diffusion

Une fois la source configurée, je fais défiler la page pour configurer la section de transformation des données.

Sur le Transformer et convertir des enregistrements je peux choisir si je souhaite fournir ma propre fonction Lambda pour transformer les enregistrements qui ne sont pas au format JSON ou transformer mes enregistrements JSON source vers l’un des deux formats de données de destination prédéfinis disponibles : Parquet Apache ou Apache ORC.

Les formats Apache Parquet et ORC sont plus efficaces que le format JSON pour interroger les données d’Amazon S3. Vous pouvez sélectionner ces formats de données de destination lorsque vos enregistrements source sont au format JSON. Vous devez également fournir un schéma de données à partir d’une table dans Colle AWS.

Ces transformations intégrées optimisent vos coûts Amazon S3 et réduisent le temps d’obtention d’informations lorsque les requêtes d’analyse en aval sont effectuées avec Amazone Athéna, Spectre Amazon Redshiftou d’autres systèmes.

Configurer la transformation des données dans le flux de diffusion

Enfin, j’entre le nom du compartiment Amazon S3 de destination. Encore une fois, quand je ne m’en souviens pas, j’utilise le Parcourir pour laisser la console me guider à travers ma liste de buckets. En option, j’entre un Préfixe du compartiment S3 pour les noms de fichiers. Pour cette démo, j’entre aws-news-blog. Lorsque je ne saisis pas de nom de préfixe, Kinesis Data Firehose utilise la date et l’heure (en UTC) comme valeur par défaut.

Sous le Conseils de tampon, compression et cryptage section, je peux modifier les valeurs par défaut pour la mise en mémoire tampon, activer la compression des données ou sélectionner l’option KMS clé pour chiffrer les données au repos sur Amazon S3.

Quand je suis prêt, je choisis Créer un flux de diffusion. Après quelques instants, l’état du flux passe à ✅ disponible.

Sélectionnez le compartiment S3 de destination

En supposant qu’il existe une application diffusant des données vers le cluster que j’ai choisi comme source, je peux maintenant accéder à mon compartiment S3 et voir les données apparaître dans le format de destination choisi lorsque Kinesis Data Firehose les diffuse.

Les navigateurs de compartiment S3 affichent les fichiers diffusés depuis MSK

Comme vous le voyez, aucun code n’est requis pour lire, transformer et écrire les enregistrements de mon cluster Kafka. Je n’ai pas non plus besoin de gérer l’infrastructure sous-jacente pour exécuter la logique de streaming et de transformation.

Prix ​​et disponibilité.
Cette nouvelle fonctionnalité est disponible aujourd’hui dans toutes les régions AWS où Amazon MSK et Kinesis Data Firehose sont disponibles.

Vous payez pour le volume de données sortant d’Amazon MSK, mesuré en Go par mois. Le système de facturation prend en compte la taille exacte de l’enregistrement ; il n’y a pas d’arrondi. Comme d’habitude, la page des tarifs a tous les détails.

J’ai hâte de connaître la quantité d’infrastructure et de code que vous allez supprimer après avoir adopté cette nouvelle fonctionnalité. Allez maintenant configurer votre premier flux de données entre Amazon MSK et Amazon S3 aujourd’hui.

— Seb



LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici