51
Smetanova ulica 17 2000 Maribor, Slovenija Rajko Bunderl Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Diplomsko delo Maribor, september 2015

Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Smetanova ulica 17

2000 Maribor, Slovenija

Rajko Bunderl

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov

Diplomsko delo

Maribor, september 2015

Page 2: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

II

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov

Diplomsko delo

Študent: Rajko Bunderl

Študijski program VS – Računalništvo in informacijske tehnologije

Mentor(ica): doc. dr. Milan Ojsteršek

Lektor(ica): Nina Skube prof. slov.

Page 3: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

III

Page 4: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

IV

ZAHVALA

Zahvaljujem se mentorju doc. dr. Milanu

Ojsteršku za pomoč in vodenje pri nastajanju

diplomskega dela.

Posebna zahvala velja družini, ki mi je nudila

podporo in mi omogočila študij.

Page 5: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

V

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov

Ključne besede: podatkovne baze, NewSQL, NoSQL, VoltDB

UDK: 004.65(043.2)

Povzetek: V diplomski nalogi smo predstavili osnovne koncepte podatkovnih baz NoSQL

in NewSQL. V obeh skupinah smo predstavili njihovo arhitekturo in našteli njihove

pripadnike. Podrobneje smo se osredotočili na podatkovni sistem VoltDB. V praktičnem

delu diplomske naloge smo za potrebe analiziranja uporabili podatke podatkovne baze

nacionalne infrastrukture odprtega dostopa. Podatkovna baza je sestavljena iz

metapodatkov o publikacijah in njihovih avtorjih. Naš cilj je bil analizirati razširljivost

podatkovne baze VoltDB ter hitrosti izvajanja transakcij po določenem iskanem nizu. Filtri

iskanja nam na podlagi podanega iskanega niza filtrirajo najpogostejše metapodatke ter

jih razporedijo v določeno strukturo najpogostejših zadetkov. Pri veliki količini podatkov

narašča časovna zahtevnost ustvarjanja posameznega filtra. Za analiziranje smo uporabili

čase izvajanja transakcij na enem strežniku ter jih primerjali s časi, ko je podatkovna baza

razširjena na dveh strežnikih. Ugotovili smo, da z razširljivostjo VoltDB-ja na dva strežnika

pohitrimo časovno zahtevnost izvajanja transakcij.

Page 6: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

VI

Usage of NewSQL databases for processing of

big data

Keywords: databases, NewSQL, NoSQL, VoltDB.

UDK: 004.65(043.2)

Abstract: In the diploma thesis we present basic concepts of the NoSQL and NewSQL

databases. We present both architectures and their representative implementations. In

detail, we focus on the VoltDB implementation of the NewSQL database. In the practical

part of this thesis we use the data from the national open access infrastructure. The data

consists of metadata about publications and their authors. Our goal was to analyse the

scaling capabilities of the VoltDB database and the speed of transactions occurring while

searching the database with a defined search string. Using search filters, we output a list

of top N search hits and their metadata. Thus, the time complexity of each search filter

increases with the number of metadata. During the analysis we measured the transaction

execution times on a database installed on one server and compared them with execution

times measured on a database installed on two servers. We showed that we can speed

up the transaction execution times by scaling the database to two servers.

Page 7: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

VII

Kazalo vsebine

1 UVOD ......................................................................................................................................... 1

1.1 NAMEN IN CILJ DIPLOMSKEGA DELA ........................................................................................ 1

1.2 STRUKTURA DIPLOMSKE NALOGE ........................................................................................... 2

2 NOVE PODATKOVNE BAZE ..................................................................................................... 3

2.1 ZAČETEK NOVIH PODATKOVNIH MODELOV ............................................................................... 3

2.1.1 Velike količine podatkov ................................................................................................. 3

2.1.2 Podatkovna gruča ........................................................................................................... 5

2.1.3 Lastnosti transakcije . ..................................................................................................... 6

2.2 NOSQL PODATKOVNI MODELI ................................................................................................ 6

2.2.1 Uvod ............................................................................................................................... 6

2.2.2 Osnovni principi podatkovnih modelov NoSQL .............................................................. 7

3 PREDSTAVITEV IN PRIMERJAVA NEWSQL PODATKOVNIH BAZ ..................................... 12

4 VOLT DB .................................................................................................................................. 14

OPIS PODATKOVNE BAZE VOLTDB ................................................................................................... 14

4.1 ARHITEKTURA PODATKOVNE BAZE VOLTDB .......................................................................... 14

4.1.1 Hramba podatkov v pomnilniku .................................................................................... 15

4.1.2 Razpoložljivost .............................................................................................................. 17

4.1.3 Trajnost ......................................................................................................................... 18

4.1.4 Fragmentiranje podatkovne baze ................................................................................. 19

4.1.5 Asinhrono/sinhrono proženje shranjenih procedur ....................................................... 20

4.1.6 Izvoz toka podatkov ...................................................................................................... 22

5 MERITEV IN RAZLAGA REZULTATOV .................................................................................. 24

5.1 TESTNO OKOLJE ................................................................................................................. 25

5.1.1 VoltDB........................................................................................................................... 25

5.2 NAMESTITEV IN KONFIGURACIJA VOLTDB-JA ........................................................................ 26

5.2.1 Migracija podatkov iz MSSQL v VoltDB ....................................................................... 27

5.2.2 Shranjene procedure in odjemalčeva aplikacija ........................................................... 28

5.3 MERITEV ČASA POSAMEZNE TRANSAKCIJE GLEDE NA KOLIČINO PODATKOV IN ŠTEVILO ZADETKOV

.......................................................................................................................................... 29

5.4 RAZLAGA REZULTATOV ........................................................................................................ 31

6 SKLEP ...................................................................................................................................... 35

7 VIRI ........................................................................................................................................... 37

Page 8: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

VIII

Kazalo slik:

SLIKA 2.1: STRUKTURA VELIKIH KOLIČIN PODATKOV ................................................................................ 4

SLIKA 2.2: PODATKOVNA GRUČA ........................................................................................................... 5

SLIKA 2.3: KLJUČ TABELA ...................................................................................................................... 9

SLIKA 2.4: STOLPIČNA HRAMBA ........................................................................................................... 10

SLIKA 2.5: DOKUMENTNA SHRAMBA ..................................................................................................... 10

SLIKA 2.6: GRAF MODEL ...................................................................................................................... 11

SLIKA 4.1: POMNILNIŠKA RAZPOREJENOST VOLTDB-JA ........................................................................ 16

SLIKA 4.2: DELOVANJE K-ZAŠČITE ....................................................................................................... 17

SLIKA 4.3: ZAŠČITA PRED OMREŽNO NAPAKO ....................................................................................... 18

SLIKA 4.4: REPLIKACIJA ...................................................................................................................... 18

SLIKA 4.5: PROCESIRANJE TRANSAKCIJ ............................................................................................... 21

SLIKA 4.6: IZVOZNI ODJEMALEC S HADOOP INTEGRACIJO ...................................................................... 23

SLIKA 5.1: FILTER ISKANJA .................................................................................................................. 25

SLIKA 5.2: ER DIAGRAM PODATKOVNE BAZE ......................................................................................... 27

Kazalo tabel:

TABELA 3.1: PRIMERJAVA PODATKOVNIH BAZ ....................................................................................... 12

TABELA 4.1: PODPRTE KNJIŽNICE ........................................................................................................ 23

TABELA 5.1:SISTEMSKE KONFIGURACIJE .............................................................................................. 26

TABELA 5.2: SHRANJENA PROCEDURA AVTOR ...................................................................................... 28

TABELA 5.3: PRIMER KLICA SHRANJENE PROCEDURE IZ APLIKACIJE ....................................................... 28

TABELA 5.4: MERITVE ČASOV TRANSAKCIJ ........................................... ERROR! BOOKMARK NOT DEFINED.

Kazalo grafov:

GRAF 5.1: PROCEDURA AVTOR ............................................................................................................ 31

GRAF 5.2: PROCEDURA KLJUČNE BESEDE ............................................................................................ 32

GRAF 5.3: PROCEDURA TOPOLOGIJA ................................................................................................... 32

GRAF 5.4: PROCEDURA JEZIK .............................................................................................................. 33

GRAF 5.5: PROCEDURA LETO .............................................................................................................. 33

Page 9: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 1

1 UVOD

Količina dnevno svežih podatkov skokovito narašča. Podjetja zajemajo več tisoč giga

