Trace Id is missing
Ugrás a tartalomra

NoSQL-adatbázis – Mi az a NoSQL?

Az első lépések áttekintése

A NoSQL-adatbázisok fogalma

A NoSQL-adatbázisokra egymással felcserélhető módon a „nemrelációs”, a „NoSQL DB” és a „nem SQL” elnevezéssel is hivatkoznak, kihangsúlyozva azt a tényt, hogy gyorsan változó, strukturálatlan adatok nagy tömegének kezelésére képesek, a sorokat és oszlopokat kezelő relációs (SQL-) adatbázisoktól eltérő módokon.

NoSQL-technológiák már az 1960-as években is léteztek különböző neveken, a népszerűségük mégis most van emelkedőben, amikor változik az adatok eloszlása, a fejlesztőknek pedig alkalmazkodniuk kell a felhőben, a mobileszközökön, a közösségi médiában keletkező, illetve a big data jellegű adatok roppant tömegéhez és óriási változatosságához.

A hírességek Interneten terjedő tweetjeitől az elektronikus egészségügyi rekordok életmentő információiig szédítő ütemben jönnek létre az új adatok és adattípusok. A NoSQL-adatbázisok azzal a rendeltetéssel alakultak ki, hogy a fejlesztők gyorsan hozhassanak létre adatbázisrendszereket az új információk tárolására és elérhetővé tételére keresés, konszolidáció és elemzés céljára.

A NoSQL-adatbázisok előnyei

Az informatikai szakértők és a fejlesztők NoSQL-adatbázisok segítségével tudják kezelni az egyre változatosabb adattípusokat és -modelleket, amelyek rendkívül hatékonyak az előre nem látható adatok gyakran villámgyors lekérdezésekkel való kezelésében. Ezek ugyanakkor az adatbázisok zökkenőmentes felhőbe migrálását is biztosítják a meglévő NoSQL-alapú számítási feladatokhoz.

Rugalmas fejlesztés

Az előre nem tervezett helyzetekre való reagálás képessége által a NoSQL-adatbázisok kiszolgálják a rövid szoftverkibocsátási ciklusokat, és gyorsabb és rugalmasabb alkalmazásfejlesztést tesznek lehetővé.

Rugalmas adatkezelés

A NoSQL szabadságot, gyorsaságot és rugalmasságot kínál a fejlesztőknek a sémák és lekérdezések adatkövetelményekhez alkalmazkodó módosításaihoz. Az aggregátumként tárolt információkkal egyszerűbb a gyors, növekményes fejlesztés, és ehhez előzetes sématervezésre sincs szükség.

Üzemeltetés bármilyen méretben

A NoSQL-adatbázisok egyértelmű üzemeltetési előnyökkel és megtakarításokkal járnak azáltal, hogy horizontálisan "felskálázhatók" – vagyis kevésbé költséges kiszolgálók adhatók hozzájuk frissítés nélkül. Skálázhatók több adat kezelésére, vagy egyetlen nagy adatbázis nagy mértékben elosztott kiszolgálófürtökön való tárolására.

NoSQL-adatbázisokkal használható adatmodellek

A nem relációs, gyakran „nem csak SQL” néven említett nagy teljesítményű adatbázisok az erősen strukturált adatok kezelésére is alkalmasak – nem korlátozódnak rögzített adatmodellekre, mint a relációs (SQL-) adatbázisok.

 

A NoSQL-adatbázisok négy leggyakoribb típusa a következő:

Kulcs-érték

A kulcs-érték típus kivonattáblában tárolja a kulcs-érték párokat. A kulcs-érték típus akkor a leghasznosabb, ha egy kulcs ismert, de a hozzá társított érték ismeretlen.

Dokumentum

A dokumentum-adatbázisok a kulcs-érték típusú adatbázis elvét terjesztik ki azzal, hogy teljes dokumentumokat szerveznek gyűjteménynek nevezett csoportokba. Támogatják a beágyazott kulcs-érték párokat, és adott dokumentum bármely attribútuma alapján végzett lekérdezést lehetővé tesznek.

Oszlopalapú

Az oszlopalapú, széles oszlopú vagy oszlopcsalád-alapú adatbázisok hatékonyan tárolják az adatokat és kérdezik le a ritka adatok sorait. Előnyösek az adatbázis megadott oszlopain végzett lekérdezések esetén.

Gráf

