2012. október 27., szombat

MongoDB is the best alternative?

Pár hete hallottam erről a "NoSQL" adatbázis kezelőről. Számomra teljesen ismeretlen terület ez, ezért kíváncsian vágtam bele. Azt mondja a MongoDB magáról: jól skálázható, nagy rendelkezésre állású,  gyors fejlesztést tesz lehetővé, rugalmas, nyílt forráskódú NoSQL adatbázis vagyok. Gyűjteményekben (collection) tárolja kulcs-érték (key-value) párokat. Valamint nagyszerű indexelési lehetőségei vannak. Gyakorlatilag minden értékre lehet sima vagy összetett indexet tenni. Minden index B-Tree típusú. Minden collection-ben van egy implicit id_ kulcs, aminek az értéke felel meg a primary key-nek, ezen implicit van index, mindig (no kivétel, ha capped collection, vagyis fix méretű gyűjtemény).

A MongoDB nem a relációs adatbázisok "lecsérélésére" hanem azok hiányosságainak pótlására jó. Erre tervezték, olyan alkalmazásokra, tipikusan webes alkalmazások, ahol a nagy rendelkezésre állás "kárára" nem okoz problémát a gyengébb konzisztencia. Azért ezt jól oldották meg, ugyanis ha a MongoDB klaszterben működik, akkor mindig választanak maguknak a szerverek egy primary member-t. Egyedül a primary szerver fogja írni az adatbázist, a slave szerverek pedig kiszolgálják a kéréseket. Ha a primary elérhetetlenné válik, akkor automatikusan újat választanak maguknak. 



Személyes tapasztalatom még nem sok van. Feltelepítettem (leírás), és megcsináltam a  tutorialt, elolvastam a dokumentációs weboldalukat. Az új nyelvi elemektől eltekintve (full JavaScript) valóban egyszerű a használata. Nem kell külön létrehozni adatbázist és gyűjteményt (collection), hanem csak használatba kell venni egyet adatbázist, ha nem létezik, akkor az első insert következtében létrejön, és a collection is.

Adatbázist (test_db) létrehozása, benne egy collection (tenyek):

> use test_db
switched to db test_db
> db.tenyek.insert( { alma : "piros", eg : "kek" } );
> show dbs
local (empty)
test_db 0.203125GB


A szkriptnyelv megismerése kattints ide.

A MongoDB alapfelszereltségébe tartozik az interactive shell, egy full JavaScript program,   SpiderMonkey egy forkja. Ebben lehet a fenti utasításokat és egyéb admin funkciókat (admin zone) végrehajtani.

Érdekeség volt számomra, hogy ez egy dokumentum alapú adatbázis. Mit is jelent ez?! A collection-önben a sorokat BSON (bináris JSON) dokumentumok tárolják. A serializálás automatikus, nekünk az ember számára is jól olvasható JSON formátumot kell használni. Egy dokumentum tartalmazhat több kulcs/érték párt is, és az értékek lehetnek beágyazott további kulcs/értékpárok, illetve tömb is. 

És, hogy miért MongoDB? Erre ők azt írják, hogy azért, mert elősegíti az agilis fejlesztést. Gyors és rugalmas fejlesztést tesz lehetővé egyszerűségével, mint a JSON-szerű dokumentumok használata egy kötetlen sémában, ami rugalmas fejlesztési folyamatokat tesz lehetővé.

View Budacsik Attila's LinkedIn profileView Budacsik Attila's profile

Nincsenek megjegyzések:

Megjegyzés küldése