MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Streaming de données NoSQL avec MongoDB et Kafka

Les développeurs décrivent Kafka comme un "système de messagerie distribué, tolérant aux pannes, à haut débit, pub-sub. " Kafka est bien connu en tant que service de journal de validation partitionné, distribué et répliqué. Il fournit également les fonctionnalités d'un système de messagerie, mais avec une conception unique. D'autre part, MongoDB est connu comme "La base de données pour idées géantes. " MongoDB est capable de stocker des données dans des documents de type JSON dont la structure peut varier, offrant un schéma dynamique et flexible. MongoDB est conçu pour une haute disponibilité et une évolutivité, avec une réplication et un partitionnement automatique intégrés.

MongoDB est classé sous "Bases de données", tandis que Kafka appartient à la catégorie "Message Queue" de la pile technologique. Les développeurs considèrent Kafka "haut débit", "distribué" et "évolutif" comme les facteurs clés ; tandis que "Stockage orienté document", "Pas de SQL" et "Facilité d'utilisation" sont considérés comme les principales raisons pour lesquelles MongoDB est favorisé.

Diffusion de données dans Kafka

Dans l'écosystème de données d'aujourd'hui, aucun système unique ne peut fournir toutes les perspectives nécessaires pour fournir un aperçu réel des données. Pour obtenir une meilleure visualisation des informations sur les données à partir des données, il faut mélanger un énorme volume d'informations provenant de plusieurs sources de données. En tant que tel, nous sommes impatients d'obtenir des réponses immédiatement; si le temps nécessaire pour analyser les informations sur les données dépasse 10 s de millisecondes, la valeur est perdue ou non pertinente. Les applications telles que la détection des fraudes, le trading haute fréquence et les moteurs de recommandation ne peuvent pas se permettre d'attendre. Cette opération est également connue sous le nom d'analyse de l'afflux de données avant qu'elles ne soient mises à jour en tant que base de données d'enregistrement avec une tolérance zéro pour la perte de données, et le défi devient encore plus décourageant.

Kafka vous aide à ingérer et à déplacer rapidement et de manière fiable de grandes quantités de données à partir de plusieurs sources de données, puis à les rediriger vers les systèmes qui en ont besoin en filtrant, agrégeant et analysant en cours de route. Kafka a un débit, une fiabilité et des caractéristiques de réplication plus élevés, une méthode évolutive pour communiquer des flux de données d'événement d'un ou plusieurs producteurs Kafka à un ou plusieurs consommateurs Kafka. Voici des exemples d'événements :

  • Données sur la pollution de l'air capturées sur une base périodique
  • Un consommateur ajoute un article au panier dans une boutique en ligne
  • Un Tweet publié avec un hashtag spécifique

Les flux d'événements Kafka sont capturés et organisés en sujets prédéfinis. Le producteur Kafka choisit un sujet auquel envoyer un événement donné, et les consommateurs sélectionnent les sujets dont ils extraient les événements. Par exemple, une application financière boursière peut extraire les transactions boursières d'un sujet et les informations financières de l'entreprise d'un autre afin de rechercher des opportunités de trading.

La collaboration entre MongoDB et Kafka constitue aujourd'hui le cœur de nombreuses architectures de données modernes. Kafka est conçu pour des flux de données illimités qui écrivent séquentiellement des événements dans des journaux de validation, permettant un mouvement de données en temps réel entre MongoDB et Kafka grâce à l'utilisation de Kafka Connect.

Le connecteur MongoDB officiel pour Kafka a été développé et est pris en charge par MongoDB Inc. ingénieurs. Il est également vérifié par Confluent (qui a lancé la plate-forme de diffusion d'événements prête pour l'entreprise), conformément aux directives établies par le programme d'intégrations vérifiées de Confluent. Le connecteur permet à MongoDB d'être configuré à la fois comme récepteur et comme source pour Kafka. Créez facilement des pipelines de données robustes et réactifs qui diffusent les événements entre les applications et les services en temps réel.