A gráf típusú adatbázisok csomópontokból és élekből felépülő modellt használnak az egymással összefüggő adatok – például egy közösségi hálózat tagjai közötti kapcsolatok – leképezésére, és az összetett kapcsolatok egyszerűbb tárolását és követését teszik lehetővé.

A relációs (SQL-) és nemrelációs (NoSQL-) adatbázisok közötti választás szempontjai

NoSQL vagy nem relációs SQL vagy relációs

CÉLKÖRNYEZET:

  • Nagy tömegű, nem kapcsolódó, meghatározatlan vagy gyorsan változó adatok kezelése.
  • Sémafüggetlen adatok, vagy az alkalmazás által megszabott séma.
  • Olyan alkalmazások, amelyeknek a teljesítménye és rendelkezésre állása fontosabb az erős konzisztenciánál.
  • Folyamatosan elérhető, a világ minden táján felhasználókat kiszolgáló alkalmazások.
  • Olyan relációs adatok kezelése, amelyekre előre meghatározható logikai és elkülöníthető kritériumok érvényesek.
  • Az alkalmazás és az adatbázis között fenntartandó és szinkronban tartandó séma.
  • Relációs struktúrákra épülő örökölt rendszerek.
  • Összetett lekérdezéseket vagy többsoros tranzakciókat igénylő alkalmazások.

ALKALMAZÁSI HELYZETEK:

  • Mobilalkalmazások.
  • Valós idejű elemzések.
  • Tartalomkezelés.
  • Személyre szabás.
  • IoT-alkalmazások.
  • Adatbázis-migrálás.
  • Könyvelési, pénzügyi és banki rendszerek.
  • Leltárkezelési rendszerek.
  • Tranzakciókezelési rendszerek.

SKÁLÁZÁS:

  • Horizontálisan skálázza az adatokat a kiszolgálók közötti particionálással.
  • Az adatokat vertikálisan skálázza a kiszolgáló terhelésének növelésével.

ADATMODELL:

  • Adatbázistípusok: kulcs-érték, dokumentum, oszlopalapú és gráf adatbázisok.
  • Az adatokat adatbázistípustól függően tárolja.
  • Adatbázistípus: sorokból álló táblák relációkba csoportosítva.
  • Strukturált lekérdezési nyelvet (Structured Query Language, SQL) használ.
  • Az adatokat táblák soraiként tárolja, a kapcsolódó adatok külön vannak tárolva, és az összetett lekérdezéseknél vannak összekapcsolva.

NoSQL-adatbázis kiértékelése

Adatmodell kiválasztása

Számos NoSQL-adatbázis kezel aggregátumokat – az adatok egy egységként kezelhető gyűjteményeit. Ezáltal természetesebben illeszkednek a modern, objektumorientált programozási nyelvekhez. NoSQL-adatbázis választásakor többnyire érdemes először adatmodellt választani, és ezt követően kiértékelni az azt támogató NoSQL-adatbázisokat azokkal a programnyelvekkel és SDK-kkal együtt, amelyeket ezek az adatbázisok támogatnak.

A konzisztencia előnyeinek és hátrányainak mérlegelése

A NoSQL-adatbázisok többségénél a konzisztencia-skála bármely végéről lehet választani, az erős konzisztenciától, amely a legfrissebb adatokat biztosítja, de azokra esetleg várni kell, a végső konzisztenciáig, amely gyors választ ad, de esetleg elavult adatokkal. Számos NoSQL-adatbázis támogat más, többnyire az e két véglet közé eső konzisztenciaszinteket is. Válasszon olyan NoSQL-adatbázist, amely a legnagyobb rugalmasságot és szabályozhatóságot kínálja az igényeinek megfelelő konzisztenciamodellek terén.

A felhőbe való és az adatbázis-migrálás szempontjai

Elosztott jellegüknél és horizontális skálázhatóságuknál fogva a NoSQL-adatbázisok ideálisak a felhőalapú számításokhoz, bár számos NoSQL-adatbázisrendszert terveztek helyszíni vagy hibrid felhasználására is.

