Hvornår skal du bruge MongoDB: Fordele og brugssituationer

nov 20, 2021
admin

Det er nemt at blive fanget af de nyeste buzzwords og bruge innovativ teknologi, men det kan føre til hovedpine, hvis du bruger det forkerte værktøj til din opgave. MongoDB kom ind i varmen og etablerede dominans i NoSQL-databaseverdenen, da de blev børsnoteret i 2018. I denne artikel vil vi diskutere, hvad NoSQL-databaser er, og hvordan de adskiller sig fra SQL-databaser. Herefter vil vi berøre, hvad der adskiller MongoDB fra andre i NoSQL-landskabet. Vi vil slutte af med nogle brugssituationer for MongoDB og diskutere almindelige faldgruber ved brug af denne databaseteknologi.

For flere oplysninger om Xplenty’s native MongoDB-connector kan du besøge vores Integrationsside.

Indholdsfortegnelse

  1. NoSQL vs. SQL-databaser
  2. MongoDB: En stor fisk i en lille dam
  3. MongoDB Use Cases
Kundehistorie

Kundehistorie

Keith forbandt flere datakilder med Amazon Redshift for at transformere, organisere og analysere deres kundedata.

MongoDB MongoDB
Amazon Redshift Amazon Redshift

David Schuman

Dave Schuman
CTO og medstifter hos Raise.me

De har virkelig leveret en grænseflade til denne verden af datatransformation, der fungerer. Det er intuitivt, det er nemt at håndtere, og når det bliver lidt for forvirrende for os, vil de nogle gange arbejde en hel dag på bare at forsøge at hjælpe os med at løse vores problem, og de giver aldrig op, før det er løst.

FIND UD AF, OM VI KAN INTEGRERE DINE DATA

VIRKSOMHEDER VERDEN OVER STOLER PÅ OS

Nyder du denne artikel?

Få godt indhold hver uge med Xplenty Nyhedsbrev!

NoSQL vs. SQL-databaser

MongoDB er en NoSQL-database. Det betyder, at du ikke bruger SQL til at interagere med data i databasen. I stedet bruger du NoSQL.

Den første forskel, der skal diskuteres, er ordforråd. I SQL bruger vi tabeller. I NoSQL bruger vi samlinger. I SQL består tabeller af records/rækker, i NoSQL er samlinger dokumenter.

For at forespørge MongoDB skal du bruge NoSQL-syntaks. Her er et eksempel på en SQL-forespørgsel og den tilsvarende NoSQL-forespørgsel:

SQL:

SELECT * FROM users WHERE age > 65;

NoSQL:

users.find({age: {$gt: 65} });

Du vil bemærke, at forespørgselssproget behandler samlingen som et objekt, som du anvender handlinger på. Det skyldes, at MongoDB er en skemaløs database, og det antager, at der ikke vil være behov for at interagere med andre samlinger. SQL-syntaksen forventer, at brugerne skal JOIN’e på andre relationer i databasen, og syntaksen muliggør derfor dette. Der er et lignende mønster i forsøget på at INSERT:

SQL:

INSERT INTO users (id, age) VALUES (1, 70);

NoSQL:

users.insert({id: 1, age: 70});

Den fremtrædende betydning af et defineret skema er tydelig i SQL INSERT, fordi de kolonner, du vælger, skal eksistere i tabellen users. Med NoSQL-angivelsen behøver kolonnerne id og alder ikke at eksistere i samlingen i forvejen. Faktisk kan du lave en anden INSERT i denne samling med andre felter. Vi kan f.eks. køre følgende kommando på den samme users-samling, som vi brugte ovenfor:

users.insert({first_name: "Annie", zip_code: "10005"})

MongoDB og andre NoSQL-databaser er skemaløse databaser. Det betyder, at brugere kan gemme ustrukturerede data. Denne funktionalitet er både en velsignelse og en forbandelse – fleksibiliteten gør det nemmere at lagre data, men gør det også sværere at organisere dine data.

For en dybdegående analyse af de kritiske forskelle mellem SQL og NoSQL kan du læse dette blogindlæg.

Kundehistorie

Kundehistorie

Keith forbandt flere datakilder med Amazon Redshift for at transformere, organisere og analysere deres kundedata.

Amazon Redshift Amazon Redshift

David Schuman

Keith Slater
Seniorudvikler hos Creative Anvil

Før vi startede med Xplenty, forsøgte vi at flytte data fra mange forskellige datakilder til Redshift. Xplenty har hjulpet os med at gøre det hurtigt og nemt. Den bedste funktion ved platformen er at have mulighed for at manipulere data efter behov, uden at processen er alt for kompleks. Desuden er supporten fantastisk – de er altid lydhøre og villige til at hjælpe.

FIND UD AF, OM VI KAN INTEGRERE DINE DATA

VIRKSOMHEDER VERDEN OVER STOLER PÅ OS