zlogov podatkov o svojih strankah, dobaviteljih, transakcijah in iz milijonov senzorjev

vgrajenih v različne naprave.

Pri tako velikih količinah raznih informacij je interes podjetij, da jih lahko zajemajo,

posredujejo, delijo, shranijo in tudi analizirajo v korist za nadaljne delo. Zato so v

današnjem času podatki postali ključeni del vsake poslovne in industrijske dejavnosti.

Ker je postala obdelava velikih količin podatkov časovno zelo požrešna, so se začele

razvijati alternativne oblike podatkovnih baz. Klasični entitetno-relacijski ali objektni

podatkovni sistemi so se dopolnili z alternativnimi podatkovno upravljavskimi sistemi,

posebej izdelanimi za ravnanje z velikimi količinami podatkov, raznolikostjo podatkov in

različnimi hitrostmi dostopa do velikih podatkovnih zbirk. Te podatkovne zbirke se zmeraj

bolj pogosto hranijo v NoSQL ali NewSQL podatkovnih bazah. NewSQL je razred novejših

relacijskih podatkovnih baz, ki nam zagotavljajo razširljivost kot sistemi NoSQL in

omogočajo procesiranje transakcij v realnem času (kratica OLTP (Online Transaction

Processing)). Hkrati ohranjajo tudi vse lastnosti transakcij (kratica ACID (Atomicity,

Consistency, Isolation, Durability)), kot jih zagotavljajo relacijske podatkovne baze.

1.1 Namen in cilj diplomskega dela

Namen diplomske naloge je na kratko opisati in primerjati različne podatkovne baze

NewSQL. Podrobneje bomo opisali in analizirali delovanje podatkovne baze VoltDB. Naš

namen testiranja je primerjava hitrosti poizvedb SQL, ki jih proži filter med izbiro

določenega kriterija, izbranega s strani uporabnika. Pri tem bomo uporabili scenarij

testiranja, najprej na enem strežniku, za tem pa pri enakih konfiguracijah in podatkih še na

dveh strežnikih. Tako bomo pridobili jasno sliko glede razširljivosti in fragmentiranja

podatkovne baze VoltDB.

Page 10: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 2

1.2 Struktura diplomske naloge

V drugem poglavju predstavimo različne terminologije in nerelacijske podatkovne modele

NoSQL (zgodovino, arhitekturo, prednosti in slabosti). V tretjem poglavju predstavimo

nove modele podatkovnih zbirk NewSQL. Opisali smo osnovne klasifikacije modelov in

predstavili njihove predstavnike. V četrtem poglavju smo podrobno opisali delovanje

podatkovne baze VoltDB, ki smo jo uporabili v praktičnem delu naloge. V petem poglavju

opisujemo potek konfiguracije podatkovne baze in meritve pridobljene s testiranjem. V

zadnjem delu petega poglavja predstavimo rezultate meritev in ugotovitve. V šestem

poglavju se nahaja sklep, kjer so strnjene vse ugotovitve diplomske naloge.

Page 11: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 3

2 NOVE PODATKOVNE BAZE

2.1 Začetek novih podatkovnih modelov

V zadnjih letih je razvoj spletnih in mobilnih programskih rešitev povzročil velik porast

količine podatkov, ki jih je treba obdelati in shraniti. Na primer samo na Facebook-u je 2.4

milijard vsebin deljenih med prijatelji vsak dan. Zaradi tako velikega porasta informacij v

tako kratkem času se podjetja soočajo s problemi nadzorovanja in analiziranja s

tradicionalnimi procesnimi orodji. To je povzročilo veliko sprememb pri zmogljivosti in

razširljivosti obdelav velikih količin podatkov (ang. Big data).

2.1.1 Velike količine podatkov

»Big Data« je izraz uporabljen za velike in kompleksne podatkovne zbirke. Uporabljamo

ga, kadar imamo zelo veliko količino podatkov in tradicionalni podatkovni sistemi ne

zadostujejo več potrebam obdelave podatkov. Podjetja se vedno bolj zavedajo, da lahko

te velike količine podatkov uporabijo za nove poslovne priložnosti in izboljšave skozi

obdelavo in analizo teh podatkov.

Page 12: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 4

Slika 2.1: Struktura velikih količin podatkov

»Big data« se bolj kot po količini (saj se konstantno spreminja) definira po svoji vedno

