Stlpcova NoSQL databaza
Stlpcova NoSQL databaza
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
- Príspevky: 8217
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
co takto Cassandra (aj ked je column family), robil som s nou, a bola pouzivana napriklad na tvorbu galerii na webe.
Re: Stlpcova NoSQL databaza
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.
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.
Re: Stlpcova NoSQL databaza
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
- Príspevky: 8217
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
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.dunno napísal:Lebo pozeram, ze napr. to vytvorenie tabuliek je velmi podobne:
http://www.datastax.com/documentation/g ... edCQL.html
//autoeditácia príspevku (15 Mar 2015, 13:58)
Preto sa hodia na specificke ulohy, pouzivat NoSQL tam kde treba skutocnu databazu je samovrazda.
Re: Stlpcova NoSQL databaza
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.
Citam si nejaku ich dokumentaciu, ale tam o tomto nie je ani zmienka.
Re: Stlpcova NoSQL databaza
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
- Príspevky: 8217
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
https://debug.sk/recenzie/42-apache-cassandra/
V cassandre moze kazdy zaznam obsahovat lubovolny pocet stlpcov, s lubovolnymi menami, nemas ziadnu definiciu struktury
V cassandre moze kazdy zaznam obsahovat lubovolny pocet stlpcov, s lubovolnymi menami, nemas ziadnu definiciu struktury
Re: Stlpcova NoSQL databaza
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 ?
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
- Príspevky: 6810
- Registrovaný: 16 nov 2007, 17:23
- Bydlisko: 's Chravenhache
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
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
Pripadne to mozes urobit tak ako pises sam
Re: Stlpcova NoSQL databaza
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
- Príspevky: 8217
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
Neexistuje, , na to v tychto databazach zabudni. Ak chces cudzie kluce pouzi relacnu databazu.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.
Ano, alebo kazdy clovek moze mat v sebe uvedene oddelnie. Prosto relacie musis nahradit agregaciou.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 ?
Z relaciami sa rozlucdunno napísal:Takze tie vztahy medzi tabulkami sa vobec nedaju spravit, ne ?
AK potrebujes ukladat relacne data, uloz ich do SQL databazy.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
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...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.
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ť?
Re: Stlpcova NoSQL databaza
hej uz som na to medzicasom prisiel.
Robim seminarnu pracu o noSQL databazach, tak preto sa tomu kus venujem.
Robim seminarnu pracu o noSQL databazach, tak preto sa tomu kus venujem.
-
harrison314
Hardcore addict
- Príspevky: 8217
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
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.
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.
Re: Stlpcova NoSQL databaza
Ako to myslis ? Vies mi to nejak vysvetlit ? Dikharrison314 napísal: ...NoSQL podla dopytov.
-
harrison314
Hardcore addict
- Príspevky: 8217
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
-
Fabo
Hardcore addict
- Príspevky: 6810
- Registrovaný: 16 nov 2007, 17:23
- Bydlisko: 's Chravenhache
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
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
- Príspevky: 8217
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Stlpcova NoSQL databaza
Toto zmysel nema, dokonca je to hlupost.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.
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.