A NoSQL mozaikszót 1998-ban találták ki. Sokan úgy gondolják, hogy a NoSQL egy becsmérlő kifejezés, amelyet az SQL-re való piszkálásra hoztak létre. A valóságban a kifejezés nem csak SQL-t jelent. Az ötlet az, hogy a két technológia együtt létezhet, és mindegyiknek megvan a maga helye. A NoSQL mozgalom az elmúlt néhány évben a hírekben szerepelt, mivel a Web 2.0 vezetői közül sokan NoSQL technológiát alkalmaztak. Az olyan cégek, mint a Facebook, a Twitter, a Digg, az Amazon, a LinkedIn és a Google, valamilyen módon a NoSQL-t használják. Bontsuk le a NoSQL-t, hogy elmagyarázhassa informatikai igazgatójának vagy akár munkatársainak.
A NoSQL szükségletből jelent meg
Adattárolás: A világ tárolt digitális adatait exabájtban mérik. Egy exabájt egymilliárd gigabájt (GB) adatnak felel meg. Az Internet.com szerint 2006-ban a hozzáadott tárolt adatok mennyisége 161 exabájt volt. Mindössze 4 évvel később, 2010-ben a tárolt adatok mennyisége majdnem 1000 ExaByte lesz, ami több mint 500%-os növekedést jelent. Más szóval, rengeteg adatot tárolnak a világon, és ez csak tovább fog növekedni.
Összekapcsolt adatok: Az adatok egyre jobban összekapcsolódnak. A web létrehozását a hiperhivatkozások segítik elő, a blogoknak van pingbackjük, és minden nagyobb közösségi hálózatnak vannak címkéi, amelyek összekapcsolják a dolgokat. A főbb rendszerek összekapcsolhatók.
Komplex adatstruktúra: A NoSQL könnyen kezeli a hierarchikus beágyazott adatstruktúrákat. Ugyanennek az SQL-ben való végrehajtásához több relációs táblára van szükség mindenféle kulccsal. Ezenkívül kapcsolat van a teljesítmény és az adatok összetettsége között. A teljesítmény a hagyományos RDBMS-ben romolhat, mivel a közösségi hálózati alkalmazásokban és a szemantikus weben szükséges hatalmas mennyiségű adatot tároljuk.
Mi az a NoSQL?
Azt hiszem, a NoSQL meghatározásának egyik módja annak figyelembe vétele, hogy mi nem az. Ez nem SQL és nem relációs. Ahogy a név is sugallja, ez nem helyettesíti az RDBMS-t, hanem kiegészíti azt. A NoSQL-t elosztott adattárolókhoz tervezték, nagyon nagyszabású adatszükségletek kielégítésére. Gondoljunk csak a Facebookra 500 000 000 felhasználójával vagy a Twitterre, amely minden egyes nap terabitnyi adatot halmoz fel.
A NoSQL adatbázisban nincs rögzített séma és nincsenek csatlakozások. Az RDBMS egyre gyorsabb hardver és memória hozzáadásával "felnagyobbodik". A NoSQL viszont ki tudja használni a "kiskálázás" előnyeit. A kicsinyítés a terhelés elosztására utal számos árurendszerre. Ez a NoSQL összetevője, amely olcsó megoldássá teszi nagy adatkészletekhez.
NoSQL-kategóriák
A jelenlegi NoSQL-világ 4 alapvető kategóriába sorolható.
- A Key-values Stores elsősorban az Amazon 2007-ben írt Dynamo Paper-ján alapul. A fő ötlet egy hash tábla létezése, ahol van egy egyedi kulcs és egy mutató egy adott adatelemre. Ezeket a leképezéseket általában gyorsítótár-mechanizmusok kísérik a teljesítmény maximalizálása érdekében.
- Document Databases a Lotus Notes ihlette, és hasonlóak a kulcsérték-tárolókhoz. A modell alapvetően verziózott dokumentumok, amelyek más kulcsérték-gyűjtemények gyűjteményei. A félig strukturált dokumentumokat a rendszer JSON formátumban tárolja.
- Graph Database a csomópontokkal, a jegyzetek közötti kapcsolatokkal és a csomópontok tulajdonságaival épül fel. A sorokat és oszlopokat tartalmazó táblázatok, valamint az SQL merev szerkezete helyett egy rugalmas gráfmodellt használnak, amely sok gépen skálázható.
Oszlop Családi Áruházak A sok gépen elosztott, nagyon nagy mennyiségű adat tárolására és feldolgozására hozták létre. Még mindig vannak kulcsok, de több oszlopra mutatnak. A BigTable (a Google oszlopcsaládjának NoSQL-modellje) esetében a sorokat egy sorkulcs azonosítja, és az adatokat ez a kulcs rendezi és tárolja. Az oszlopok oszlopcsalád szerint vannak elrendezve.
A
Főbb NoSQL-lejátszók
A NoSQL főbb szereplői elsősorban az őket átvevő szervezetek miatt jelentek meg. A legnagyobb NoSQL-technológiák közé tartozik:
- Dynamo: A Dynamo-t az Amazon.com hozta létre, és ez a legjelentősebb kulcs-érték NoSQL adatbázis. Az Amazonnak nagymértékben méretezhető elosztott platformra volt szüksége e-kereskedelmi vállalkozásai számára, ezért kifejlesztették a Dynamót. Az Amazon S3 a Dynamót használja tárolási mechanizmusként.
- Cassandra: A Cassandra nyílt forráskódú a Facebook, és egy oszloporientált NoSQL adatbázis.
- BigTable: A BigTable a Google saját, oszloporientált adatbázisa. A Google engedélyezi a BigTable használatát, de csak a Google App Engine számára.
- SimpleDB: A SimpleDB egy másik Amazon adatbázis. Az Amazon EC2 és S3 esetében használatos, az Amazon Web Services része, amely a használattól függően díjat számít fel.
- CouchDB: A CouchDB és a MongoDB nyílt forráskódú dokumentum-orientált NoSQL-adatbázisok.
- Neo4J: A Neo4j egy nyílt forráskódú gráf adatbázis.
A NoSQL lekérdezése
A NoSQL-adatbázis lekérdezésének kérdése a legtöbb fejlesztőt érdekli. Végül is a hatalmas adatbázisban tárolt adatok senkinek sem tesznek jót, ha nem tudod visszakeresni és megmutatni a végfelhasználóknak. vagy webszolgáltatások. A NoSQL adatbázisok nem biztosítanak olyan magas szintű deklaratív lekérdezési nyelvet, mint az SQL. Ehelyett ezeknek az adatbázisoknak a lekérdezése:> PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar".
?contributor foaf:weblog ?url.
}
A NoSQL jövője
Azok a szervezetek, amelyeknek hatalmas adattárolási igényük van, komolyan veszik a NoSQL-t. Úgy tűnik, ez a koncepció nem nyer olyan nagy teret a kisebb szervezetekben. Az Information Week által végzett felmérés szerint az üzleti IT-szakemberek 44%-a nem hallott a NoSQL-ről. Továbbá a válaszadók mindössze 1%-a számolt be arról, hogy a NoSQL stratégiai irányvonalának része. Nyilvánvaló, hogy a NoSQL-nek megvan a maga helye összekapcsolt világunkban, de tovább kell fejlődnie, hogy elérje azt a tömeges vonzerőt, amelyet sokan gondolnak.