večji raznolikosti, hitrosti, spremenljivosti in kompleksnosti: [31

Hitrost: pri »Big data« se gleda na hitrost, kot tempo s katerim se podatki

generirajo. Podatke lahko ustvarijo poslovni procesi, senzorji, internetni viri,

mobilne naprave itd.. Pretok je lahko masiven in konstanten. Večina teh podatkov

je generiranih realno časovno. Zato samo procesiranje in zajemanje teh podatkov

zahteva nove pristope za nadaljne analiziranje, ki pa lahko doprinesejo nove

poslovne priložnosti podjetjem.

Spremenljivost: podatkovni tokovi so lahko zelo spremenljivi. Imamo konstantne,

urne, dnevne, sezonske in dogodkovne sprožilce večjih obremenitev, ki jih je težje

obvladati. [33]

Kompleksnost: težavnost upravljanja podatkov se povečuje z večanjem njihovih

virov ter se prepleta s potrebo po povezovanju in preoblikovanju podatkov med

Page 13: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 5

poslovnimi entitetami in sistemi. Organizacije morajo razumeti razmerja med vsemi

podatki. [33]

Raznolikost: večina podatkov je nestrukturiranih, vendar jih moramo kljub temu

vključiti v kvalitetno analizo in v sprejemanje odločitev. [33]

Z analiziranjem velikih količin podatkov lahko pridobimo veliko koristnih podatkov, vendar

za razvoj učinkovitih sistemov potrebujemo nova orodja. Tehnologije izpred nekaj let so

postale omejene za učinkovito analizo ter naraščajoče raznolikosti podatkov. Tako so se

začele razvijati alternativne tehnologije, ki so temu prilagojene. Brez ene ali vseh lastnosti

v »Big Data« arhitekturi ni mogoče maksimalno izkoristiti vsega potenciala podatkov.

2.1.2 Podatkovna gruča

Podatkovna gruča (angl. database cluster) je skupina dveh ali več neodvisnih strežnikov,

ki delujejo kot enoten sistem. Podatkovna gruča nam pomaga doseči visoko

razpoložljivost in izboljšati vhodno/izhodno prepustnost podatkovne baze. Ko nastopi

napaka na enem od strežnikov v gruči, se viri preusmerijo in delovna obremenitev se

porazdeli na drug strežnik v gruči.

Slika 2.2: Podatkovna gruča

Funkcija podatkovne gruče je, da uporabnikom omogoči konstanten dostop do

pomembnih virov podatkov.

Page 14: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 6

2.1.3 Lastnosti transakcije .

Z izrazom transakcija označujemo skupek sprememb, ki iz vidika podatkovnih baz

predstavljajo eno enoto dela. Pomembna naloga podatkovnih baz je, da zagotavljajo

varne transakcije. Te morajo biti atomarne, ujemljive, izolirane in trajne. Te štiri lastnosti v

strokovni terminologiji poimenujemo s kratico »ACID«. [30]

Definiramo jih na naslednji način:

Atomarnost (angl. atomicity): vse operacije transakcije se morajo zaključiti, da se

ta uspešno izvede. Če se neuspešno izvede katerikoli del transakcije, se prekine

celotna transakcija in se konča kot neuspešna.

Ujemljivost (angl. consistency): transakcija pripelje podatkovno bazo iz enega

veljavnega stanja v drugo. Zagotavlja, da je podatkovna baza vedno v veljavnem

stanju. Po neuspešnem izvajanju transakcije pa zagotovi, da je sistem v stanju

pred transakcijo.

Izolacija – neodvisnost (angl. isolation): transakcije se izvajajo neodvisno ena od

druge. Med izvajanjem več transakcij hkrati transakcije ne morejo izvajati operacij

nad podatki druge transakcije.

Trajnost (angl. durability): rezultat se trajno zapiše v fizično podatkovno bazo.

2.2 NoSQL podatkovni modeli

2.2.1 Uvod

Kratica NoSQL pomeni Not Only SQL in jo pogosto povezujemo z novo skupino

podatkovnih baz, ki so se pojavile kot odgovor na težave, s katerimi se srečujemo pri

uporabi relacijski baz podatkov. Za podatkovne baze NoSQL je težko podati natančno

opredelitev, lahko pa navedemo, katere so njihove pomembne lastnosti. Te lastnosti so:

neopredeljena shema, prožnost, drobljenje, asinhrona replikacija, pristop »BASE«

namesto »ACID« in arhitektura brez skupne rabe. Nastale so na podlagi zahtev po visoki

učinkovitosti in razširljivosti v okolju, kakršen je svetovni splet. [32]

Motivacija za ta pristop vključuje preprostost oblikovanja, boljšo horizontalno razširljivost v

gruči strežnikov, ki je vedno večji problem tradicionalnih relacijskih podatkovnih baz, kakor

Page 15: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 7

tudi natančnejši pregled nad razpoložljivostjo. Podatkovne strukture uporabljene pri

podatkovnih bazah NoSQL se nekoliko razlikujejo od tistih, ki jih uporabljajo

konvencionalni relacijski modeli. Nekatere operacije v NoSQL podatkovnih bazah so

hitrejše, nekatere pa počasnejše kot pri izvajanju v relacijskih podatkovnih bazah. Glede

na zahteve, kakršne potrebujemo, da dosežemo želeni rezultat oz. rešimo določen

problem, izberemo temu najprimernejšo vrsto podatkovne baze NoSQL.

2.2.2 Osnovni principi podatkovnih modelov NoSQL

V tem odseku bomo predstavili nekatere osnovne koncepte, ki so najbolj pogosti pri

podatkovnih bazah NoSQL in ne unikatni samo za en razred nerelacijskih podatkovnih

baz.

CAP teorem

Eric Brewer je leta 2000 predstavil teorem s kratico CAP, ki je danes široko sprejet v

skupnosti NoSQL. Kratica CAP je okrajšava za tri lastnosti: ujemljivost (angl. consistency),

razpoložljivost (angl. availability) in particijsko toleranco (angl. partition tolerance). Teorem

zagovarja stališče, da porazdeljene podatkovne baze lahko zagotavlajo le dve izmed treh

lastnosti: [27]

1. Ujemljivost (angl. consistency): »vse enote vidijo vse podatke enako v vseh

časovnih trenutkih. Na primer, ko se operacija zapisovanja konča, je

rezultat ujemljiv v celotnem porazdeljenem sistemu – vse replike so

posodobljene.«[34]

2. Razpoložljivost (angl. availability): »v primeru, da ena ali več izmed enot

neha delovati, preostale enote nemotomo delujejo naprej.« [34]

3. Neobčutljivost na deljenje omrežja (angl. partition tolerance): kadar

omrežje preneha pravilno delovati, je medsebojna povezava med vozlišči

porazdeljenega sistema prekinjena. »V takem primeru se pojavi deljenje

omrežna in če je sistem toleranten zanjo, bo še vedno polno funkcionalno

deloval naprej.«[34]

Page 16: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 8

V praksi je izpolnitev vseh treh zahtev nemogoča. CAP zagotavlja osnovne zahteve za

porazdeljene sisteme, ki omogočajo dve od treh zahtev, zato trenutne NoSQL podatkovne

baze temeljijo na različnih kombinacijah CAP teorema. Podatkovne baze imajo visoko

horizontalno razširljivost preko gruče strežnikov. Nekateri podatkovni modeli omogočajo

razširljivost na podatkih, medtem ko drugi skrbijo za pisalno/bralno razširljivost. Ker

omogočajo visoko razpoložljivost, nekateri modeli ciljajo velike porazdeljene sisteme in s

tem je neobčutljivost na omrežne particije neizogibna. S tem, da je omogočena visoka

razpoložljivost, pa te rešitve izberejo ujemljivost v kompromis razpoložljivosti, kar je

rezultat delnega CAP teorema AP (razpoložljivo/tolerantno za deljenje omrežja),

medtem ko ima večina relacijsko orientiranih podatkovnih baz CA

(ujemljivost/razpoložljivost). Ponavadi NoSQL baze ne podpirajo »ACID« transakcij, kot jih

zagotavljajo klasične relacijske podatkovne baze, velikokrat so označene kot »BASE«:

Večinoma razpoložljiv (angl. basically available): če je katerikoli del podatkovne

shrambe nedostopen, je ostali del kljub temu vedno razpoložljiv.

Mehko stanje (angl. soft-state): sistem se zaradi asinhronih posodobitev čez čas

spremeni tudi brez sprememb uporabnika, posledica česar je, da so kopije

podatkov v nekem času neujemljive.

Eventualna ujemljivost (angl. eventual consistency): poudarja, da po določeni

časovni periodi postane podatkovna baza usklajena z vsemi podatki.

NoSQL podatkovne baze ponujajo zelo prilagodljive sheme, lahko pa so popolnoma brez

podatkovne sheme. Zasnovane so tako, da lahko obdelajo različne podatkovne strukture.

Poznamo več različnih pristopov klasificiranja podatkovnih baz NoSQL. Zaradi različnih

pristopov in prekritij jih je težko natančno opisati, saj so se razvile na podlagi različnih

zahtev in potreb v praksi. Tako imajo različne funkcionalnosti, kakor tudi podatkovne

modele. Obstajajo različne osnovne klasifikacije na podlagi podatkovnega modela.

Ključ-vrednost (angl. Key/Value)

Ključ/vrednost tip uporablja zgoščeno tabelo, v kateri obstaja unikaten ključ in kazalec

na določeni element podatka. Povečini gre za niz in se preslika v pripadajočo

vrednost. Pogosto je dolžina ključev, ki jih je potrebno shraniti, omejena na določeno

število zlogov, medtem ko je glede vrednosti manj omejitev. Shranjevanje podatkov

po modelu ključ/vrednost deluje po principu, ki ga uporabljajo predpomnilniki.

Predpomnilnik hrani največkrat uporabljene podatke z namenom, da prepreči pogoste

Page 17: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 9

zakasnitve diskovnega pogona. Tako omogočajo hitrejši dostop do podatkov, ki so

ponavadi manjše zbirke ključev in vrednosti.[27]

Slika 2.3: Struktura »Ključ/vrednost« podatkovne baze NoSQL

Stolpec (angl. Column)

V stolpično-orientirani NoSQL podatkovni bazi so podatki shranjeni v celici, združeni v

stolpec podatkov, dočimer imajo relacijske podatkovne baze podatke združene v

vrstice. Stolpci so logično združeni v družino stolpcev (angl. ColumnFamily). Družine

stolpcev lahko vsebujejo neomejeno število stolpcev, ki jih lahko ustvarimo v »run-

time« definiciji sheme. Branje in pisanje uporablja stolpce namesto vrstic, ker se

branje in pisanje izvajata na stolpcih, so iskanje in dostop ter agregacija podatkov

hitrejši. S tem pristopom shranimo vse celice pripadajočemu stolpcu kot neprekinjen

diskovni zapis. Zaradi tega je iskanje in dostopanje do podatka hitrejše.

Page 18: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 10

Slika 2.4: Struktura stolpične podatkovne baze NoSQL

Dokument (angl. Document)

Dokumentna shramba predstavlja nabor parov tipa ključ-vrednost, strukturiranih v

obliko dokumenta. Podobno kot pri podatkovnem modelu ključ-vrednost zagotavljajo

nekakšno strukturo in kodiranje uporabljenih podatkov. Za kodiranje dokumentov so

uporabljeni standari XML, JSON, BSON in še nekateri drugi formati.

Slika 2.5: Struktura dokumentne podatkovne baze NoSQL

Page 19: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 11

Graf (angl. Graph)

Graf na podlagi podatkovnega modela predstavlja podatke drugače kot ostali modeli

NoSQL podatkovnih baz. Gre za drevesno strukturo (grafe) z vozlišči, povezanimi

med seboj preko relacij. Nekatere operacije so tako veliko lažje, če uporabimo te tipe

modelov za povezovanje in združevanje podatkov.

Slika 2.6: Struktura grafovske podatkovne baze

Page 20: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 12

3 PREDSTAVITEV IN PRIMERJAVA NEWSQL PODATKOVNIH BAZ

V prejšnjem poglavju smo opisali NoSQL modele podatkovnih baz, kjer ne moremo

zagotoviti razpoložljivosti, ujemljivosti in neobčutljivosti na deljenje omrežja hkrati. Pri

tradicionalnih relacijskih podatkovnih bazah naletimo na težave pri razširljivosti in

zmogljivosti. Tako so strokovnjaki na področju relacijskih podatkovnih baz začeli iskati

nove rešitve. Izraz NewSQL je bil prvič predstavljen v članku raziskovalnega podjetja The

451 group leta 2011. Cilji podatkovnih baz NewSQL so, da zagotovijo prednosti relacijskih

paradigem za porazdeljene arhitekture in zmogljivost, da horizontalno razširjevanje ne bi

bila več nuja. NewSQL podatkovne baze so nov tip relacijskih baz (oz. razširitev

tradicionalnih relacijskih baz). [24] Njihov namen je zagotoviti enako prilagodljivo

delovanje kot ga imajo NoSQL sistemi, hkrati pa ostati na temeljih relacijskih modelov,

ohraniti SQL kot jezik za poizvedbe in zagotoviti »ACID« transakcije. V to kategorijo

spadata Google Spanner in VoltDB, ki temelji na razvojnem projektu H-Store. Med drugimi

sta Clustrix in NuoDB komercialna produkta, ki tudi spadata med vodilne v tej novi

tehnologiji. Te podatkovne shrambe podpirajo relacijske modele in uporabljajo SQL kot

poizvedovalni jezik, kljub temu da so zasnovane na drugačnih domnevah in arhitekturah

kot tradicionalne relacijske podatkovne baze.

Tradicionalni SQL NoSQL NewSQL

Relacijske DA NE DA

SQL poizvedovalni jezik DA NE DA

ACID transakcije DA NE DA

Horizontalna razširljivost NE DA DA

Brez podatkovne sheme NE DA NE

Tabela 3.1: Primerjava podatkovnih baz

Pomembne karakteristike NewSQL podatkovnih sistemov :

NewSQL uporablja SQL poizvedovalni jezik kot primarni mehanizem za

aplikacijsko interakcijo.

NewSQL zagotavlja »ACID« lastnosti transakcij.

NewSQL arhitektura zagotavlja večjo zmogljivost posameznega vozlišča kot

tradicionalni relacijsko podatkovni modeli.

Page 21: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 13

Zelo dobra horizontalna razširljivost, nič skupna arhitektura

Lahko teče na velikem številu vozlišč brez ozkega grla.

NewSQL sistemi so približno 50-krat hitrejši od tradicionalnih OLTP podatkovnih

baz pri velikem številu transakcij na sekundo. [17]

V nadaljevanju bomo opisali različne klasifikacije podatkovnih baz NewSQL. Enako kot pri

podatkovnih bazah NoSQL imamo tudi pri NewSQL ponujenih veliko različnih rešitev.

Klasifikacija temelji na različnih pristopih ponudnikov teh sistemov. [6]

Nova arhitekutra podatkovnih baz:

Ti sistemi so razviti z idejo, da bi zagotovili razširljivost in zmogljivost. Za izboljšanje

zmogljivosti stremijo k delovanju brez tradicionalnega shranjevanja podatkov. Te nove

arhitekture delujejo v pomnilniku ali z uporabo SSD diskov. Med najbolj znane rešitve

spadajo VoltDB, NuoDB, Clustrix in Drizzle.

Novi MySQL podatkovni pogoni: MySQL je del LAMP ( Linux, Apache, MySQL, PHP)

paketa in se veliko uporablja v OLTP. Za probleme z razširljivostjo MySQL podatkovnih

skladišč so se začeli razvijat različni podatkovni pogoni, kot so Akiban, MySQL, NDB

cluster, GenieDB, InfiniDB, TokuDB in drugi prosto dostopni. Razširljivost pri teh pogonih

je boljša kot pri standardnem skladiščnem pogonu InnoDB, ki ga uporablja MySQL.

Transparentna fragmentacija: Pri teh se lahko uporabi obstoječo relacijsko podatkovno

bazo. Podatkovna baza NewSQL pa omogoča vmesno programsko opremo za

fragmentacijo podatkovne baze na večjih strežnikih. S tem se izognemo ponovnemu

pisanju kode ali kakršni koli migraciji podatkov. Predstavniki te kategorije so dbShards,

ScaleDB in MySQL cluster. [30]

Page 22: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 14

4 VOLT DB

Opis podatkovne baze VoltDB

Ena pomembnejših lastnosti VoltDB-ja je, da omogoča preprosto razširljivost z

dodajanjem procesorjev v gručo strežnikov, ko se rast podatkov in transakcij povečuje.

VoltDB hrani podatke v pomnilniku (angl. in-memory), kar poveča prepustnost in prepreči

zamudno dostopanje do diska ter dosega večjo zmogljivost s serializacijo vseh dostopov

do podatkov. S tem se izogne večini časovno potratnih funkcij, kot sta zaklepanje in

vzdrževanje transakcijskih dnevnikov.

4.1 Arhitektura podatkovne baze VoltDB

Nekatere ključne lastnosti podatkovne baze VoltDB so:

Hramba v pomnilniku za maksimalno prepustnost, s tem pa izogibanje počasnemu

dostopu do trdega diska.

Serializacija vseh dostopov do podatkov.

Zmogljivost in razširljivost preko fragmentacije.

Velika razpoložljivost preko sočasne replikacije (K-zaščita).

Trajnost preko inovativne kombinacije posnetkov in ukaznega dnevnika (trdi

diski/SSD diski). [28]

Page 23: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 15

4.1.1 Hramba podatkov v pomnilniku

Današnji podatkovni strežniki so opremljeni z več sto GB glavnega pomnilnika, zato

potreba po zmogljivosti ni več odvisna od diskovnih enot. VoltDB shrani podatke v

pomnilnik (RAM). Tako procesiranje izloči čakanje diska na odzivnost, zaklepanje in

medpomnilniško upravljanje v transakciji. Delovanje pomnilnika VoltDB podatkovne baze

se razdeli na tri dele (Slika 4.1):

Trajni pomnilnik: uporabljen je za shranjevanje dejanskih podatkovnih baz, kot

so tabele, indeksi in pogledi. Večja je količina podatkov v zbirki, več pomnilnika

zahteva, da jo shranimo.

Delno trajni pomnilnik: je uporabljen za začasno shranjevanje, medtem ko

obdeluje SQL poizvedbe in določene sistemske procedure. V glavnem delno

trajni pomnilnik vključuje začasne tabele in sprostitev trenutnega pomnilnika

(angl. buffer). Trajni pomnilnik se uporabi tudi, kadar shranjujemo podatkovno

bazo s posnetkom ali izvažamo podatke v druge podatkovne shrambe.

Začasni pomnilnik: upravlja distribucijo procedur na posamezne particije.

Začasni pomnilnik vključuje tudi vrsto nerešenih pozivov čakajočih procedur,

kakor tudi vrnjene vrednosti zaključenih.

Page 24: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 16

Slika 4.1: Pomnilniška razporejenost VoltDB-ja

Pri standardnih modelih po navadi ni pomembno, v katerem jeziku je napisana izvorna

koda, vendar v primeru pomnilniškega izvajanja različne platforme uporabljajo pomnilnik

na drugačne načine. Za delovanje trajnega in delno trajnega pomnilnika VoltDB se

uporablja koda, napisana v C++, pri začasnem pomnilniku pa je koda napisana v Javi.

Programski jezik C++ uporablja natančno razporeditev pomnilnika, zato lahko aplikacija

natančno kontrolira, kdaj in koliko pomnilnika dodeli oz. sprosti. Pri začasnem pomnilniku

(ki ga upravlja Java) pa VoltDB uporablja JVM (angl. Java Virtual Machine). JVM odloča,

kdaj in kako bo zbral neuporabljen prostor.

Page 25: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 17

4.1.2 Razpoložljivost

VoltDB zagotavlja razpoložljivost z dvema možnostima zaščite. To sta K-zaščita in zaščita

pred omrežnimi napakami.

K-zaščita: deluje tako, da podvaja fragmente podatkovne baze v gruči vozlišč. Vse kopije

fragmentov delujejo sočasno. S tem je cel čas zagotovljena ujemljivost podatkov. V

primeru izpada kateregakoli vozlišča v gruči, omogoča K-zaščita neprekinjeno delovanje

podatkovne baze. Operacije izpadlega vozlišča prevzamejo kopije fragmentov na drugih

vozliščih. S tem zagotovi, da je podatkovna baza dostopna v celoti, dokler se napaka ne

odpravi. Pred zagonom, skrbnik nastavi vrednost K-zaščite, ki določa pri koliko vozliščih

lahko pride do izpada, da je podatkovna baza še razpoložljiva.

Slika 4.2: Delovanje K-zaščite

Zaščita pred omrežno napako (angl. Network Fault Protection) deluje v povezavi s K-

zaščito. Gruča, zaščitena s K-zaščito, nam pred omrežno napako zavaruje podatkovno

bazo pred omrežnimi izpadi. Če se pojavi izguba povezave med vozlišči, gruča zazna

prekinjeno povezavo kot izpad vozlišča. V določenih segmentih gruče je lahko dovolj

fragmentov za nadaljno delovanje podatkovne baze in vsak segment bi zaznal, da je drugi

prišel do izpada. To bi lahko privedlo do sočasnega delovanja različnih fragmentov

podatkovne baze. Zaščita pred omrežno napako pa zagotovi, da bo le en fragment

podatkovne baze ostal aktiven. S tem prepreči delovanje dveh ločenih kopij podatkovne

baze, ki bi sprejemala zahteve v smislu, da je edina delujoča kopija.

Page 26: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 18

Slika 4.3: Zaščita pred omrežno napako

Replikacija podatkovne baze: deluje podobno kot K-zaščita, ampak namesto podvajanja

fragmentov lokalno, podvajanje replikacije poteka na daljavo nad celotno gručo (kopija

celotne podatkovne baze na drugem fizičnem mestu) (Slika 4.4). Ena od ključnih stvari

replikacije je, da zagotovi obnovitev podatkovne baze na primer ob naravni katastrofi, ki

lahko poruši celotno infrastrukturo. V takih primerih aktivnost primarne podatkovne baze ni

mogoče ohraniti. Replikacija nam v nujnem primeru zagotovi kopijo, ki lahko nadomesti

prvotno podatkovno bazo.

Slika 4.4: Replikacija

4.1.3 Trajnost

Trajnost je ena od lastnosti »ACID« atributov, ki zahteva, da se zagotovi točne in

zanesljive operacije podatkovne baze. Zagotavlja ujemljivost in razpoložljivost v primeru

Page 27: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 19

zunanjih problemov, kot so strojne ali sistemske napake. VoltDB zagotavlja trajnost

podatkov preko naslednjih lastnosti:

Posnetki (angl. snapshot): so celotna kopija podatkovne baze v določenem času,

ki se shrani na disk. Ti posnetki se uporabljajo za obnovitev ali ponovni zagon

podatkovne baze. Posnetke sprožimo ročno ali v nekem časovnem intervalu. V

primeru kakršne koli prekinitve delovanja strežnika obnovimo zadnji posnetek

podatkovne baze.

Asinhroni ukazni dnevnik (angl. Asynchronous Command Logging): zagotavlja

napredno trajnost s posnetki in beleženjem transakcij med ustvarjanjem posnetka.

Če se zgodi izpad in s tem ponovni zagon strežnika, se VoltDB povrne v delujoče

stanje s pomočjo zadnjega posnetka in dnevnika. V dnevniku so zapisane

transakcije, ki so nastale po zadnjem posnetku.

Sinhroni ukazni dnevnik (angl. Synchronous Command Logging): nudi najboljšo

trajnost. Je nadgradnja asinhronskega pisanja ukazov v dnevnik. »Razlika med

načinoma je, da se dnevnik ustvari, ko je transakcija zaključena, a še nepotrjena.

Z drugimi besedami, nobena transakcija ni potrjena, če ni zapisana v dnevniku in s

tem ni nobena transakcija izgubljena.«[30] Edina slabost tega je, da je potrebna

boljša tehnologija diska, saj se v nasprotnem primeru pozna na hitrosti izvajanja

transakcij. [30]

4.1.4 Fragmentiranje podatkovne baze

Fragmenti so osrednji del VoltDB-ja, saj je samo prek teh možno doseči vzporednost

izvajanja. »Vozlišča, ki predstavljajo en fragment, so vezana na jedro procesorja (v smislu

obdelave, ne hranjenja podatkov) in ne na strežnik, saj je fragmentiranje na ravni

procesorja arhitekturno bolj preprosto, s čimer se pride tudi do boljših rezultatov,

učinkovitosti.«[30] Ker so fragmenti avtonomni, ni zaklepanja ter večnitnosti, in je zato

koda bolj zanesljiva, razhroščevanje pa manj problematčno. »Fragmentira se tako

podatke po uporabniško definiranem ključu kot procesiranje v povezavi s podatki.«[30]

VoltDB pozna tudi tabele, ki se v celoti nahajajo na posameznih fragmentih. To so

predvsem tabele, ki se ne spreminjajo veliko in naredijo operacije stikov manj potratne.

[30]

Page 28: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 20

Dodajanje števila jeder strežnika pomeni več fragmentov, vendar dodajanje jeder na neki

točki ne vpliva več na boljšo prepustnost, saj bodo transakcije v nekem trenutku zapolnile

razpoložljivi prostor vrat strežnika, skozi katere komunicirajo z drugimi vozlišči oz.

odjemalcem. Podobno velja za večanje števila vozlišč v gruči. Za dobro učikovitost (čim

manjši zamiki in manjše motnje med vozlišči) je bolje, da so vsi strežniki na istem

omrežnem stikalu. Očitno je, da je priporočeno največje število strežnikov tolikšno, kot jih

podpira stikalo. [30]

4.1.5 Asinhrono/sinhrono proženje shranjenih procedur

Pri običajnih bazah podatkov so v transkacijah pogoste zakasnitve diska. Raje, kot da je

CPU nedejaven, le-ta sistem za upravljanje podatkovne baze med čakanjem preplete

izvedbo SQL iz več transkacij, tako da je vedno zaposlen. Slednja aktivnost povzroči

presežno in pomembno zapahovanje ter zaklepanje.

Baza podatkov VoltDB je sestavljena iz več izvrševalnih pogonov v pomnilniku,

imenovnovanih fragmenti. Fragment združi podatke in procesne konstrukte, povezane z

njimi. VoltDB le-te avtomatično ustvari in razdeli po jedrih procesorjev v gruči sistema za

upravljanje podatkovne baze.

Vsaka VoltDB stran (angl. site) je enoprocesna in vsebuje vrsto transakcijskih prošenj, ki

jih izvrši zaporedoma nad svojimi podatki.

Page 29: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 21

Slika 4.5: Procesiranje transakcij

Z uporabo zaporednega procesiranja transakcij zagotavlja VoltDB ujemljivost transakcij

brez presežka v zaklepanju. Fragmentiranje podatkovne baze omogoča, da hkrati obdela

več zahtev. VoltDB lahko s pomočjo eliminiranja zakasnitev preko delovanja v pomnilniku

in shranjenih procedurnih klicev izvrši več milijonov SQL operacij na sekundo.

Page 30: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 22

4.1.6 Izvoz toka podatkov

VoltDB omogoča, glede na bazo podatkov, selektivno izvažanje podatkov. Tarča za izvoz

podatkov iz VoltDB-ja je lahko druga podatkovna baza, datoteka (npr. dnevnik zapisov) ali

proces (npr. upravitelj opravil).

VoltDB omogoča izvoz toka podatkov prek izvoznih tabel, tj. preko posebnih tabel, ki

vsebujejo stolpične podatke iz ene ali več fizičnih tabel v bazi podatkov. Takoj ko

vnesemo podatke v izvozno tabelo, so le-ti poslani do aplikacije, ki jih sprejme preko

konektorja. VoltDB zadrži izvozno tabelo v medpomnilniku, dokler konektorja izvozni

odjemalec ne sprejme. Če izvozni odjemalec ne dohaja konektorja in če se podatkovna

vrsta zapolni, VoltDB zapiše preliv podatkov na disk in s tem zagotovi, da so vsi izvoženi

podatki na voljo odjemalcu, tudi ko sčasoma nadaljuje s pridobivanjem. Izvozni preliv

eliminira situacije neujemanja podatkov, ki bi se lahko zgodile med VoltDB-jem in sistemi

za prejemanje, pri čemer VoltDB oddaja podatke hitreje, kot jih lahko sosednja baza

podatkov shrani.

Integracija Hadoop-a

VoltDB predstavlja odlično rešitev za ravnanje s realnočasovno generiranimi podatki.

Hadoop pa je odlična rešitev za analiziranje ogromnih velikih količin podatkov. VoltDB ima

tudi izvoznega odjemalca, ki avtomatizira proces izvoza podatkov iz VoltDB-ja na Hadoop.

VoltDB se lahko integrira direktno s HDFS (Hadoop File System) ali pa preko Hadoopove

Sqoop tehnologije za uvoz. Standardni izvozni odjemalec VoltDB-ja zbere podatke iz

VoltDB-jeve zbirke, jih deserializira in jih shrani v medpomnilnik za prejemanje.

Odjemalec, ki izvaja izvoz podatkov, sproži procese za prejemanje in nalaganje ter jim

dostavi podatke; zatem so podatki naloženi v Hadoopovo podatkovno skladišče.

Page 31: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 23

Slika 4.6: Izvozni odjemalec s Hadoop integracijo

Razvoj aplikacij z VoltDB-jem

VoltDB s strani odjemalca ponuja več knjižnic, ki podpirajo prvotne mehanizme za dostop

do podatkovnih baz v različnih programskih jezikih. Večina teh knjižnic je razvita in

podprta s strani VoltDB-jeve ekipe. Nekatere knjižnice pa razvijajo člani odprtokodne

skupnosti.

VoltDB-jeve knjižnice Odprtokodne knjižnice

Java Python Erlang

C++ PHP Ruby

.Net(C#) HTTP/JSON Node.js

Tabela 4.1: Podprte knjižnice

Page 32: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 24

5 MERITEV IN RAZLAGA REZULTATOV

Za potrebe testiranja smo uporabili podatkovno zbirko OpenScience. Podatkovna zbirka

nacionalne infrastrukture odprtega dostopa je sestavljena iz metapodatkov o publikacijah

avtorjih zaključnih del (diplome, magisteriji in doktorati) in raziskovalnih publikacij

slovenskih univerz in drugih slovenskih zbirk (dLib, Videolectures.NET, DKMORS,

repozitorij SciVie ...). [29]

Filter iskanja (Slika 5.1: Filter iskanja točka 2) nam na podlagi podanega iskalnega niza

filtrira najbolj pogoste metapodatke in jih razporedi po naslednjih metapodatkih (Slika 5.1):

ključnih besedah,

letu izdaje dela,

avtorju,

repozitoriju,

jeziku,

tipologiji.

S tem uporabnikom olajšamo iskanje vsebine pri večji količini zadetkov, podanih glede na

podani iskalni niz. Izbira metapodatkov omogoča uporabnikom filtriranje in iskanje po

točno določenih kriterijih, ki jih uporabnik izbere. Uporabiti je mogoče več filtrov hkrati in s

tem uporabniku omogočiti natančnejše iskanje ter izločiti nezaželeno.

Naš namen testiranja je primerjava hitrosti poizvedb SQL, ki jih proži filter med izbiro

določenega kriterija, izbranega iz uporabniške strani. Pri tem pa smo uporabili scenarij

testiranja, najprej na enem strežniku, za tem pa pri enakih konfiguracijah in podatkih še na

dveh strežnikih. S tem smo pridobili jasno sliko glede razširljivosti in fragmentiranja

podatkovne baze VoltDB.

Page 33: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 25

Slika 5.1: Filter iskanja

5.1 Testno okolje

5.1.1 VoltDB

Podatkovna baza VoltDB je ponujena v dveh različicah, Enterprise Edition (produkcijska)

in Community Edition (odprtokodna). Odprtokodna ali Community različica zagotavlja

osnovno funkcionalnost z vsemi prednostmi transakcijske zmogljivosti. Medtem ko

Enterprise zagotavlja dodatne možnosti za podporo produkcijskemu okolju, kot so visoka

razpoložljivost, trajnost in dinamična razširljivost.

Za potrebe testiranja smo uporabili odprtokodno različico VoltDB Community Edition.

Pred samo namestivijo je bilo potrebno namesti dodatno programsko opremo:

Java 1.7

Apache Ant 1.7

GNU C++ 4.2

Page 34: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 26

Python 2.6

Eclipse IDE

Testiranje VoltDB-ja je potekalo na dveh strežnikih, ki imata naslednje konfiguracije:

Strežnik 1 Strežnik 2

Procesor Dual core 2.2 GHz Dual core 2.0 GHZ

Delovni pomnilnik 4.00 GB

Operacijski sistem Ubuntu 14.04.2 LTS

Tabela 5.1:Sistemske konfiguracije

5.2 Namestitev in konfiguracija VoltDB-ja

Pred samim zagonom podatkovne baze je potrebno ustvariti aplikacijski katalog.

Aplikacijski katalog vsebuje definicijo podatkovne sheme (Slika 5.2), shranjene procedure

ter navodila o fragmentiranju tabel in procedur. Tega prevedemo iz SQL datoteke v JAR

(Java arhiv) datoteko. Zraven aplikacijskega kataloga pa smo uredili še namestitveno

datoteko, kjer konfiguriramo na kolikih strežnikih bo podatkovna baza zagnana, koliko bo

zaščita K in koliko fragmentov naj ima posamezen strežnik. Za samo delo s podatkovno

bazo smo si ustvarili projekt v Eclipse razvojnem okolju, kjer smo ustvarili za vsako

proceduro razred, ki vsebuje poizvedbo in jo nato spremenili v JAR datoteko.

Page 35: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 27

Slika 5.2: ER diagram podatkovne baze

VoltDB temelji na fragmentiranju tabel in tudi procedur. Glede na omejitve procesorske

moči smo lahko fragmentirali 3 tabele. Zato smo izbrali najpogostejše stolpce, ki so

uporabljeni pri SQL poizvedbi. V našem primeru smo fragmetirali tabelo Metadata po

ključu RecordID_NR, Author po ključu ID ter Metadata_Author po ključu AuthorID. Za še

hitrejše iskanje po podatkih smo ustvarili indekse na naslednjih tabelah: Metadata_Author

(MetadataID); Metadata_Author (AuthorID, MetadataID); KljucneBesede (RecordID_NR);

Author (ID); Typology (ID).

5.2.1 Migracija podatkov iz MSSQL v VoltDB

Za migracijo podatkov iz Microsoftove podatkovne baze v podatkovno bazo VoltDB smo

uporabili Java aplikacijo. Z JDBC konektorjem smo se povezali na podatkovno bazo

MSSQL, kjer smo preko SQL poizvedb pridobili želene podatke. Te podatke smo z

uporabo VoltDB-jeve knjižnice vstavljali s stavkom INSERT in direktno polnili podatkovno

bazo VoltDB.

Page 36: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 28

5.2.2 Shranjene procedure in odjemalčeva aplikacija

Za primer testiranja smo napisali poizvedbo, ki je na podlagi izbranega iskalnega niza

našla sedem najpogostejših zadetkov. Kot vidimo na sliki (Slika 5.1: Filter iskanja), imamo

sedem različnih kategorij. Za vsako kategorijo (ključne besede, leto izdaje, avtorji,

repozitorij, tipologija, jezik) smo napisali proceduro, ki vsebuje poizvedbo. Zaradi

optimizacijskih potreb se zahtevnejše poizvedbe v VoltDB-ju vedno izvajajo kot procedure.

Procedure v VoltDB-ju se prevedejo in so zato veliko bolj učinkovite kot »ad-hoc«

poizvedbe. Tako smo za vsako proceduro ustvarili svoj razred (Tabela 5.2) in vse razrede

prevedli v JAR datoteke. Procedure smo potem klicali iz aplikacije, ki je bila napisana v

Javi.

V spodnjem odseku kode je klic procedure iz aplikacije. V našem primeru smo vsako

proceduro izvajali 1000-krat in izračunali povprečen čas izvajanja posamezne transakcije.

results = client.callProcedure("Avtor", (Object) temp).getResults();

Tabela 5.3: Primer klica shranjene procedure iz aplikacije

public class Avtor extends VoltProcedure {

public final SQLStmt topAvtor = new SQLStmt(

"SELECT TOP 7 COUNT(*) N, A.Name , Surname FROM Author A "

+ "INNER JOIN Metadata_Author MA on MA.AuthorID = A.ID "

+ "INNER JOIN Metadata M on M.ID = MA.MetadataID "

+ "WHERE M.RecordID_NR IN ? "

+ "GROUP BY A.Name, A.Surname "

+ "ORDER BY N DESC;");

public VoltTable[] run(int[] indexi) throws VoltAbortException {

voltQueueSQL(topAvtor,(Object) indexi );

VoltTable[] queryrezultat = voltExecuteSQL();

return queryrezultat;

}

}

Tabela 5.2: Shranjena procedura Avtor

Page 37: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 29

5.3 Meritev časa posamezne transakcije glede na količino

podatkov in število zadetkov

Meritve smo izvajali na podlagi števila podatkov in števila vrnjenih rezultatov izbrane

poizvedbe. Tako smo izmerili povprečen čas izvajanja ene transakcije nad podatki. V

tabelah so podani rezultati, kjer nam ena vrstica prikazuje časovne rezultate izvajanja ene

procedure, ki je bila sprožena 1000-krat. S tem smo pridobili povprečni čas izvajanja

posamezne transakcije.

Za uporabniški scenarij smo uporabili iskalni ključ »Android«. Po iskalnem ključu smo

preko poizvedbe poiskali 7 najpogostejših zadetkov za vse kategorije. V tabeli5.4) imamo

podane meritve časov transakcije. V tretjem stolpcu imamo podane rezultate na enem

strežniku, v četrtem stolpcu pa meritve časov, ko je podatkovna baza porazdeljena na

dveh strežnikih.

V tabelah so zajeti naslednji podatki:

št. zadetkov – skupno število vrnjenih vrstic SQL poizvedbe,

št. podatkov – število podatkov v tabeli, na katero je podana poizvedba,

povprečni čas izvajanja posamezne procedure na enem strežniku v

milisekundah,

povprečni čas izvajanja posamezne procedure na dveh strežnikih v

milisekundah.

Tabela 5.4: Meritve časov transakcij

Št. zadetkov Št. podatkov v

tabeli

Procedura avtor

62 2.135 2,2 4,29

469 4.270 3,8 6,08

1.674 6.405 5,57 7,25

3.968 8.540 9,62 9,28

31.744 17.080 72,15 31,98

62.000 21.350 79,1 66,48

496.000 42.700 518,92 273,17

1.674.000 64.050 1619,51 986,92

7.750.000 106.750 7323,63 4636,62

Procedura kljucne besede

Page 38: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 30

136 4.672 1,94 4,1

544 9.344 3,34 6,62

1.224 14.016 4,7 6,11

2.176 18.688 6,09 7,45

8.704 37.376 27,66 14,62

13.600 46.720 23,72 23,19

54.400 93.440 62,95 34,65

122.400 140.160 111,96 73,6

340.000 233.600 242,3 153,8

Procedura topologija

26 118 1,72 3,99

104 236 3,52 6,37

234 354 4,46 5,96

416 472 7,01 7,15

1.664 844 26,2 13,37

2.600 1180 22,52 22,63

10.400 2360 60,04 33,38

23.400 3540 103,52 71,21

65.000 5900 248,1 137,57

Procedura jezik

26 32 1,65 3,67

104 64 3,03 5,93

234 96 4,36 5,98

416 128 5,58 7,14

1.664 256 22,91 13,15

2.600 320 19,84 18,88

10.400 640 52,46 28,46

23.400 960 84,38 51,27

65.000 1.600 189,53 108,2

Procedura leto

26 927 1,69 3,25

104 1.854 2,81 5,57

234 2.781 3,77 5,98

416 3.708 4,73 7,14

1.664 7.413 17,22 13,15

2.600 9.270 13,71 18,88

10.400 18.540 28,98 28,46

23.400 27.810 37,62 51,27

65.000 46.350 64,5 108,2

Page 39: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 31

5.4 Razlaga rezultatov

Zgornja tabela (Error! Reference source not found.) prikazuje, kako se vrednosti časov

transakcij spreminjajo glede na količino podatkov in število vrnjenih vrstic SQL poizvedbe.

Procedura avtor vsebuje poizvedbo, ki združuje tri tabele (Metadata, Metadata_Author,

Avtor) in nam vrne 7 najpogostejših avtorjev, ki imajo po vseh metapodatkih največ

ujemanj glede na iskalni niz. Proženje procedure oz. poizvedbe nad podatkovno bazo na

enem strežniku pri majhni količini je skoraj 95 % hitrejše, kot je pri porazdeljenosti na

dveh. Z dodajanjem novih podatkov se povečuje število del, s tem pa tudi število zadetkov

(avtorjev). V našem primeru opazimo, da je podatkovna baza na enem strežniku hitrejša

do meje, ko je število podatkov še dokaj majhno. Po tej meji pa je povprečna podatkovna

baza porazdeljena na dveh strežnikih za 33 % hitrejša.

Graf 5.1: Procedura avtor

Enako razmerje časov vidimo tudi pri procedurah jezik, ključne besede, topologija. Vsaka

od teh procedur ima shranjeno poizvedbo, ki združuje po dve tabeli. Pri majhni količini

podatkov je podatkovna baza bistveno hitrejša kot porazdeljena na dveh strežnikih. Vse

do prehoda meje, kjer porazdeljenost podatkovne baze na dveh strežnikih postane

povprečno 30 % hitrejša.

Page 40: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 32

Graf 5.2: Procedura ključne besede

Graf 5.3: Procedura topologija

Page 41: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 33

Graf 5.4: Procedura jezik

Bistveno pa odstopajo časi pri proceduri leto. Procedura ima shranjeno poizvedbo, ki ima

povpraševanje v eni tabeli. V našem primeru poizvedba SQL išče indekse RecordID_NR,

ki imajo shranjeno določeno leto nastanka (datum nastanka dela, članka itd. ). Ker pri

tabeli Metadata nismo imeli ustvarjenega indeksa, je iskanje počasnejše. Stolpec, ki

vsebuje vrednost letoIzdaje, ni indeksiran, ker po proizvajalčevih predlogih za skrbništvo

podatkovne baze ni priporočljivo, da se na stolpcih, kjer ni veliko različnih vrednosti,

ustvarjajo dodatni indeksi. S tem opazimo tudi razliko v časih. Pri majhni količini podatkov

v bazi je povpraševanje na enem strežniku hitrejše za 75 % kot na dveh. Pri večji količini

se ta razlika nekoliko zmanjša, kjer je en strežnik še vedno hitrejši za povprečno 23 %.

Graf 5.5: Procedura leto

Page 42: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 34

Page 43: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 35

6 SKLEP

Glavni cilji diplomske naloge je bil, da predstavnimo nove relacijske podatkovne modele.

V teoretičnem delu smo na kratko predstavili razvoj nerelacijskih podatkovnih modelov

NoSQL ter relacijskih NewSQL. Osredotočili smo se na podatkovno bazo VoltDB, ki je

ena izmed popularnejših predstavnikov NewSQL tehnologije.

V praktičnem delu diplomske naloge smo naredli analizo, kjer smo spremljali časovne

razlike posameznih transakcij in horizontalno razširljivost celotne podatkovne baze. Glede

na to, da je testiranje potekalo na strežnikih skoraj minimalnih zahtev za obratovanje, kot

jih priporoča proizvajalec za delovanje podatkovne baze, je podatkovna baza VoltDB

dokaj hitra. Iz tega pa je tudi vidno, da je veliko odvisno tudi od same procesorske moči in

razpoložljivega pomnilniškega prostora, ko se število podatkov povečuje.

Prišli smo do ugotovitve, da lahko s podatkovno bazo VoltDB zadostimo nekaterim

pogojem, ki bi jih potrebovali pri vzpostavitvi podatkovne zbirke nacionalne infrastrukture

odprtega dostopa. Potrebno bi bilo na novo načrtovati konceptualni nivo podatkovne baze

in ga prilagoditi za potrebe, ki jih določa arhitektura podatkovne baze VoltDB. Ker pa

nacionalna infrastruktura odprtega dostopa trenutno že hrani veliko količino shranjenih

metapodatkov in z vsakim dnem postopoma narašča, bi nastal problem glede

pomnilniškega prostora.

Pri projektni nalogi smo naleteli na več problemov glede omejitev, ki jih ima podatkovna

baza VoltDB. Med te sodi pomanjkanje implementacije SQL sintakse in omejitev velikosti

ene domene v stoplpcu na 1 MB. Zaradi te omejitve smo morali izločiti stolpec PlainText,

ki je bil v prvotni podatkovni shemi. Ta stolpec je namreč imel velikost nekaterih vrednosti,

tudi do več 100 MB. S temi omejitvami smo morali poseči tudi po spremembah v

podatkovni shemi.

Za uporabo testiranja smo uporabili odprtokodno različico VoltDB-ja, ki nam ne omogoča

shranjevanja posnetkov podatkovne baze, kar nam je zelo otežilo delo s samim ponovnim

nalaganjem podatkov.

Page 44: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 36

Iz doseženih rezultatov lahko sklepamo, da se sistemi NewSQL lahko primerjajo s

tradicionalnimi relacijsko podatkovnimi modeli v nekaterih določenih primerih. Glede na to,

da je VoltDB predstavljen v večini kot OLTP model, za potrebe OLAP ni ravno primeljiv.

Razširljivost je pri VoltDB-ju precej poenostavljena. Glede same razporeditve podatkov po

posameznih fragmentih baze, kakor tudi dodajanje novih vozlišč, je precej lažje kot pri

nekaterih drugih modelih. Ker se v današnjih časih vse bolj uveljavlja računalništvo v

oblaku, je to velika prednost.

Page 45: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 37

7 VIRI

[1] A Journey From SQL to NoSQL to NewSQL https://www.cloudave.com/25272/a-

journey-from-sql-to-nosql-to-newsql/ [Internet, obiskano dne 13. 9. 2015]

[2] Michael Stonebraker, NewSQL vs. NoSQL for New OLTP

https://www.usenix.org/conference/lisa11/newsql-vs-nosql-new-oltp [Internet, obiskano

dne 13. 9. 2015]

