Stlpcova NoSQL databaza

Programovacie jazyky, rady, poradňa...
dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

Potreboval by som rozbehat nejaku stlpcovu (column oriented) NoSQL databazu a nasledne v nej spravit nejaky vzorovy priklad. Viete mi niekto odporucit niektoru stlpcovu, s ktorou sa dobre robi a je dobre zdokumentovana ? Z osobnej skusenosti.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa harrison314 »

co takto Cassandra (aj ked je column family), robil som s nou, a bola pouzivana napriklad na tvorbu galerii na webe.
dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Re: Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

v com je vlastne ta Cassandra ina oproti klasickej relacnej databaze ? Mala by byt stlpcova databaza, teda rozdiel je len ten, ze data sa neukladaju tak ako v relacnej databaze, ale akoby prevratene ? Nie po riadkoch, ale po stlpcoch ?

Lebo pozeram, ze napr. to vytvorenie tabuliek je velmi podobne:
http://www.datastax.com/documentation/g ... edCQL.html

Hlavne ma zaujima v com sa vlastne odlisuje od napr. mysql, preco je rychlejsia ? Vsade pisu ze tieto NoSQL databazy su rychlejsie, ale nikde nanapisu preco je to tak.
Numline1
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 858
Registrovaný: 04 dec 2006, 18:04

Re: Stlpcova NoSQL databaza

Príspevok od používateľa Numline1 »

Principom NoSQL je hlavne skalovatelnost a vykon, ako uz pises. Oproti klasickym SQL databazam, NoSQL sa daju lepsie prirovnat k asociativnemu polu (kluc => hodnota).
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa harrison314 »

dunno napísal:Lebo pozeram, ze napr. to vytvorenie tabuliek je velmi podobne:
http://www.datastax.com/documentation/g ... edCQL.html
Ked mas jenu tabulku tak to vyzera podobne, ale ked uz mas dve, tak mozes zabudnut va vsetky vyhody relacneho sveta. V mnohych pripadoch su NoSQL databazy len tupe uloziska dat, ktore vedia zapisovat a vyhtiahnut nieco podla primarneho kluca, nic ine. To im umoznuje ziskat vykon a skalovatelnost.

//autoeditácia príspevku (15 Mar 2015, 13:58)
Preto sa hodia na specificke ulohy, pouzivat NoSQL tam kde treba skutocnu databazu je samovrazda.
dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Re: Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

Ano rozumiem. Ale preco sa Cassandra zaraduje do column-family, cize stlpcovych databaz ?

Citam si nejaku ich dokumentaciu, ale tam o tomto nie je ani zmienka.
Numline1
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 858
Registrovaný: 04 dec 2006, 18:04

Re: Stlpcova NoSQL databaza

Príspevok od používateľa Numline1 »

Ak spravne rozumiem tomu, ako funguje Cassandra, tak si stlpce organizuje podobne ako JSON, cize vsetko je ulozene v jednom celku a nasledne rozdelene do virtualnych stlpcov, ale to je iba moja domienka na zaklade ich stranky.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa harrison314 »

https://debug.sk/recenzie/42-apache-cassandra/

V cassandre moze kazdy zaznam obsahovat lubovolny pocet stlpcov, s lubovolnymi menami, nemas ziadnu definiciu struktury
dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Re: Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

Presiel som si dokumentaciu Cassandry a mal by som este nejaku tu otazku :)

1. Ak som spravne pochopil, v tejto databaze neexistuje nieco take, ako prepojenie dvoch ci viacerych tabuliek nejakymi foreign key, tak ako v relacnej databaze.

2. Kedze predpokladam, ze tie vztahy tam neexistuju, da sa v tom spravit nieco take, ze by som mal pracovne oddelnia a v nich zaradenych ludi ?
Napr.
nazov: human resources
popis: blablabla
poschodie: 3
blok_budovy: b

A potom ludi:
meno: Janko
priezvisko: Hrasko
mail: [email protected]

meno: Janka
priezvisko: Hraskova
mail: [email protected]

V relacnej databaze to je jasne, neni problem. Ale da sa nejak vyriesit v Cassandre toto ? Ze by som zaradil tych dvoch ludi do HR oddelenia ? Potom dalsich ludi do ineho a podobne ?

Ja to vidim tak, ze asi jedina cesta je nejaka takato:

CREATE TABLE oddelenie (
nazov text PRIMARY KEY,
popis text,
poschodie int,
blok text,
zamestnanci map<text:text>
);

a teda do stlpca zamestnanci povkladat tych zamestnancov vo forme Meno:Priezvisko ... alebo da sa to aj inak ?
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa Fabo »

Ako urobit to urobis kludne aj tak isto ako v relacnej, len tam nemas tie implicitne spojenia, nikto ti nebude garantovat ze to bude fungovat.

