sql >> Database teknologi >  >> NoSQL >> MongoDB

Mest populære NoSQL-databaser understøttet af ClusterControl

NoSQL ("ikke kun SQL") er en tilgang til databasedesign, der muliggør lagring og forespørgsel efter data uden for de traditionelle strukturer, der findes i relationelle databaser. Det blev skabt til primært at håndtere ustrukturerede data, der er genereret fra adskillige kilder såsom dokumenter, lyd, video, sociale netværk osv. NoSQL-databaser er bedst til moderne applikationer, hvor datamodeller udvikler sig, og skalerbarhed er afgørende. Denne database har vundet popularitet i de senere år, da virksomheder nu skal håndtere ustrukturerede data mere end nogensinde før. Denne model gemmer data anderledes end de traditionelle relationelle tabeller for at tillade, at de relaterede data opbevares i en enkelt datastruktur. En NoSQL-database kan opdeles i fire kategorier:

  • Dokumentlager

  • Nøgleværdidatabaser

  • Bredspaltebutikker

  • Grafdatabaser

NoSQL-databaser bruges ofte i agile projekter, fordi de tilbyder fleksible datamodeller. Dette giver udviklere mulighed for at fokusere på forretningslogik og algoritmer i stedet for at beskæftige sig med skemaopdateringer. Hvis du forventer, at din applikations datamodel skal forblive fleksibel for at imødekomme ændringer over tid, kan den fleksible skematilgang i NoSQL-databaser passe til dine behov.

Ifølge db-engines er de to bedste NoSQL-databaser (juli 2021) MongoDB (rangering:5) og Redis (rangering:6). Interessant nok eksisterede disse NoSQL-databaser ikke for 12 år siden. Hvordan de opstod og opnåede tiltrækning, popularitet og de ændrede landskabet i databasestyringssystemet er den primære essens af dette blogindlæg.

MongoDB

MongoDB er en open source dokumentorienteret database, med den første udgivelse i februar 2009. Dokumentdatabaser står i skarp kontrast til den traditionelle relationelle database. De gemmer al information for et givet objekt i en enkelt instans i databasen, og hvert lagret objekt kan være forskelligt fra alle andre. Dette eliminerer behovet for objektrelationel kortlægning og tillader skemaløs struktur, en funktion, hvor applikationsudviklere har fleksibiliteten til at udvikle sig hurtigt på grund af dens fleksible datamodel. I stedet for at tilpasse en applikation til at opfylde skemakrav, skriver udviklere applikationen, og skemaet følger.

MongoDB er meget populær på grund af dens fleksibilitet, lette at lære og lavere ejeromkostninger for at komme i gang. Applikationsudviklere elsker MongoDB, fordi de kan ændre datamodellen på farten, og fordi MongoDB bruger JSON-dokumenter til at registrere data. JSON er overalt og kan betragtes som de-facto-formatet til at sende rig data mellem webapplikationer og slutpunkter. Dets enkle design og fleksibilitet gør det nemt at læse og forstå, og i de fleste tilfælde let at manipulere i det programmeringssprog, du vælger.

MongoDB opstod takket være 10gen (før den blev omdøbt til MongoDB Inc), begyndte at udvikle den i 2007 og udkom med sin første GA-udgivelse i februar 2009. Siden da har MongoDB udviklet sig hurtigt og betragtes som et af de mest spændende databaseprojekter til moderne applikationer. Ifølge StackOverflow Developer Survey 2020 er MongoDB fortsat den databaseteknologi, som udviklere ønsker at lære mest. I skrivende stund har de netop udgivet version 5.0 (13. juli 2021) og kommer med mange bemærkelsesværdige funktioner, såsom live resharding, indbygget tidsseriedataunderstøttelse og versioneret API, velegnet til multi-cloud-miljøer.

En anden væsentlig egenskab ved MongoDB er de indbyggede funktioner med høj tilgængelighed som replikering, replikasæt og sharding. Den er vandret skalerbar, hvilket hjælper med at reducere arbejdsbyrden og skalere din virksomhed med lethed. Den tilbyder replikering via en hjemmelavet konsensusprotokol, der henter inspiration fra Raft og kan distribuere data på tværs af shards via sin forespørgselsrouter kaldet mongos. Du kan bruge ClusterControl til nemt at implementere et MongoDB-replikasæt og sharded cluster-opsætning.

MongoDB fangede offentlighedens opmærksomhed og kritikere på grund af dens svaghed i standardsikkerhedskonfigurationen af ​​MongoDB, hvilket tillader enhver at have fuld adgang til databasen. Data fra titusindvis af MongoDB-installationer er blevet stjålet. Desuden er mange MongoDB-servere blevet holdt for løsesum. Denne eksponering har fået os til at skrive en håndfuld sikkerhedsrelaterede blogindlæg relateret til MongoDB, såsom Secure MongoDB og Protect Yourself From the Ransom Hack og How to Secure MongoDB From Ransomware - Ti Tips. Som følge heraf har MongoDB forbedret standardkonfigurationsaspekterne for at være mere sikre med MongoDB 3 og nyere.

