MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

NoSQL поточно предаване на данни с MongoDB и Kafka

Разработчиците описват Kafka като „Разпределена, устойчива на грешки, висока пропускателна способност, система за публикуване на подчинени съобщения. " Kafka е добре известна като разделена, разпределена и репликирана услуга за регистриране на записите. Освен това предоставя функционалността на система за съобщения, но с уникален дизайн. От друга страна, MongoDB е известна като "База данни за гигантски идеи. " MongoDB е в състояние да съхранява данни в подобни на JSON документи, които могат да варират по структура, предлагайки динамична, гъвкава схема. MongoDB е проектиран за висока наличност и мащабируемост, с вградена репликация и автоматично споделяне.

MongoDB е класифициран в "Бази данни", докато Kafka принадлежи към категорията "Опашка за съобщения" на технологичния стек. Разработчиците считат Kafka „Висока пропускателна способност“, „Разпределен“ и „Мащабируем“ като ключови фактори; като има предвид, че „Документно-ориентирано съхранение“, „Без SQL“ и „Леснота на използване“ се считат за основните причини, поради които MongoDB е предпочитан.

Поточно предаване на данни в Kafka

В днешната екосистема от данни няма единна система, която може да предостави всички необходими гледни точки, за да предостави реална представа за данните. Извличането на по-добра визуализация на прозрения за данни от данни изисква смесване на огромен обем информация от множество източници на данни. Като такива, ние сме нетърпеливи да получим отговори незабавно; ако времето, необходимо за анализиране на прозрения за данни, надвишава 10 секунди от милисекунди, тогава стойността се губи или е без значение. Приложения като откриване на измами, високочестотна търговия и двигатели за препоръки не могат да си позволят да чакат. Тази операция също е известна като анализиране на притока на данни, преди да бъде актуализиран като база данни със записи с нулева толерантност към загуба на данни и предизвикателството става още по-обезсърчаващо.

Kafka ви помага да приемате и бързо премествате надеждно големи количества данни от множество източници на данни и след това да ги пренасочвате към системите, които се нуждаят от тях, като филтрирате, обобщавате и анализирате по пътя. Kafka има по-висока производителност, надеждност и характеристики на репликация, мащабируем метод за комуникация на потоци от данни за събития от един или повече производители на Kafka до един или повече потребители на Kafka. Примерите за събития включват:

  • Данните за замърсяването на въздуха, уловени въз основа на периодична база
  • Потребител, добавящ артикул в пазарската количка в онлайн магазин
  • Туит, публикуван с конкретен хаштаг

Потоците от събития на Kafka се улавят и организират в предварително определени теми. Продуцентът на Kafka избира тема, на която да изпрати дадено събитие, а потребителите избират от кои теми да изтеглят събития. Например финансово приложение на фондовия пазар може да изтегли борсовите сделки от една тема и финансовата информация на компанията от друга, за да търси възможности за търговия.

Сътрудничеството на MongoDB и Kafka съставлява сърцето на много съвременни архитектури на данни днес. Kafka е проектирана за безгранични потоци от данни, които последователно записват събития в регистрационни файлове, позволявайки движение на данни в реално време между MongoDB и Kafka, извършено чрез използването на Kafka Connect.

Официалният конектор на MongoDB за Kafka е разработен и се поддържа от MongoDB Inc. инженери. Той също така е потвърден от Confluent (който е пионер в платформата за стрийминг на събития, готова за предприятие), в съответствие с насоките, изложени от програмата за верифицирани интеграции на Confluent. Конекторът позволява на MongoDB да бъде конфигуриран както като приемник, така и като източник за Kafka. Изграждайте лесно стабилни, реактивни тръбопроводи за данни, които предават поточно събития между приложения и услуги в реално време.

Sink Connector MongoDB

Sink MongoDB ни позволява да записваме събития от Kafka в нашия екземпляр на MongoDB. Конекторът Sink преобразува стойността от Kafka Connect SinkRecords в MongoDB Document и ще направи вмъкване или прехвърляне в зависимост от конфигурацията, която сте избрали. Очакваше базата данни, създадена предварително, целевите колекции MongoDB, създадени, ако не съществуват.

Конектор за източник на MongoDB Kafka

Изходният конектор на MongoDB Kafka премества данни от набор от реплика на MongoDB в клъстер на Kafka. Конекторът конфигурира и консумира документи за събития от поток от промени и ги публикува в тема. Потоците за промени, функция, въведена в MongoDB 3.6, генерират документи за събития, които съдържат промени в данните, съхранявани в MongoDB, в реално време и осигуряват гаранции за издръжливост, сигурност и идемпотентност. Можете да конфигурирате потоци от промени, за да наблюдавате промените на ниво събиране, база данни или внедряване. Той използва следните настройки за създаване на потоци от промени и персонализиране на изхода за запис в клъстера Kafka. Той ще публикува променените събития с данни в тема на Kafka, която се състои от базата данни и името на колекцията, от която произхожда промяната.

 Случаи на използване на MongoDB и Kafka

Уебсайтове за електронна търговия

Случай на използване на уебсайт за електронна търговия, при който данните за инвентара се съхраняват в MongoDB. Когато наличността на продукта падне под определен праг, компанията би искала да направи автоматична поръчка за увеличаване на наличността. Процесът на подреждане се извършва от други системи извън MongoDB и използването на Kafka като платформа за такива управлявани от събития системи е чудесен пример за силата на MongoDB и Kafka, когато се използват заедно.

Проследяване на активността на уебсайта

Активността на сайта, като например посетени страници или изобразени реклами, се улавят в темите на Kafka – по една тема за тип данни. След това тези теми могат да бъдат използвани от множество функции като наблюдение, анализ в реално време или архивиране за офлайн анализ. Прозрения от данните, съхранявани в оперативна база данни като MongoDB, където могат да бъдат анализирани заедно с данни от други източници.

Интернет на нещата (IoT)

IoT приложенията трябва да се справят с огромен брой събития, генерирани от множество устройства. Kafka играе жизненоважна роля в осигуряването на събиране на всички тези сензорни данни в реално време. Често срещан случай на използване е телематиката, при която диагностиката от сензорите на превозното средство трябва да се получава и обработва обратно в базата. Веднъж уловени в темите на Kafka, данните могат да бъдат обработени по множество начини, включително обработка на потоци или Lambda архитектури. Също така е вероятно да се съхранява в оперативна база данни като MongoDB, където може да се комбинира с други съхранени данни за извършване на анализи в реално време и поддръжка на оперативни приложения, като например задействане на персонализирани оферти.

Заключение

MongoDB е добре известна като нерелационни бази данни, които се публикуват под лиценз със свободен и отворен код, MongoDB е предимно документно ориентирана база данни, предназначена за използване с полуструктурирани данни като текстови документи. Това е най-популярната модерна база данни, създадена за работа с огромни и масивни обеми от хетерогенни данни.

Kafka е широко популярна разпределена платформа за стрийминг, която хиляди компании като New Relic, Uber и Square използват за изграждане на мащабируеми, високопроизводителни и надеждни стрийминг системи в реално време.

Заедно MongoDB и Kafka играят жизненоважна роля в нашата екосистема от данни и много съвременни архитектури на данни.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB и PostgreSQL мисли

  2. MongoDB $sample

  3. Как програмно предварително да разделите ключ на шард, базиран на GUID, с MongoDB

  4. Грешка с дублиран ключ на Mongoose с upsert

  5. Множество броя с една заявка в mongodb