[3] Andraz Tori, SQL or NoSQL, that is the question!

http://www.slideshare.net/andraz/sql-or-nosql-that-is-the-question [Internet, obiskano dne

13. 9. 2015]

[4] Girish Kumar, Exploring the different types of nosql databases

http://www.3pillarglobal.com/insights/exploring-the-different-types-of-nosql-databases

[Internet, obiskano dne 13. 9. 2015]

[5] James Manyika, Michael Chui, Big data: The next frontier for innovation, competition,

and productivity

http://www.mckinsey.com/insights/business_technology/big_data_the_next_frontier_for_in

novation [Internet, obiskano dne 13. 9. 2015]

[6] Prasanna Venkatesh, Nirmala S, NewSQL — The New Way to Handle Big Data

http://opensourceforu.efytimes.com/2012/01/newsql-handle-big-data/ [Internet, obiskano

dne 13. 9. 2015]

[7] A B M Moniruzzaman, NewSQL: Towards Next-Generation Scalable RDBMS for

Online Transaction Processing (OLTP) for Big Data Management

http://arxiv.org/ftp/arxiv/papers/1411/1411.7343.pdf [Internet, obiskano dne 13. 9. 2015]

[8] Technical Overview VoltDB white paper

http://downloads.voltdb.com/datasheets_collateral/technical_overview.pdf[Internet,

