22
NOSQL Ne relacijske alternative. HUJAK – Hrvatska Udruga Java Korisnika

HUJAK NoSQL - mihovil rister

Embed Size (px)

Citation preview

NOSQLNe relacijske alternative.

HUJAK – Hrvatska Udruga Java Korisnika

O MENI

Mihovil Rister, dipl.ing.el.

Software developer

Pet Minuta d.o.o.

Linked In:hr.linkedin.com/in/mihovilrister

[email protected]

PREGLED PREDAVANJA

Što je NoSQL ?

Odakle potreba?

Teorija

Glavni igrači

SQL vs NoSQL. Tko je bolji?

Očekivanja

Zaključak

ŠTO JE NOSQL?

NoSQL = Not only SQL Suprotnost ustaljenim rel. bazama Hype? – skepticizam je prisutan, ali NoSQL i nije

toliko nov Nije direktna zamjena RDBMS Alternativa ili nadopuna Izbjegavanje nepotrebne kompleksnosti Bijeg od „One size fits all” načina razmišljanja Rješenja za pohranu podataka prema DANAŠNJIM potrebama

Rješenja bez fiksne sheme

POTREBA ?

Relacijski model je star (Codd 1969) Pokriti nedostatke RDBMS za današnje potrebe Imati vrhunsku skalabilnost Efektivno raditi s ogromnom količinom podataka

(Big Data) Smanjiti kompleksnost i trošak razvoja s

jednostavnošću (izbaciti ORM, jeftinija rješenja) Veliki pokretač NoSQL-a je računarstvo u oblaku

(CLOUD) Prioritet su Dostupnost i Tolerancija na kvarove Općenito efektivan rad na svom commodity

hardware-u

TEORIJA

ACID (uglavnom RDBMS, no ne isključivo!) A – atomicitet. Ako jedan dio transakcije ne

uspije, niti će cijela transkacija. C – konzistentnost. Sva ograničenja moraju

biti zadovoljena da bi transakcija uspjela. I – izolacija. Druge operacije ne mogu vidjeti

transkaciju koja nije kompletirana. D – durabilnost. Kada je transakcija uspjela,

ona neće biti izgubljena. Perzistirana je.

TEORIJA

BASE (pretežito NoSQL baze) BASIC AVAILABILITY SOFT STATE EVENTUAL CONSISTENCY Baza je dostupna u osnovi cijelo vrijeme

(BA), ne mora biti konzistentna cijelo vrijeme (S) ali će biti u nekom poznatom stanju s vremenom (E)

Apsolutna konzistentnost je glavni fokus RDBMS, ali ne NoSQL

TEORIJA

BASE svojstva su dijametralno suprotna od ACID. ACID :

- pesimističan - forsira konzistentnost na kraju svake operacije

BASE :- optimističan - prihvaća da će konzistentnost baze biti u promijenjivom stanju

U realnom svijetu, kako se nositi s time? To je izvedivo i dovodi do razina skalabilnosti koje

se ne mogu postići rješenjima s ACID svojstvima.

TEORIJA

CAP (Eric Brewer) Teorem 3 poželjne karakteristike distribuiranog sustava

C – konzistentnost. Svaki node u sustavu ima iste podatke (npr. replike su dobro sinkronizirane).

A – dostupnost. Sustav je dizajniran tako da je dostupan i radi iako (neki) nodovi ne rade.

P – particiona tolerantnost. Sustav će nastaviti raditi do potpunog mrežnog kvara.

Teorem kaže da robustan sustav koji želi dobro skalirati može imati SAMO 2 karakteristike

Bilo ACID ili BASE

TEORIJA

TEORIJA

Prema CAP: ACID = C + P BASE = A + P A što je sa C + A ?

Google-ov Bigtable je takvo rješenje Što koristiti u vlastitim projektima? Razmisliti o zahtjevima aplikacije i

postupiti po njima. ACID + BASE kombinacija je također u igri.

GLAVNI NOSQL IGRAČI

NoSQL su u glavnom: Key-Value/Tuple baze Wide Column/Column oriented baze Document baze Object baze Graph baze XML, Multivalue i ostale

GLAVNI NOSQL IGRAČI

Kategorizacija i Usporedba

Tip Performanse

Skalabilnost

Fleksibilnost

Kompleksnost

Funkcionalnost

Key-Value Visoke Visoka Visoka Niska Ovisi

Column Visoke Visoka Umjerena Niska Minimalna

Document Visoke Visoka Visoka Niska Ovisi

Graph Ovisi Ovisi Visoka Visoka Teorija grafova

RDBMS Ovisi Ovisi Niska Umjerena Relacijska algebra

Categorization and Comparison by Scofield and Popescu

GLAVNI NOSQL IGRAČI

Key - Value baze: Redis Oracle NoSQL (ACID compliant) Riak Tokyo Cabinet/Tyrant Voldemort Amazon Dynamo Memcached ....

Linked-In, Amazon, BestBuy, Github, AOL,...

GLAVNI NOSQL IGRAČI

Wide Column/Column oriented baze Google BigTable Apache Cassandra Hadoop/Hbase/Hypertable Amazon SimpleDb

Amazon, Google, Facebook, RealNetworks..

GLAVNI NOSQL IGRAČI

Document baze CouchDB (ACID compliant) MongoDB TerraStore Lotus Notes (možda i najstariji) ...

Razne financijske i druge bitne institucije, vojska (U.S.), SAP, MTV, SourceForge...

GLAVNI NOSQL IGRAČI

Objektne baze db4O Versant Objectivity NEO ...

Siemens, Int Ag, China telecom, European Space Agency...

GLAVNI NOSQL IGRAČI

Graph baze: Neo4J InfiniteGraph VertexDb FlocDb

Twitter, Nortler, Ericson, Qualcomm, Siemens,...

SQL VS NOSQL. TKO JE BOLJI?

U osnovi, sve ovisi o potrebama aplikacije

Ništa nije crno i bijelo Ako je bitna konzistentnost tada

RDBMS Ako je bitna dostupnost, tolerannost na

kvarove i skalabilnost tada NoSQL A može i SQL+NoSQL (Best of both

worlds)

OČEKIVANJA

Od NoSQL baza se očekuje da budu: Elastične u skaliranju, ekonomične, jednostavne i

fleksibilne Izazovi koji stoje pred njima:

Zrelost Kvalitetnija podrška (komercijalna) Bolja pogodnost za analitiku i BI 0-administration (pomalo nerealno, ali opet...) Dostupna prihvatljiva ekspertiza (iskusni inženjeri i

admini) Robusniji i jači, ugrađeni sustavi sigurnosti

ZAKLJUČAK

NoSQL nije samo hype i mlada tehnologija Alternativa, uz poznata ograničenja i

mogućnosti RDBMS Killer ? – Nikako, više kao mlađi

brat/sestra koji polako stasava i preuzima dio tereta

Prihvaćenost je sve bolja i bit će kako NoSQL rješenja sazrijevaju

Skepticizam može biti opravdan, ali samo iz pravih, konkretnih razloga

KRAJ – QVEŠČNZ ?