noSQL baza
 
php.programer 21. feb 2015 16:23:11 Pridružen od:
20. sep 2011
347 objav
154 106 10
#1

Pozdravljeni.



Katere noSQL baze se najpogosteje uporabljajo in katere priporočate za PHP?



Hvala za odgovore in pomoč!


všeč(0) ni všeč(0) spam(0)
 
hanyo 21. feb 2015 22:03:22 Pridružen od:
10. dec 2007
2378 objav
10029 1741 158
#2

Mongodb je precej popularna

Vendar ali si prepričan da rabiš nosql ? Jaz sem imel pred letom problem z veliko količino podatkov, preverili so mislim da ene par nosql rešitev in nobena ni bila ustrezna, potem ko se je delal benchmark s sample data.



Nosql kao magična rešitev za vse probleme z big data se je izkazal za ne tako zelo magično.



Na koncu sem namesto nosql uporabil navadno mysql rešitev z throughput processingom, kar v bistvu pomeni da vsako uro cron obdela podatke in izlušči samo dele, ki so pomembni ter jih zapiše v nove tabele. Potem isto dela še na dnevnem in tedenskem, mesečnem nivoju.


všeč(4) ni všeč(0) spam(0)
*Uporabniku je bila onemogočena uporaba foruma zaradi trolanja.*
 
hanyo 21. feb 2015 23:28:23 Pridružen od:
10. dec 2007
2378 objav
10029 1741 158
#3

Postam še malo interne diskusije o nosql, žal v angleščini, mogoče ti odgovori na katera vprašanja.



--

Ok so - statistics fast and relational databases are stuff don't go well together, so if we want effective statistic browsing and storing, we need to get rid of relational databases (read: get rid of *SQL servers).



Relational databases by design are not good for these kind of things, and therefore should not be used because there are alternatives that are 10 times more suited for this.



Alternative is using mongo db. See following URLs:

http://en.wikipedia.org/wiki/NoSQL

http://en.wikipedia.org/wiki/MongoDB

http://www.mongodb.org/display/DOCS/Tutorial

http://www.mongodb.org/display/DOCS/MapReduce

http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart



Which of course, would require rewriting part of the app to use it, instead of sql backend. Redesign of database also, since mongo db and generally non rdbms dbs are working quite differently.



I personally didn't use mongo db ever, I used pytables which is a python thing similar to this, 3 dimensional databases which are suited for things like statistics or whatever else which have huge amounts of data.

For example, in pytables i can do a complex query on tables with millions of rows and get data in less then a second, i'm thinking mongo db does similar thing, and if we want fast stats we need to get rid of the "standard" way.



Some nosql blog http://nosql.mypopescu.com/ ..



proposed to use mongoDB for this (he will install and configure when we need it), but as mongo represents noSQL and nonrelational database system, current stats will not work also so a whole application should be changed



Current mysql is 38.8GB one table and 8GB second table



but we discovered that nosql solution is no good

cause we would need to redefine complete data model

which is not wise



so we said that we will just optimize sql for you



Eden od razlogov za opustitev nosql je bil tudi, da je bila obstoječa aplikacija v sql in da je imela veliko podatkov. Če bi bil development denovo, bi bil mogoče outcome drugačen.



S tem problemom so se par tednov ukvarjali zelo izkušeni programerji in server admini in se potem odločili da nosql no go.


všeč(2) ni všeč(0) spam(0)
*Uporabniku je bila onemogočena uporaba foruma zaradi trolanja.*
 
bl4ckb1rd 22. feb 2015 12:14:17 Pridružen od:
18. avg 2008
1122 objav
750 91 11
#4

Verjetno bo overkill, ker nimaš takih potreb, ampak preveri si: http://impala.io/. To je odgovor na vse RDBMS baze, ki single core procesirajo querye... NoSQL baz je precej. Samo par večjih: Hbase, Cassandra, CouchDB, TokuMX (alternativa MongoDB-ju in uporablja fraktalna drevesa... super hitra), ElasticSearch... Katero boš uporabil je samo vprašanje namembnosti. Kaj bi rad storal in kako bi rad scale-al zadeve.


všeč(1) ni všeč(0) spam(0)
blackbird.si - Moj plac za odlaganje problemov in rešitev...
 
sikmajnd 23. feb 2015 07:44:50 Pridružen od:
11. nov 2013
89 objav
156 9 1
#5

Couchbase

Benchmark results



Pri nas se noSQL baza super obnese, kljub velikemu številu podatkov (prej smo imeli MySQL in tudi ni bilo problemov, sedaj je kvečjemu bolje :) ) V začetku smo imeli shranjene samo seje v noSQLu. Imamo pa vmes SOLR (šaltamo na elasticsearch) in se precej zmanjša obremenitev baze. Imaš replikacijo in sharding, ki ju on the fly usposobiš.

Moraš pa spremeniti razmišljanje, ko začneš enkrat delati z noSQL bazami. Normalizacija odpade. Tudi v kolikor sem govoril z našim DB mojstrom je rekel, da pri velikih web aplikacijah SQL bazo načrtuješ čisto drugače in moraš pozabiti na standarne "šolske primere".



Elasticsearcha ni noSQL baza, je samo search engine. Ni namenjen trajnemu shranjevanju podatkov ampak jih samo indexira iz določenega vira (lahko nastaviš sql ali couchbase river ali pa s skripto vpisuješ podatke notri). Ko sem še sam razmišljal o trajnem shranjevanju podatkov v ES sem za odgovor dobil: "Če maš jajca".

Je pa zadeva superhitra in precej razbremeniš strežnik na katerem imaš bazo. Velik plus sta enostavna replikacija in sharding.



v SQLu je bilo cca 60-70 GB podatkov, ne vem koliko imamo zdej.



aja, couchDB != couchbase


všeč(2) ni všeč(0) spam(0)
 
FrEaKmAn 23. feb 2015 17:17:03 Pridružen od:
2. dec 2007
303 objav
175 59 0
#6

Tudi mi nucamo nosql bazo Cassandra. Shranjujemo pa senzorske podatke, približno 5mil podatkov na dan. Vse kar lahko povem je da stvar preprosto deluje.



Uporabiti nosql ali ne je odvisno od problema. Večina stvari se da rešiti z "navadnimi" bazami, tako da je v večini primerov nosql baza overkill oz. premature optimization.


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se