obiskano dne 13. 9. 2015]

Page 46: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 38

[9] Jeff Sultelman, Volt DB Demo

https://www.youtube.com/watch?v=FE5paxqPUPc [Internet, obiskano dne 13. 9. 2015]

[10] Choo Yun-cheol Spanner, a Globally Distributed Database by Google

http://www.cubrid.org/blog/dev-platform/spanner-globally-distributed-database-by-google/

[Internet, obiskano dne 13. 9. 2015]

[11] Introduction To NewSQL, http://dwhlaureate.blogspot.si/2014/03/introduction-to-

newsql.html [Internet, obiskano dne 13. 9. 2015]

[12] Rick Nelson, NewSQL takes advantage of main-memory databases like H-Store

http://www.evaluationengineering.com/2015/02/25/newsql-takes-advantage-of-main-

memory-databases-like-h-store/ [Internet, obiskano dne 13. 9. 2015]

[13] John Piekos, NewSQL - answer to Big Data's challenges?

https://voltdb.com/blog/newsql-answer-big-datas-challenges [Internet, obiskano dne 13. 9.

2015]

[14] Ryan Betts, NoSQL vs. NewSQL: Choosing the right tool

https://voltdb.com/blog/nosql-vs-newsql-choosing-right-tool [Internet, obiskano dne 13. 9.