Nogle store virksomheder er stærkt afhængige af MongoDB som deres datalager, såsom Forbes, Toyota, SAP, Cisco, eBay og Adobe. MongoDB betragtes som en game-changer i databaseverdenen og bliver en af ​​de vigtigste databaseplatforme i internetæraen.

ClusterControl har understøttet MongoDB siden version juli 2013 (v1.2.3) og er løbende blevet forbedret siden da. ClusterControl understøttede endda TokuMX (MongoDB med Tokuteks fraktaltræ) dengang, før det blev forældet i MongoDB 3 på grund af upstreams kernedesignændringer. I de seneste bemærkelsesværdige forbedringer introducerer ClusterControl understøttelse af Percona Backup for MongoDB, en distribueret, lav-effekt løsning til at opnå ensartede sikkerhedskopier af MongoDB sharded klynger og replika sæt. Percona Backup for MongoDB-projektet er arvet fra og erstatter mongodb_consistent_backup, som ikke længere er aktivt udviklet eller understøttet.

Redis

Redis er en anden mest populær NoSQL-databaseteknologi, der fokuserer på hyppig højhastighedsadgang til de samme bidder af data, selvom disse bidder er store. I maj 2019 udgav Salvatore Sanfilllippo den indledende version af Redis, a.k.a Remote Dictionary Server, og har fanget alles opmærksomhed på grund af dens rigere funktioner til den allerede etablerede open source-in-memory-databaseløsning på det tidspunkt kaldet Memcached.

Redis er superhurtig på grund af datastrukturen i hukommelsen og det faktum, at den er skrevet på C-sproget (det er en af ​​grundene til, at Memcached blev omskrevet i C). På grund af dens høje ydeevne har udviklere henvendt sig til Redis for datacache, når læse- og skriveoperationsvolumen overstiger de traditionelle databasers muligheder. Ofte tilgåede data kan cachelagres og betjenes af nøgleværdidatalagre i hukommelsen og minimerer læsning og skrivning til langsommere diskbaserede systemer med fokus på vedvarende lagring.

Traditionelt er databasestyringssystemer designet til at give robuste datafunktioner frem for hastighed i skala. Applikationscachen bruges ofte til at gemme kopier af opslagstabeller og svarene på dyre forespørgsler fra DBMS, både for at forbedre applikationens ydeevne og reducere belastningen af ​​datakilden. Nogle gange kræver en applikations arbejdsgang generering af ressourcekrævende resultater. Når først disse resultater er opnået, er der tilfælde, hvor resultaterne senere kan genbruges, f.eks. når der udføres delvise aggregater. Cachen fungerer som et ideelt mellemmedium til at bevare sådanne resultater mellem anmodninger. Det er her, Redis skinner.

Redis har udviklet sig fra et meget hurtigt simpelt nøgleværdilager til vedvarende datalagring og bliver brugt som meddelelsesmægler og køsystem. Det muliggør ægte statsløshed for applikationers processer, samtidig med at duplikering af data eller anmodninger til eksterne datakilder reduceres. Ifølge StackOverflow Developer Survey 2020 forbliver Redis i toppen af ​​databaseteknologi, som udviklere har udtrykt interesse for at fortsætte med at udvikle. I skrivende stund er Redis 6 den seneste version med en ny, mere sofistikeret brugerbaseret ACL-implementering, indbygget trafik SSL-kryptering og multi-threaded I/O, selvom Redis-processen stadig er single-threaded .

Redis-implementering understøttes i ClusterControl 1.9.0 ved at bruge vores nye næste generation af ClusterControl GUI-pakke, der er tilgængelig i en separat installation. I skrivende stund refererer vi til det som ClusterControl v2 tagget med Technology Preview, som kun understøtter implementering af en Redis-replikering op til 5 noder med Redis Sentinel med backup-styring af AOF og RDB. Hvis du er interesseret, se venligst denne vejledning om, hvordan du installerer den.

Oversigt

MongoDB og Redis er uden tvivl to af de bedste NoSQL-databaseløsninger på markedet lige nu og menes at bevare deres position i top 10-databaserangeringen i temmelig lang tid. Det er grunden til, at ClusterControl understøtter begge databaseteknologier.


  1. Skal Redigo Redis Pool virkelig være en global variabel?

  2. 3 måder at konvertere en streng til en dato i MongoDB

  3. Hurtigste måde at fjerne duplikerede dokumenter i mongodb

  4. Flere Redis-forekomster