Connecteur de récepteur MongoDB

Le MongoDB Sink nous permet d'écrire des événements de Kafka dans notre instance MongoDB. Le connecteur Sink convertit la valeur de Kafka Connect SinkRecords en un document MongoDB et effectuera une insertion ou une mise à jour en fonction de la configuration que vous avez choisie. Il attendait la base de données créée à l'avance, les collections MongoDB ciblées créées si elles n'existent pas.

Connecteur Source MongoDB Kafka

Le connecteur source MongoDB Kafka déplace les données d'un jeu de réplicas MongoDB vers un cluster Kafka. Le connecteur configure et utilise les documents d'événement de flux de modifications et les publie dans une rubrique. Les flux de modifications, une fonctionnalité introduite dans MongoDB 3.6, génèrent des documents d'événement qui contiennent des modifications des données stockées dans MongoDB en temps réel et offrent des garanties de durabilité, de sécurité et d'idempotence. Vous pouvez configurer des flux de modifications pour observer les modifications au niveau de la collection, de la base de données ou du déploiement. Il utilise les paramètres suivants pour créer des flux de modifications et personnaliser la sortie à enregistrer dans le cluster Kafka. Il publiera les événements de données modifiés dans un sujet Kafka composé de la base de données et du nom de la collection à l'origine de la modification.

 Cas d'utilisation de MongoDB et Kafka

Sites Web de commerce électronique

Cas d'utilisation d'un site Web de commerce électronique dans lequel les données d'inventaire sont stockées dans MongoDB. Lorsque l'inventaire du produit passe en dessous d'un certain seuil, l'entreprise souhaite passer une commande automatique pour augmenter le stock. Le processus de commande est effectué par d'autres systèmes en dehors de MongoDB, et l'utilisation de Kafka comme plate-forme pour de tels systèmes pilotés par les événements est un excellent exemple de la puissance de MongoDB et de Kafka lorsqu'ils sont utilisés ensemble.

Suivi de l'activité du site Web

L'activité du site, telle que les pages visitées ou les publicités affichées, est capturée dans les rubriques Kafka - une rubrique par type de données. Ces sujets peuvent ensuite être consommés par plusieurs fonctions telles que la surveillance, l'analyse en temps réel ou l'archivage pour une analyse hors ligne. Des informations provenant des données stockées dans une base de données opérationnelle telle que MongoDB, où elles peuvent être analysées avec des données provenant d'autres sources.

Internet des objets (IdO)

Les applications IoT doivent faire face à un nombre considérable d'événements générés par une multitude d'appareils. Kafka joue un rôle essentiel en fournissant la collecte en temps réel et en temps réel de toutes ces données de capteur. Un cas d'utilisation courant est la télématique, où les diagnostics des capteurs d'un véhicule doivent être reçus et traités à la base. Une fois capturées dans les rubriques Kafka, les données peuvent être traitées de plusieurs manières, y compris le traitement de flux ou les architectures Lambda. Il est également susceptible d'être stocké dans une base de données opérationnelle telle que MongoDB, où il peut être combiné avec d'autres données stockées pour effectuer des analyses en temps réel et prendre en charge des applications opérationnelles telles que le déclenchement d'offres personnalisées.

Conclusion

MongoDB est bien connu en tant que bases de données non relationnelles, publiées sous une licence libre et open source, MongoDB est principalement une base de données orientée document, destinée à être utilisée avec des données semi-structurées telles que document texte. Il s'agit de la base de données moderne la plus populaire conçue pour gérer des volumes énormes et massifs de données hétérogènes.

Kafka est une plate-forme de streaming distribuée très populaire que des milliers d'entreprises comme New Relic, Uber et Square utilisent pour créer des systèmes de streaming en temps réel évolutifs, à haut débit et fiables.

Ensemble, MongoDB et Kafka jouent un rôle essentiel dans notre écosystème de données et dans de nombreuses architectures de données modernes.