2015]

[15] Michael Stonebraker, New SQL: An Alternative to NoSQL and Old SQL for New

OLTP Apps http://cacm.acm.org/blogs/blog-cacm/109710-new-sql-an-alternative-to-nosql-

and-old-sql-for-new-oltp-apps/fulltext [Internet, obiskano dne 13. 9. 2015]

[16] Wilson A Higashino, Data management in cloud environments: NoSQL and NewSQL

data stores http://www.journalofcloudcomputing.com/content/2/1/22 [Internet, obiskano

dne 13. 9. 2015]

[17] Rakesh Kumar, Neha Gupta, Critical Analysis of Database Management Using

NewSQL, http://ijcsmc.com/docs/papers/May2014/V3I5201499a2.pdf [Internet, obiskano

dne 13. 9. 2015]

[18] Matt Aslett

Page 47: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 39

https://451research.com/biography?eid=333 [Internet, obiskano dne 13. 9. 2015]

[19] Stavros Harizopoulosr, OLTP Through the Looking Glass, and What We Found

There http://nms.csail.mit.edu/~stavros/pubs/OLTP_sigmod08.pdf [Internet, obiskano dne

13. 9. 2015]

[20] Bill Kleyman, What is a clustered database?

http://insidehpc.com/2006/07/what-is-a-clustered-database/ [Internet, obiskano dne 13. 9.

