sql >> Databasteknik >  >> NoSQL >> MongoDB

Mest populära NoSQL-databaser som stöds av ClusterControl

NoSQL ("inte bara SQL") är en metod för databasdesign som möjliggör lagring och sökning av data utanför de traditionella strukturerna som finns i relationsdatabaser. Den skapades för att i första hand hantera ostrukturerad data som genereras från många källor som dokument, ljud, video, sociala nätverk, etc. NoSQL-databaser är bäst för moderna applikationer där datamodeller utvecklas och skalbarhet är avgörande. Denna databas har blivit populär de senaste åren eftersom företag nu måste hantera ostrukturerad data mer än någonsin tidigare. Denna modell lagrar data annorlunda än de traditionella relationstabellerna för att tillåta relaterade data att hållas inom en enda datastruktur. En NoSQL-databas kan delas in i fyra kategorier:

  • Document Store

  • Nyckel-värdedatabaser

  • butiker med breda kolumner

  • Grafdatabaser

NoSQL-databaser används ofta i agila projekt eftersom de erbjuder flexibla datamodeller. Detta gör att utvecklare kan fokusera på affärslogik och algoritmer istället för att ta itu med schemauppdateringar. Om du förutser att din applikations datamodell måste förbli flexibel för att klara förändringar över tid, kan den flexibla schemametoden för NoSQL-databaser passa dina behov.

Enligt db-motorer är de två bästa NoSQL-databaserna (juli 2021) MongoDB (ranking:5) och Redis (ranking:6). Intressant nog fanns inte dessa NoSQL-databaser för 12 år sedan. Hur de uppstod och fick attraktion, popularitet och de förändrade landskapet för databashanteringssystemet är den primära kärnan i detta blogginlägg.

MongoDB

MongoDB är en dokumentorienterad databas med öppen källkod, med den första lanseringen i februari 2009. Dokumentdatabaser står i stark kontrast till den traditionella relationsdatabasen. De lagrar all information för ett givet objekt i en enda instans i databasen, och varje lagrat objekt kan skilja sig från alla andra. Detta eliminerar behovet av objektrelationell kartläggning och tillåter schemalös struktur, en funktion där applikationsutvecklare har förmågan att utvecklas snabbt tack vare sin flexibla datamodell. Istället för att anpassa en applikation för att uppfylla schemakraven, skriver utvecklare applikationen och schemat följer.

MongoDB är mycket populärt på grund av dess flexibilitet, lätta att lära sig och lägre ägandekostnader för att komma igång. Applikationsutvecklare älskar MongoDB eftersom de kan ändra datamodellen på språng och för att MongoDB använder JSON-dokument för att registrera data. JSON finns överallt och kan betraktas som de-facto-formatet för att skicka rik data mellan webbapplikationer och slutpunkter. Den enkla designen och flexibiliteten gör den lätt att läsa och förstå, och i de flesta fall lätt att manipulera i det programmeringsspråk du väljer.

MongoDB kom till tack vare 10gen (innan den döptes om till MongoDB Inc), började utveckla den 2007 och kom ut med sin första GA-release i februari 2009. Sedan dess har MongoDB utvecklats snabbt och anses vara ett av de mest spännande databasprojekten för moderna applikationer. Enligt StackOverflow Developer Survey 2020 är MongoDB fortfarande den databasteknik som utvecklare vill lära sig mest. När detta skrivs släppte de precis version 5.0 (13 juli 2021) och kommer med många anmärkningsvärda funktioner som live-omskärning, inbyggt tidsseriedatastöd och versionerat API, lämpligt för miljöer med flera moln.

En annan viktig egenskap hos MongoDB är de inbyggda funktionerna med hög tillgänglighet som replikering, replikuppsättning och skärning. Det är horisontellt skalbart, vilket hjälper till att minska arbetsbelastningen och skala din verksamhet med lätthet. Det erbjuder replikering via ett hemmagjordt konsensusprotokoll som hämtar inspiration från Raft och kan distribuera data över skärvor via sin frågerouter som kallas mongos. Du kan använda ClusterControl för att enkelt distribuera en MongoDB-replikuppsättning och delad klusterkonfiguration.

MongoDB fångade allmänhetens uppmärksamhet och kritiker på grund av dess svaghet i standardsäkerhetskonfigurationen för MongoDB, vilket tillåter alla att ha full tillgång till databasen. Data från tiotusentals MongoDB-installationer har stulits. Dessutom har många MongoDB-servrar hållits för lösen. Denna exponering har lett oss till att skriva en handfull säkerhetsrelaterade blogginlägg relaterade till MongoDB som, Secure MongoDB och Protect Yourself From the Ransom Hack och How to Secure MongoDB From Ransomware - Tio Tips. Följaktligen har MongoDB förbättrat standardkonfigurationsaspekterna för att vara säkrare med MongoDB 3 och senare.