A felhőbeli lehetőségek kiértékelése során vegye figyelembe a következőket:

  • Támogatott adatmodellek. Támogatja a felhőszolgáltató az összes használni kívánt adatmodellt?
  • Üzembe helyezés és üzemeltetés. Mennyire egyszerű az adatbázist üzembe helyezni és más régiókba replikálni, ha szükséges?
  • Földrajzi jelenlét. Hol vannak a felhőszolgáltató adatközpontjai? Ott helyezheti el az adatait, ahol szeretné? Hogyan tartható fenn a globális adatvédelmi rendeleteknek, például az Európai Unió Általános adatvédelmi rendeletének való megfelelőség?
  • A replikáció egyszerűsége. Mi az adatbázis különböző földrajzi régiókban történő replikálásának folyamata?
  • Skálázhatóság. Lehetővé teszik a NoSQL-adatbázis erőforrásai a megfelelő teljesítmény biztosítását és a növekedéshez szükséges skálázást? Lehetséges lesz vertikálisan vagy horizontálisan fel- vagy leskálázni?
  • Magas rendelkezésre állás. Mi történik váratlan hiba esetén? Kínál a szolgáltatás beépített magas rendelkezésre állást és vészhelyreállítást?
  • Szolgáltatási szintek. Milyen garanciákat kínálnak a rendelkezésre állásra és a késésre?
  • Ökoszisztéma. Szorosan integrálva van-e az adatbázis a felhőplatform többi részével, és gyorsan összefűzhető-e új megoldások készítéséhez?

A NoSQL-adatbázisrendszerek felhasználási területei

A NoSQL-alapú adatmodellek használata kitűnően megfelelhet a mobil-, web-, IoT- (eszközök internetes hálózatára épülő) vagy játékalkalmazásokat készítő vállalatok céljainak, ezek ugyanis rugalmas, skálázható, nagy teljesítményű és sok funkciót kínáló adatbázisokat igényelnek a nagyszerű felhasználói élmény kiszolgálásához – legyen szó játékról, e-kereskedelemről, big data-elemzésekről, valós idejű webalkalmazásokról vagy bármi másról.

Alkalmazások globális terjesztése

Több felhasználót szerezhet a világ minden táján a magas rendelkezésre állás és a vészhelyreállítás által jobb teljesítményt nyújtó alkalmazásokkal.

Valós idejű felhasználói élmények nyújtása

A NoSQL által személyre szabási lehetőségeket, valós idejű javaslatokat és jobb felhasználói élményt nyújthat.

Változatos IoT-számítási feladatok kiszolgálása

Azonnali skálázás és rugalmasság tartósan sok írási műveletet igénylő adatfeldolgozás kezeléséhez az IoT-alkalmazások jobb lekérdezési teljesítményével.

E-kereskedelmi alkalmazások továbbfejlesztése

Rugalmas sémáival és hierarchikus adataival a NoSQL kitűnően megfelel termékkatalógus-adatok tárolására, amelyekben a sokféle termék különböző tulajdonságokkal rendelkezhet.

Játékosok megnyerése új tartalommal

Személyre szabott élményeket nyújthat az olyan tartalmakkal, mint a játékstatisztikák, a közösségi média integrálása vagy az eredménylisták. Az alacsony késés és a rugalmas skálázhatóság segít a hirtelen kiugró terhelés kezelésében játékok kiadásakor vagy bajnokságok alkalmával.

Kiszolgáló nélküli alkalmazások készítése

Zökkenőmentesen skálázható adatfeldolgozás, átviteli sebesség és adattömeg azonnali rendelkezésre állással, automatikus indexeléssel, stabil feldolgozási ütemmel és lekérdezési teljesítménnyel.

Értékesebb elemzések big data jellegű adatokból

Nagy méretekben valósíthat meg gépi tanulást gyorsan változó, nagy mennyiségű adat alapján, és értékesebb elemzéseket végezhet.

A meglévő NoSQL-alapú számítási feladatok felhőbe migrálása

A felhőbe való migrálással felszabadul a helyszíni adatbázis kezelésére fordított idő, de továbbra is használhatja a meglévő eszközöket, az illesztőprogramokat, a kódtárakat és az SDK-kat.

A NoSQL használatának és a felhőbe való adatbázis-migrálás első lépései

Elsajátíthatja az adatbázisrendszerek és változatos adattípusok kezelése terén sokoldalú, rugalmas és skálázható alkalmazások fejlesztését, valamint a meglévő NoSQL-alapú számítási feladatok felhőbe való adatbázis-migrálását. Az Azure Cosmos DB fejlesztőknek szóló technikai áttekintése  alapján jobban megismerheti a NoSQL natív támogatását egy globálisan elosztott, nagy mértékben skálázható és többmodelles adatbázis-szolgáltatásban.

További tudnivalók az Azure Cosmos DB for NoSQL adatokkal való használatáról   
További információ