2015]

[21] Laurent Guérin, NewSQL: what’s this?

http://labs.sogeti.com/newsql-whats/ [Internet, obiskano dne 13. 9. 2015]

[22] Christof Strauch, NoSQL Databases

http://www.christof-strauch.de/nosqldbs.pdf [Internet, obiskano dne 13. 9. 2015]

[23] Eric Brewer, CAP Twelve Years Later: How the "Rules" Have Changed

http://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed

[Internet, obiskano dne 13. 9. 2015]

[24] SogetiLabs, Our top 10 2014: NewSQL – what’s this?

http://labs.sogeti.com/our-top-10-2014-newsql-whats-this/ [Internet, obiskano dne 13. 9.

2015]

[25] Matt Aslett, Choosing a Next Gen Database: the New World Order of NoSQL,

NewSQL, and MySQL

http://www.slideshare.net/ScaleBase/choosing-a-next-gen-database-the-new-world-order-

of-no-sql-newsql-and-mysq [Internet, obiskano dne 13. 9. 2015]

[26] Community edition VoltDB

https://github.com/VoltDB/voltdb/wiki [Internet, obiskano dne 13. 9. 2015]

[27] Nataša Knez, Primerjava relacijske in NoSQL podatkovne baze in opredelitev

kriterijev za pomoč pri izbiri najprimernejše podatkovne baze,http://eprints.fri.uni-