Pripadne to mozes urobit tak ako pises sam
dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Re: Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

No ale tak ako v relacnej celkom asi nie, pretoze tam nieco ako foreign key neexistuje, nie ? Takze tie vztahy medzi tabulkami sa vobec nedaju spravit, ne ?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa harrison314 »

dunno napísal:1. Ak som spravne pochopil, v tejto databaze neexistuje nieco take, ako prepojenie dvoch ci viacerych tabuliek nejakymi foreign key, tak ako v relacnej databaze.
Neexistuje, , na to v tychto databazach zabudni. Ak chces cudzie kluce pouzi relacnu databazu.
dunno napísal:2. Kedze predpokladam, ze tie vztahy tam neexistuju, da sa v tom spravit nieco take, ze by som mal pracovne oddelnia a v nich zaradenych ludi ?
Ano, alebo kazdy clovek moze mat v sebe uvedene oddelnie. Prosto relacie musis nahradit agregaciou.
dunno napísal:Takze tie vztahy medzi tabulkami sa vobec nedaju spravit, ne ?
Z relaciami sa rozluc :D
AK potrebujes ukladat relacne data, uloz ich do SQL databazy.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa audiotrack »

dunno napísal: Hlavne ma zaujima v com sa vlastne odlisuje od napr. mysql, preco je rychlejsia ? Vsade pisu ze tieto NoSQL databazy su rychlejsie, ale nikde nanapisu preco je to tak.
myslím že k tej odpovedi si sa už aj sám dopracoval v nasledujúcich príspevkoch. Je rýchlejšia, lebo nerieší relácie. Nemusí si držať toľko stromov keďže nemá cudzie klúče, nemá toľko indexov...

prečo si sa ale vlastne rozhodol pre noSQL db? Hlavne keď máš predstavu o tom čo chceš robiť a vieš že ti relácie budú chýbať?
dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Re: Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

hej uz som na to medzicasom prisiel.

Robim seminarnu pracu o noSQL databazach, tak preto sa tomu kus venujem.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa harrison314 »

Ak potom robis porovnanie toho istehov relacnych a noSql databzach tak potom chapem.
Ale nezabudaj na to, ze v relacnych databazach sa tvori schema podla dat, ktore chces uchovavat a v NoSQL podla dopytov.
Potom ak chces resers staci povedat.
dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Re: Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

harrison314 napísal: ...NoSQL podla dopytov.
Ako to myslis ? Vies mi to nejak vysvetlit ? Dik
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa harrison314 »

dunno
Star
Star
Príspevky: 622
Registrovaný: 17 júl 2014, 11:04
Bydlisko: KE

Re: Stlpcova NoSQL databaza

Príspevok od používateľa dunno »

vdaka
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa Fabo »

Fabo napísal:Ako urobit to urobis kludne aj tak isto ako v relacnej, len tam nemas tie implicitne spojenia, nikto ti nebude garantovat ze to bude fungovat.

Pripadne to mozes urobit tak ako pises sam
dunno napísal:No ale tak ako v relacnej celkom asi nie, pretoze tam nieco ako foreign key neexistuje, nie ? Takze tie vztahy medzi tabulkami sa vobec nedaju spravit, ne ?

Toto som tym chcel povedat... ty tam mozes urobit ten "foreign key" ako jednoduchy zapis a potom urobit podmienku trebars zamestnanec.oddelenie_id = oddelenie.id podmienku, len nikde nebude garantovane to spojenie v zmysle schemy SQL databazy.
Otazne je ci to ma vobec zmysel robit.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Stlpcova NoSQL databaza

Príspevok od používateľa harrison314 »

Fabo napísal:Toto som tym chcel povedat... ty tam mozes urobit ten "foreign key" ako jednoduchy zapis a potom urobit podmienku trebars zamestnanec.oddelenie_id = oddelenie.id podmienku, len nikde nebude garantovane to spojenie v zmysle schemy SQL databazy.
Otazne je ci to ma vobec zmysel robit.
Toto zmysel nema, dokonca je to hlupost.
Pretoze aj vytiahnes 1000 zaznamou z jednej kolekcie, tak by to znamenalo dalsich 1000 dopytov do drughej kolekcie na sparovanie cudzich klucov.
NoSQL (casto) je prave o tom, ze data su agregovane a ze su duplicitne ulozene.
Realny priklad z implementacie nemenovanej socialnej siete, post na nastenku, za zapise do kolekcie pre vsetkych tvojich priatelov osobtne, ak mas 140 priatelou, tak to zmanena 140 inserov do DB. No na nacitanie nastenky (prispevky, mena, id-cka pouzivatelov, casy,... prosto vsteko) je na jeden dopyt.
Napísať odpoveď