sql >> Databasteknik >  >> NoSQL >> MongoDB

NoSQL-dataströmning med MongoDB och Kafka

Utvecklare beskriver Kafka som ett "Distribuerat, feltolerant, hög genomströmning, pub-sub, meddelandesystem. " Kafka är välkänt som en partitionerad, distribuerad och replikerad commit-loggtjänst. Den tillhandahåller också funktionaliteten hos ett meddelandesystem, men med en unik design. Å andra sidan är MongoDB känd som "Databasen för jätteidéer. " MongoDB kan lagra data i JSON-liknande dokument som kan variera i struktur, vilket erbjuder ett dynamiskt, flexibelt schema. MongoDB är designat för hög tillgänglighet och skalbarhet, med inbyggd replikering och auto-sharing.

MongoDB klassificeras under "Databaser", medan Kafka tillhör kategorin "Message Queue" i teknikstacken. Utvecklare anser Kafka "High-throughput", "Distribuerad" och "Skalbar" som nyckelfaktorerna; medan "Dokumentorienterad lagring", "Ingen SQL" och "Användarvänlighet" anses vara de främsta anledningarna till att MongoDB gynnas.

Dataströmning i Kafka

I dagens dataekosystem finns det inget enskilt system som kan tillhandahålla alla nödvändiga perspektiv för att ge verklig insikt om data. För att få bättre visualisering av datainsikter från data krävs att en enorm mängd information från flera datakällor blandas. Som sådan är vi angelägna om att få svar omedelbart; om tiden det tar att analysera datainsikter överstiger 10s millisekunder, då är värdet förlorat eller irrelevant. Tillämpningar som bedrägeriupptäckt, högfrekvenshandel och rekommendationsmotorer har inte råd att vänta. Den här operationen är också känd som att analysera inflödet av data innan den uppdateras som databas med nolltolerans för dataförlust, och utmaningen blir ännu mer skrämmande.

Kafka hjälper dig att ta in och snabbt flytta tillförlitligt stora mängder data från flera datakällor och sedan omdirigera den till de system som behöver den genom att filtrera, aggregera och analysera en-route. Kafka har en högre genomströmning, tillförlitlighet och replikeringsegenskaper, en skalbar metod för att kommunicera strömmar av händelsedata från en eller flera Kafka-producenter till en eller flera Kafka-konsumenter. Exempel på evenemang inkluderar:

  • Data om luftföroreningar som samlats in baserat på periodisk basis
  • En konsument som lägger till en vara i kundvagnen i en webbutik
  • En tweet postad med en specifik hashtag

Strömmar av Kafka-händelser fångas och organiseras i fördefinierade ämnen. Kafka-producenten väljer ett ämne att skicka ett givet evenemang till, och konsumenterna väljer vilka ämnen de hämtar evenemang från. Till exempel kan en finansiell applikation på aktiemarknaden dra aktieaffärer från ett ämne och företagsekonomisk information från ett annat för att leta efter handelsmöjligheter.

MongoDB och Kafka samarbete utgör hjärtat i många moderna dataarkitekturer idag. Kafka är designad för gränslösa dataströmmar som sekventiellt skriver händelser till commit-loggar, vilket möjliggör realtidsdataöverföring mellan MongoDB och Kafka genom användning av Kafka Connect.

Den officiella MongoDB Connector för Kafka utvecklades och stöds av MongoDB Inc. ingenjörer. Det är också verifierat av Confluent (som banade väg för den företagsklara strömningsplattformen för evenemang), i enlighet med riktlinjerna som sattes upp av Confluents Verified Integrations Program. Anslutningen gör att MongoDB kan konfigureras som både en diskbänk och en källa för Kafka. Bygg enkelt robusta, reaktiva datapipelines som streamar händelser mellan applikationer och tjänster i realtid.

MongoDB Sink Connector

MongoDB Sink låter oss skriva händelser från Kafka till vår MongoDB-instans. Sink-anslutningen konverterar värdet från Kafka Connect SinkRecords till ett MongoDB-dokument och kommer att infoga eller lägga upp beroende på vilken konfiguration du valde. Den förväntade sig att databasen skapades i förväg, de riktade MongoDB-samlingarna skapades om de inte finns.

MongoDB Kafka Source Connector

MongoDB Kafka Source Connector flyttar data från en MongoDB-replikuppsättning till ett Kafka-kluster. Anslutningen konfigurerar och förbrukar ändringsflödeshändelsedokument och publicerar dem till ett ämne. Ändringsströmmar, en funktion som introduceras i MongoDB 3.6, genererar händelsedokument som innehåller ändringar av data som lagras i MongoDB i realtid och ger garantier för hållbarhet, säkerhet och idempotens. Du kan konfigurera ändringsströmmar för att observera ändringar på insamlings-, databas- eller distributionsnivå. Den använder följande inställningar för att skapa ändringsströmmar och anpassa utdata för att spara till Kafka-klustret. Den kommer att publicera de ändrade datahändelserna till ett Kafka-ämne som består av databasen och samlingsnamnet från vilket ändringen kom.

 MongoDB och Kafka Användningsfall

e-handelswebbplatser

Användning av en e-handelswebbplats där inventeringsdata lagras i MongoDB. När lagerinventeringen av produkten går under en viss tröskel, vill företaget lägga en automatisk order för att öka lagret. Beställningsprocessen görs av andra system utanför MongoDB, och att använda Kafka som plattform för sådana händelsedrivna system är ett bra exempel på kraften hos MongoDB och Kafka när de används tillsammans.

Spårning av webbplatsaktivitet

Webbplatsaktivitet såsom besökta sidor eller renderade annonser fångas in i Kafka-ämnen – ett ämne per datatyp. Dessa ämnen kan sedan konsumeras av flera funktioner som övervakning, realtidsanalys eller arkivering för offlineanalys. Insikter från data som lagras i en operativ databas som MongoDB, där de kan analyseras tillsammans med data från andra källor.

Internet of Things (IoT)

IoT-applikationer måste klara av ett enormt antal händelser som genereras av en mängd enheter. Kafka spelar en viktig roll för att tillhandahålla fläkt-in och realtidsinsamling av all denna sensordata. Ett vanligt användningsfall är telematik, där diagnostik från ett fordons sensorer måste tas emot och bearbetas tillbaka vid basen. När data väl har fångats i Kafka-ämnen kan den bearbetas på flera sätt, inklusive strömbearbetning eller Lambda-arkitekturer. Den kommer sannolikt också att lagras i en operativ databas som MongoDB, där den kan kombineras med annan lagrad data för att utföra realtidsanalyser och stödja operativa applikationer som att trigga personliga erbjudanden.

Slutsats

MongoDB är välkänd som icke-relationella databaser, som publiceras under en fri-och-öppen-källkod-licens, MongoDB är i första hand en dokumentorienterad databas, avsedd för användning med semistrukturerad data som t.ex. textdokument. Det är den mest populära moderna databasen byggd för att hantera enorma och enorma volymer av heterogen data.

Kafka är en mycket populär distribuerad streamingplattform som tusentals företag som New Relic, Uber och Square använder för att bygga skalbara, högkapacitets- och pålitliga streamingsystem i realtid.

Tillsammans spelar MongoDB och Kafka viktiga roller i vårt dataekosystem och många moderna dataarkitekturer.


  1. Mongoengine:ConnectionError:Du har inte definierat en standardanslutning

  2. MongoDB $toUpper

  3. Hur ökar jag ett nummervärde i Mongoose?

  4. MongoDB $divide