lj.si/1630/1/Knez1.pdf [Internet, obiskano dne 13. 9. 2015]

Page 48: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 40

[28] VoltDB dokumentacija

http://docs.voltdb.com/ [Internet, obiskano dne 13. 9. 2015]

[29] Nacionalni portal odprte znanosti, http://openscience.si/OpenData.aspx [Internet,

obiskano dne 13. 9. 2015]

[30] Jernej Sila, Primerjava NewSQL podatkovnih baz NuoDB in VoltDB

http://eprints.fri.uni-lj.si/2958/ [Internet, obiskano dne 13. 9. 2015]

[31 Big Data Meets Big Data Analytics

http://www.sas.com/content/dam/SAS/en_us/doc/whitepaper1/big-data-meets-big-data-

analytics-105777.pdf [Internet, obiskano dne 13. 9. 2015]

[32] Podatkovne baze NoSQL, Aljaž Zrnec, Lovro Šubelj

http://www.dlib.si/preview/URN:NBN:SI:DOC-2Y2OFHMX/7a330754-3742-4262-9ce5-

76f0e5b9ed42 [Internet, obiskano dne 13. 9. 2015]

[33] Jana Medved, Big data tehnologije za analizo velike količine poslovnih podatkov

https://dk.um.si/IzpisGradiva.php?id=45019&lang=slv [Internet, obiskano dne 13. 9. 2015]

[34] Dietner Mario, Uporaba nosql podatkovnih baz za generiranje poročil detektorja

plagiatov https://dk.um.si/IzpisGradiva.php?id=36499&lang=slv [Internet, obiskano dne

13. 9. 2015]

Page 49: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 41

Page 50: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 42

Page 51: Uporaba podatkovnih baz NewSQL pri obdelavi velikih ... · Usage of NewSQL databases for processing of big data Keywords: databases, NewSQL, NoSQL, VoltDB. UDK: 004.65(043.2) Abstract:

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Stran 43