Milloin MongoDB:tä kannattaa käyttää: hyödyt ja käyttötapaukset
On helppo innostua uusimmista muotisanoista ja käyttää innovatiivista teknologiaa, mutta se voi aiheuttaa päänvaivaa, jos käytät väärää työkalua tehtävään. MongoDB tuli kuumana ja vakiinnutti valta-asemansa NoSQL-tietokantojen maailmassa, kun se listautui vuonna 2018. Tässä artikkelissa keskustelemme siitä, mitä NoSQL-tietokannat ovat ja miten ne eroavat SQL-tietokannoista. Sen jälkeen käsittelemme, mikä erottaa MongoDB:n NoSQL-maisemasta. Lopuksi esittelemme joitakin MongoDB:n käyttötapauksia ja keskustelemme yleisistä sudenkuopista tätä tietokantateknologiaa käytettäessä.
Lisätietoja Xplentyn natiivista MongoDB-liittimestä löydät Integraatio-sivultamme.
Sisällysluettelo
- NoSQL vs. SQL-tietokannat
- MongoDB: A Big Fish In a Small Pond
- MongoDB Use Cases
SELVITÄ, VOIMMEKO INTEGROIDA TIETOSI
YRITYKSET YMPÄRI MAAILMAA LUOTTAVAT
.
Vastaanota mahtavaa sisältöä viikoittain Xplenty-uutiskirjeellä!
NoSQL vs. SQL-tietokannat
MongoDB on NoSQL-tietokanta. Tämä tarkoittaa, että tietokannassa olevien tietojen kanssa ei käytetä SQL:ää. Sen sijaan käytät NoSQL:ää.
Ensimmäinen keskusteltava ero on sanasto. SQL:ssä käytämme taulukoita. NoSQL:ssä käytämme kokoelmia. SQL:ssä taulukot koostuvat tietueista/ruuduista, NoSQL:ssä kokoelmat ovat dokumentteja.
Kysyäksesi MongoDB:ltä sinun on käytettävä NoSQL-syntaksia. Tässä on esimerkki SQL-kyselystä ja vastaavasta NoSQL-kyselystä:
SQL:
SELECT * FROM users WHERE age > 65;
NoSQL:
users.find({age: {$gt: 65} });
Huomaa, että kyselykieli käsittelee kokoelmaa objektina, johon sovelletaan toimintoja. Tämä johtuu siitä, että MongoDB on skeematon tietokanta, ja se olettaa, että muiden kokoelmien kanssa ei tarvitse olla vuorovaikutuksessa. SQL-syntaksissa odotetaan, että käyttäjät voivat JOINata tietokannan muita relaatioita, ja siksi syntaksi mahdollistaa sen. Samanlainen kuvio on nähtävissä, kun yritetään INSERT:
SQL:
INSERT INTO users (id, age) VALUES (1, 70);
NoSQL:
users.insert({id: 1, age: 70});
Määritellyn skeeman merkitys on selvä SQL INSERT:ssä, koska valittujen sarakkeiden on oltava olemassa users-taulussa. NoSQL-lausekkeessa id- ja ikä-sarakkeiden ei tarvitse olla olemassa kokoelmassa etukäteen. Voit itse asiassa tehdä toisen INSERTin kyseiseen kokoelmaan eri kentillä. Voimme esimerkiksi suorittaa seuraavan komennon samaan users-kokoelmaan, jota käytimme edellä:
users.insert({first_name: "Annie", zip_code: "10005"})
MongoDB ja muut NoSQL-tietokannat ovat skeemattomia tietokantoja. Tämä tarkoittaa, että käyttäjät voivat tallentaa strukturoimatonta dataa. Tämä toiminnallisuus on sekä siunaus että kirous – joustavuus helpottaa tietojen tallentamista, mutta vaikeuttaa myös tietojen järjestämistä.
Syvällinen analyysi SQL:n ja NoSQL:n kriittisistä eroista on tässä blogikirjoituksessa.
SELVITÄ, VOIMMEKO INTEGROIDA TIETOSI
YRITYKSET YMPÄRI MAAILMAA LUOTTAVAT
.
Vastaanota mahtavaa sisältöä viikoittain Xplenty-uutiskirjeellä!
Kenen pitäisi käyttää MongoDB:tä
MongoDB oli muutaman vuoden ajan monissa piireissä synonyymi NoSQL:lle. Aggressiivisten markkinointikampanjoidensa ja useiden teknologiavaikuttajien vaikutuspiiriin pääsemisen ansiosta he pystyivät valtaamaan suuren osan näistä ”uusista” markkinoista. Kun se yleistyi, sen käyttökelpoisuutta tietyissä sovelluksissa alettiin kyseenalaistaa. Siitä tuli hyödyllinen työkalu ihmisille, jotka ”halusivat vain saada sovelluksensa toimimaan” ja huolehtia tietojen analysoinnista myöhemmin.
Tämä oli hyväksyttävä lähestymistapa, ja se oli järkevä monille ohjelmistokehittäjille. Lopulta kanat tulivat kotiin nukkumaan, ja kävi ilmi, että MongoDB ei ollut paras vaihtoehto kaikille. Jotkut insinöörit, jotka ottivat MongoDB:n käyttöön varhain, pystyivät nojautumaan tekniikkaan ja sopeutumaan sen parannuksiin, kun taas monet muut joutuivat massiivisiin ponnisteluihin siirtyäkseen pois siitä. Kuten jokaisen ohjelmiston kohdalla, Your Mileage May Vary (YMMV), joten on ehdottoman tärkeää miettiä kriittisesti käyttämiään palveluita.
Dokumenttitietokantojen maailmaan on ilmaantunut muitakin vaihtoehtoja. Postgres esimerkiksi paljasti JSON-saraketyypin. Tämä mahdollisti sen, että Postgresin käyttäjät voivat tallentaa jäsentymätöntä dataa relaatiotietokannan sisälle. Redis tuli myös hyödylliseksi vaihtoehdoksi käyttäjille, jotka tarvitsivat avainarvosäilön. MongoDB:n ja Redisin eroista voit lukea lisää täältä. Ja kuten useimmille menestyksekkäille ohjelmistoprojekteille käy, AWS julkaisi oman DocumentDB-nimisen dokumenttitietokantansa, joka on hyödyllinen niille, jotka haluavat pysyä AWS:n natiivien sovellusten parissa.
Kasvavasta kilpailusta huolimatta MongoDB hallitsee edelleen NoSQL/Dokumenttitietokantojen maailmaa, ja se parantaa jatkuvasti palveluitaan, kuten tekee siitä ACID-yhteensopivan. Myös pilvisovellusten tukemisessa MongoDB on pyrkinyt tukemaan hajautettuja tietokantoja ja datajärviä.
MongoDB:n käyttötapaukset
MongoDB on loistava tietokanta web-sovelluksiin, varsinkin jos sovellus palvelee monia käyttäjiä, jotka eivät ole vuorovaikutuksessa keskenään. Ajattele rahoituspalvelusovelluksia, joissa käyttäjät tarvitsevat pääsyn vain omiin tietoihinsa. Tai blogisovellus, jossa käyttäjät haluavat kirjautua sisään ja luoda/muokata omia blogejaan. Tärkeintä on, että käyttäjät eivät ole vuorovaikutuksessa keskenään. Relaatiotietokannassa käyttäjän tiedot olisi tallennettava useisiin taulukoihin. Kun käyttäjä kirjautuu sisään, sovelluksen olisi tehtävä useita kyselyjä tai monimutkaisia JOIN-kyselyjä saadakseen käyttöönsä kaikki kyseisen käyttäjän tiedot. MongoDB:n skeemattoman dokumenttitietokannan avulla voit tallentaa kaikki käyttäjän tiedot yhteen. Tämä mahdollistaisi yhden kyselyn yhdelle kokoelmalle, ja front-end voi hoitaa tietojen näyttämisen/muokkaamisen.
MongoDB:n toinen erinomainen käyttötapaus on yrittää yhdistää monia tietokokonaisuuksia. Sen skeematon rakenne mahdollistaa joustavuuden siinä, miten tietoja tallennetaan. Voit siis tallentaa dataa useista tietolähteistä (verkkosivut, tietokannat, RSS-syötteet jne.) yhteen paikkaan ja luoda sitten uuden tietokantasi päälle palveluita, joiden avulla voit analysoida sitä kaikkea. Esimerkiksi Xplenty tarjoaa tätä integraatiota MongoDB:hen.
MongoDB on loistava tietokanta paikkatiedon integroimiseen muunlaiseen dataan. Jos esimerkiksi ”sijainti” on metatieto, jonka kanssa työskentelet, MongoDB tukee GeoJSON-tyyppejä, joten voit tallentaa leveys- ja pituusasteet tehokkaasti. Lisäksi MongoDB tukee 2DSphere-indeksejä, jotka optimoivat geometriset laskutoimitukset pallolla.
Johtopäätös
MongoDB on tehokas tietokanta, jolla on monia ominaisuuksia. Yrityksenä se on ollut edelläkävijä NoSQL- ja dokumenttitietokantojen popularisoinnissa. Tietokantana ne ovat laajentaneet käsitystämme parhaista tietojen tallennuskäytännöistä, ja ne ovat kylväneet tiensä moniin sovelluksiin eri puolilla maailmaa.
MongoDB tarjoaa myös ilmaisen, avoimen lähdekoodin version, joka on erinomainen vaihtoehto pienellä budjetilla toimiville tiimeille, jotka voivat pystyttää tietokantapalvelimen tiloissa tai pilvessä. Jos haluat tukea tässä, Xplenty voi auttaa. Tunnemme tietojen tallentamiseen, integrointiin ja analysointiin liittyvät haasteet. Tarvitsetpa sitten opastusta oikeiden työkalujen valinnassa tietojen tallentamista varten tai apua tietojen siirtämisessä uuteen ratkaisuun, varaa aika puheluun Xplentyn kanssa ja selvitä, miten käyttäjäystävällinen ETL-ratkaisumme voi toimia sinulle.