Nosql podatkovne baze
6 naročnikov
6 naročnikov
Ima kdo kaj izkušenj z nosql podatkovnimi bazami ?
http://en.wikipedia.org/wiki/NoSQL
Zaradi velike količine podatkov bazi in kompleksnih obdelav le teh sem dobil od admina opozorilo, da se je na določenih projektih treba znebiti relacijskih baz (ala SQL).
Trenutno preverjam MondoDb in CouchDb, ima kdo kaj izkušenj z njima ali ostalimi nosql sistemi ?
9 odgovorov
3 tedne nazaj smo v Mariboru na spletnih uricah imeli prav to temo - NoSQL. Predaval nam je Andraž Tori in povedal tudi nekaj o izkušnjah, ki so jih imeli v Zamanti. Tko da verjetno bo najboljše če ga lahko kje kontaktiraš in ti malo svetuje..
Bom probal dobit še slajde, ti bodo morda malo pomagali, čeprav brez povedanega... :)
SvizeC hvala sem pogledal. Tori-ju ne bi moril za take malenkosti, sem prepričan da ima čez glavo dela :) Me je bolj zanimalo če ima kdo tukaj first-hand izkušnje s tem in tudi preskokom iz sql sistema na nosql.
Slajdi pa če je dovoljena objava potem bi prosila ja, sicer pa raje ne :)
Tori mi je dal link do prosojnic, tako da si lahko malo pogledaš in zveš vsaj te načine, kateri so zaenkrat TOP... je pa itak še vse skupaj zelo sveže in se ne ve, kaj bo če nekaj let "in"...
SvizeC:
Tori mi je dal link do prosojnic, tako da si lahko malo pogledaš in zveš vsaj te načine, kateri so zaenkrat TOP... je pa itak še vse skupaj zelo sveže in se ne ve, kaj bo če nekaj let "in"...
Odlično ! Najlepša hvala si bom podrobno pogledal.
Mi smo se nekaj casa ukvarjali z t.i. object database db4o. Je pa od tega ze kar nekaj casa, se pa spomnim da je zadeva izredno zmogljiva in hitra.
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