Vissa enorma företag är starkt beroende av MongoDB som datalager, som Forbes, Toyota, SAP, Cisco, eBay och Adobe. MongoDB anses vara en spelväxlare i databasvärlden och blir en av de viktigaste databasplattformarna i interneteran.

ClusterControl har stödt MongoDB sedan version juli 2013 (v1.2.3) och har kontinuerligt förbättrats sedan dess. ClusterControl stödde till och med TokuMX (MongoDB med Tokuteks fraktala träd) på den tiden, innan det avskaffades i MongoDB 3 på grund av uppströms kärndesignändringar. I de senaste anmärkningsvärda förbättringarna introducerar ClusterControl stöd för Percona Backup för MongoDB, en distribuerad lösning med låg effekt för att uppnå konsekventa säkerhetskopior av MongoDB fragmenterade kluster och replikauppsättningar. Percona Backup for MongoDB-projektet ärvs från och ersätter mongodb_consistent_backup, som inte längre aktivt utvecklas eller stöds.

Redis

Redis är en annan mest populär NoSQL-databasteknik som fokuserar på frekvent höghastighetsåtkomst till samma databitar, även om dessa databitar är stora. I maj 2019 släppte Salvatore Sanfilllippo den första versionen av Redis, a.k.a Remote Dictionary Server, och har fångat allas uppmärksamhet på grund av dess rikare funktioner till den redan etablerade open-source in-memory databaslösningen vid den tiden som heter Memcached.

Redis är supersnabb på grund av datastrukturen i minnet och det faktum att den har skrivits på C-språket (det är en av anledningarna till att Memcached skrevs om i C). På grund av dess höga prestanda har utvecklare vänt sig till Redis för datacache när läs- och skrivvolymen överstiger kapaciteten hos de traditionella databaserna. Ofta åtkomliga data kan cachelagras och betjänas av nyckel-värdedatalager i minnet och minimerar läsning och skrivning till långsammare diskbaserade system med fokus på beständig lagring.

Traditionellt är databashanteringssystem utformade för att tillhandahålla robusta datafunktioner snarare än snabbhet i skala. Applikationscachen används ofta för att lagra kopior av uppslagstabeller och svaren på dyra frågor från DBMS, både för att förbättra applikationens prestanda och minska belastningen på datakällan. Ibland kräver ett programs arbetsflöde generering av resurskrävande resultat. När dessa resultat väl har erhållits finns det fall där resultaten senare kan återanvändas, till exempel när man utför partiella aggregat. Cachen fungerar som ett idealiskt mellanmedium för att behålla sådana resultat mellan förfrågningar. Det är här Redis lyser.

Redis har utvecklats från en mycket snabb enkel nyckel-värde-lagring till beständig datalagring och att användas som en meddelandeförmedlare och kösystem. Det möjliggör verklig tillståndslöshet för applikationers processer samtidigt som duplicering av data eller förfrågningar till externa datakällor reduceras. Enligt StackOverflow Developer Survey 2020 förblir Redis i toppen av databasteknik som utvecklare har uttryckt intresse för att fortsätta utveckla. När detta skrivs är Redis 6 den senaste versionen, med en ny, mer sofistikerad användarbaserad ACL-implementering, inbyggd trafik SSL-kryptering och flertrådad I/O, även om Redis-processen fortfarande är enkeltrådad .

Redis-distribution stöds i ClusterControl 1.9.0 genom att använda vårt nya nästa generations ClusterControl GUI-paket som är tillgängligt i en separat installation. När detta skrivs hänvisar vi till det som ClusterControl v2 taggat med Technology Preview som endast stöder distribution av en Redis-replikering upp till 5 noder med Redis Sentinel med backuphantering av AOF och RDB. Om du är intresserad, se den här guiden om hur du installerar den.

Sammanfattning

MongoDB och Redis är två av de bästa NoSQL-databaslösningarna på marknaden just nu och tros behålla sin position i topp 10-databasen under ganska lång tid. Det är anledningen till att ClusterControl stöder båda databasteknikerna.


  1. Hur kan jag konsumera tweets från Twitters streaming-api och lagra dem i mongodb

  2. Komma igång med Redis Client API:er

  3. MongoDB $tak

  4. Hur får jag objekt-ID efter att jag sparat ett objekt i Mongoose?