Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
HUJAK NoSQL - mihovil rister
1. HUJAK – Hrvatska Udruga Java
Korisnika
Ne relacijske alternative.
NOSQL
2. O MENI
Mihovil Rister, dipl.ing.el.
Software developer
Pet Minuta d.o.o.
Linked In:
hr.linkedin.com/in/mihovilrister
mihovil.rister@gmail.com
3. PREGLED PREDAVANJA
Što je NoSQL ?
Odakle potreba?
Teorija
Glavni igrači
SQL vs NoSQL. Tko je bolji?
Očekivanja
Zaključak
4. Š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
5. 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
6. 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.
7. 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
8. 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
9. 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
11. 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.
12. 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
13. GLAVNI NOSQL IGRAČI
Kategorizacija i Usporedba
Tip Performan Skalabilno Fleksibilno Kompleksno Funkcionalno
se st st st st
Key-Value Visoke Visoka Visoka Niska Ovisi
Column Visoke Visoka Umjerena Niska Minimalna
Document Visoke Visoka Visoka Niska Ovisi
Teorija
Graph Ovisi Ovisi Visoka Visoka
grafova
Relacijska
RDBMS Ovisi Ovisi Niska Umjerena
algebra
Categorization and Comparison by Scofield and Popescu
14. GLAVNI NOSQL IGRAČI
Key - Value baze:
Redis
Oracle NoSQL (ACID compliant)
Riak
TokyoCabinet/Tyrant
Voldemort
Amazon Dynamo
Memcached
....
Linked-In, Amazon, BestBuy, Github, AOL,...
15. GLAVNI NOSQL IGRAČI
Wide Column/Column oriented baze
Google BigTable
Apache Cassandra
Hadoop/Hbase/Hypertable
Amazon SimpleDb
Amazon, Google, Facebook,
RealNetworks..
16. 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...
17. GLAVNI NOSQL IGRAČI
Objektne baze
db4O
Versant
Objectivity
NEO
...
Siemens, Int Ag, China telecom, European
Space Agency...
19. 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)
20. 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
21. 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