Nyder du denne artikel?

Få godt indhold hver uge med Xplenty Nyhedsbrev!

Hvem bør bruge MongoDB

I nogle få år var MongoDB synonymt med NoSQL i mange kredse. Mellem deres aggressive markedsføringskampagner og evnen til at gøre indhug hos flere teknologiske indflydelsesrige personer kunne de erobre en stor del af dette “nye” marked. Efterhånden som det blev mere udbredt, blev der slået huller i dets levedygtighed i forbindelse med visse applikationer. Det blev et nyttigt værktøj for folk, der “bare ønskede at få deres applikation op at køre” og bekymre sig om at analysere dataene senere.

Dette var en acceptabel fremgangsmåde og gav mening for mange softwareudviklere. Til sidst kom hønsene hjem til kyllingerne, og det viste sig, at MongoDB ikke var den bedste løsning for alle. Nogle ingeniører, som tog MongoDB tidligt til sig, kunne læne sig op ad teknologien og tilpasse sig dens forbedringer, mens mange andre gennemgik en massiv indsats for at migrere væk fra den. Som med ethvert stykke software kan Your Mileage May Vary (YMMV), så det er bydende nødvendigt at tænke kritisk over de tjenester, du bruger.

Der er opstået andre muligheder i dokument-database-verdenen. Postgres har f.eks. afsløret en JSON-kolonnetype. Dette gjorde det muligt for Postgres-brugere at lagre ustrukturerede data i en relationel database. Redis dukkede også op som et nyttigt alternativ for brugere, der havde brug for et nøgle-værdilager. Du kan få mere at vide om forskellene mellem MongoDB og Redis her. Og som det sker med de fleste succesfulde softwareprojekter, udgav AWS deres egen dokumentdatabase kaldet DocumentDB, som er nyttig for folk, der ønsker at holde sig til native AWS-applikationer.

Trods den voksende konkurrence er MongoDB stadig suveræn i NoSQL/Document-database-verdenen og bliver ved med at forbedre deres tjenester, som f.eks. at gøre den ACID-kompatibel. I forbindelse med understøttelse af cloud-applikationer har MongoDB også gjort en indsats for at understøtte distribuerede databaser og datasøer.

MongoDB Use Cases

MongoDB er en fantastisk database til webapplikationer, især hvis applikationen servicerer mange brugere, der ikke interagerer med hinanden. Tænk på applikationer til finansielle tjenester, hvor brugerne kun har brug for adgang til deres egne data. Eller en blogging-applikation, hvor brugerne ønsker at logge ind og oprette/redigere deres egne blogs. Det vigtigste er, at brugerne ikke interagerer med hinanden. Med en relationel database ville man være nødt til at gemme oplysninger om en bruger på tværs af flere tabeller. Når brugeren logger ind, skal programmet foretage flere forespørgsler eller komplekse JOIN-forespørgsler for at få adgang til alle oplysninger om den pågældende bruger. Med MongoDB’s skemaløse dokumentdatabase kan du gemme alle oplysninger om en bruger samlet. Dette vil give mulighed for en enkelt forespørgsel til en enkelt samling, og frontend’en kan håndtere visning/redigering af dataene.

Et andet fremragende anvendelsestilfælde for MongoDB er at forsøge at inkorporere mange datasæt. Dens skemaløse design giver mulighed for fleksibilitet i forhold til, hvordan du gemmer dine data. Således kan du gemme data fra flere datakilder (websteder, databaser, RSS-feeds osv.) på ét sted og derefter oprette tjenester oven på din nye database for at analysere det hele. Xplenty tilbyder f.eks. denne integration til MongoDB.

MongoDB er en fantastisk database til at integrere geospatiale data med andre typer data. Hvis “placering” f.eks. er et stykke metadata, som du arbejder med, understøtter MongoDB GeoJSON-typer, så du effektivt kan gemme bredde- og længdegrader. Desuden understøtter MongoDB 2DSphere Indexes, som optimerer geometriske beregninger på kugler.

Konklusion

MongoDB er en kraftfuld database med mange muligheder. Som virksomhed har de ført an i populariseringen af NoSQL- og dokumentdatabaser. Som database har de udvidet vores forståelse af bedste praksis for datalagring og har sået sig ind i mange applikationer over hele verden.

MongoDB tilbyder også en gratis open source-version, som er en glimrende mulighed for teams med et budget, der kan opstille en databaseserver på stedet eller i skyen. Hvis du gerne vil have støtte til dette, kan Xplenty hjælpe dig. Vi kender de udfordringer, der er forbundet med datalagring, integration og analyse. Uanset om du har brug for vejledning i at vælge de rigtige værktøjer til datalagring eller hjælp til at migrere dine data til din nye løsning, så planlæg et opkald med Xplenty og find ud af, hvordan vores brugervenlige ETL-løsning kan fungere for dig.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.