sql >> Base de Datos >  >> NoSQL >> MongoDB

Transmisión de datos NoSQL con MongoDB y Kafka

Los desarrolladores describen a Kafka como un "sistema de mensajería distribuido, tolerante a fallas, de alto rendimiento, pub-sub. " Kafka es bien conocido como un servicio de registro de confirmación particionado, distribuido y replicado. También proporciona la funcionalidad de un sistema de mensajería, pero con un diseño único. Por otro lado, MongoDB es conocido como "La base de datos para ideas gigantes. MongoDB es capaz de almacenar datos en documentos similares a JSON que pueden variar en estructura, ofreciendo un esquema dinámico y flexible. MongoDB está diseñado para alta disponibilidad y escalabilidad, con replicación integrada y fragmentación automática.

MongoDB se clasifica en "Bases de datos", mientras que Kafka pertenece a la categoría "Cola de mensajes" de la pila tecnológica. Los desarrolladores consideran que Kafka "Alto rendimiento", "Distribuido" y "Escalable" son los factores clave; mientras que "almacenamiento orientado a documentos", "sin SQL" y "facilidad de uso" se consideran las razones principales por las que se prefiere MongoDB.

Transmisión de datos en Kafka

En el ecosistema de datos actual, no existe un único sistema que pueda proporcionar todas las perspectivas necesarias para brindar una perspectiva real de los datos. Obtener una mejor visualización de la información de los datos requiere mezclar un gran volumen de información de múltiples fuentes de datos. Como tal, estamos ansiosos por obtener respuestas de inmediato; si el tiempo necesario para analizar la información de los datos supera las decenas de milisegundos, el valor se pierde o es irrelevante. Las aplicaciones como la detección de fraudes, el comercio de alta frecuencia y los motores de recomendación no pueden permitirse el lujo de esperar. Esta operación también se conoce como análisis del flujo de entrada de datos antes de que se actualice como la base de datos de registro con tolerancia cero para la pérdida de datos, y el desafío se vuelve aún más abrumador.

Kafka lo ayuda a ingerir y mover rápidamente grandes cantidades de datos de manera confiable desde múltiples fuentes de datos y luego redirigirlos a los sistemas que los necesitan filtrando, agregando y analizando en el camino. Kafka tiene un mayor rendimiento, confiabilidad y características de replicación, un método escalable para comunicar flujos de datos de eventos de uno o más productores de Kafka a uno o más consumidores de Kafka. Ejemplos de eventos incluyen:

  • Datos de contaminación del aire capturados periódicamente
  • Un consumidor que agrega un artículo al carrito de compras en una tienda en línea
  • Un Tweet publicado con un hashtag específico

Las secuencias de eventos de Kafka se capturan y organizan en temas predefinidos. El productor de Kafka elige un tema para enviar un evento determinado y los consumidores seleccionan de qué temas extraen los eventos. Por ejemplo, una aplicación financiera del mercado de valores podría extraer operaciones bursátiles de un tema e información financiera de la empresa de otro para buscar oportunidades comerciales.

La colaboración entre MongoDB y Kafka constituye el corazón de muchas arquitecturas de datos modernas en la actualidad. Kafka está diseñado para flujos ilimitados de datos que escriben secuencialmente eventos en registros de confirmación, lo que permite el movimiento de datos en tiempo real entre MongoDB y Kafka mediante el uso de Kafka Connect.

El conector oficial de MongoDB para Kafka fue desarrollado y cuenta con el respaldo de MongoDB Inc. ingenieros También es verificado por Confluent (quien fue pionero en la plataforma de transmisión de eventos lista para la empresa), de conformidad con las pautas establecidas por el Programa de Integraciones Verificadas de Confluent. El conector permite que MongoDB se configure como sumidero y fuente para Kafka. Cree fácilmente canalizaciones de datos robustas y reactivas que transmitan eventos entre aplicaciones y servicios en tiempo real.

Conector receptor MongoDB

MongoDB Sink nos permite escribir eventos de Kafka en nuestra instancia de MongoDB. El conector Sink convierte el valor de Kafka Connect SinkRecords en un documento MongoDB y realizará una inserción o una inserción según la configuración que elija. Esperaba que la base de datos se creara por adelantado, las colecciones específicas de MongoDB creadas si no existen.

Conector de origen MongoDB Kafka

El conector de origen de MongoDB Kafka transfiere datos de un conjunto de réplicas de MongoDB a un clúster de Kafka. El conector configura y consume documentos de eventos de flujo de cambios y los publica en un tema. Los flujos de cambios, una función introducida en MongoDB 3.6, generan documentos de eventos que contienen cambios en los datos almacenados en MongoDB en tiempo real y brindan garantías de durabilidad, seguridad e idempotencia. Puede configurar secuencias de cambios para observar los cambios en el nivel de recopilación, base de datos o implementación. Utiliza la siguiente configuración para crear secuencias de cambios y personalizar la salida para guardarla en el clúster de Kafka. Publicará los eventos de datos modificados en un tema de Kafka que consiste en la base de datos y el nombre de la colección desde donde se originó el cambio.

 Casos de uso de MongoDB y Kafka

Sitios web de comercio electrónico

Caso de uso de un sitio web de comercio electrónico en el que los datos de inventario se almacenan en MongoDB. Cuando el inventario de existencias del producto cae por debajo de un cierto umbral, la empresa desea realizar un pedido automático para aumentar las existencias. El proceso de pedido lo realizan otros sistemas fuera de MongoDB, y el uso de Kafka como plataforma para tales sistemas basados ​​en eventos es un gran ejemplo del poder de MongoDB y Kafka cuando se usan juntos.

Seguimiento de la actividad del sitio web

La actividad del sitio, como las páginas visitadas o los anuncios presentados, se capturan en los temas de Kafka:un tema por tipo de datos. Luego, esos temas pueden ser consumidos por múltiples funciones, como monitoreo, análisis en tiempo real o archivado para análisis fuera de línea. Información de los datos almacenados en una base de datos operativa como MongoDB, donde se pueden analizar junto con datos de otras fuentes.

Internet de las cosas (IoT)

Las aplicaciones de IoT deben hacer frente a cantidades masivas de eventos generados por una multitud de dispositivos. Kafka juega un papel vital al proporcionar la recopilación en tiempo real y en abanico de todos los datos de los sensores. Un caso de uso común es la telemática, donde los diagnósticos de los sensores de un vehículo deben recibirse y procesarse en la base. Una vez capturados en los temas de Kafka, los datos se pueden procesar de varias maneras, incluido el procesamiento de flujo o las arquitecturas Lambda. También es probable que se almacene en una base de datos operativa como MongoDB, donde se puede combinar con otros datos almacenados para realizar análisis en tiempo real y admitir aplicaciones operativas, como la activación de ofertas personalizadas.

Conclusión

MongoDB es conocida como base de datos no relacional, que se publicó bajo una licencia de código libre y abierto. MongoDB es principalmente una base de datos orientada a documentos, diseñada para usarse con datos semiestructurados como documentos de texto. Es la base de datos moderna más popular construida para manejar volúmenes enormes y masivos de datos heterogéneos.

Kafka es una plataforma de transmisión distribuida muy popular que miles de empresas, como New Relic, Uber y Square, utilizan para crear sistemas de transmisión en tiempo real escalables, confiables y de alto rendimiento.

Juntos, MongoDB y Kafka desempeñan funciones vitales en nuestro ecosistema de datos y en muchas arquitecturas de datos modernas.