Konkretne izkušnje kako se obnesejo ti bom lahko najbž podal čez kake pol leta vseeno pa mogoče najdeš kaj koristnega spodaj.
Je pa tako da imaš ogromno parametrov, ki vplivajo na to katero boš izbral. Nekatere so bolj primerne za real time analize, druge so boljše za offline batch procesiranje. Odvisno je tudi kakšno vrsto podatkov boš shranjeval notri in ali so le tej strukturirani v neke logične objekte/dokumenti ali pa so npr. neurejeni in nimajo logične strukture. Tukaj se tudi razvija scena na področju baz za shranjevanje grafov, kjer pa se konkretno soočajo s problemom partitioninga in optimalnega razporejanja/delitve da bo iskanje po grafu čimbolj optimalno. Morda na koncu se postavi tudi vprašanje kaj vam predstavlja single point of failiure oz. ali je boljše vpeljati infrastrukturo, ki temelji na p2p tehnologiji.
Kot sem uspel zaslediti nosql ni nadomestek za relacijske baze ampak le dopolnilo. Lep primer je npr. facebook, ki za tekoči user stream uporablja prirejen mysql, za analitike pa podatke točijo v nosql type baze. Z naraščanjem podatkov je predvideno, da bodo vse večje firme, ki se ukvarjajo z analizo podatkov prešle na takšen tip baz saj z relacijskimi ni mogoče doseči take ekspanzije in distribucije. Je pa res, da na račun distribuiranosti trpi konsistentnost podatkov, kateri se včasih odpovemo na račun širše dostopnosti (db CAP theorem). Pravtako večina takih baz ne pozna lockov, indexiranja,.. Joini tudi niso zaželjeni, rade imajo pravilo "write once"... Vprašanje je če takšne baze dejansko potrebujete, je pa res da prostor je zadnja stvar s katero bi se tukaj obremenjeval. Enostavno se nabavi dodaten node in prostor se linearno poveča.
A to potrebujete za kakšne analize ali samo za shrambo podatkov? Za distribuirano procesiranje obstaja tudi kar nekaj frejmworkov. Sam trenutno delam na hadoopu, tako da če te kaj zanima lahko še kako rečemo..
Še nekaj lastnosti Nosql:
- Povečan obseg podatkov in prenosov, velike obremenitve, ogromne količine podatkov
- Omogoča hitro prilaganaje spremembam v razvoju
- Schema – free
- Možnost distribuiranja
- Horizontalna skalabilnost
Nosql tipi:
- Key/value DB -> Amazon Dynamo store
- Column DB -> Google BigTable, Hbase, Cassandra
- Document -> MongoDB, COUCH
- Graph DB -> HyperGraphDB, AllegroGraph, FlockDB, Neo4J