3. Što je NoSQL? (1/2)
• Sustavi namijenjeni nadopuni (a ne uvijek isključivo zamjeni) RDBMS.
• Bijeg od „One size fits all” načina razmišljanja (Nestrukturirani podaci).
4. Što je NoSQL? (2/2)
• Robustni distribuirani sustavi za pohranu podataka
• Schema-less - fleksibilnost pri radu s
nestrukturiranim podacima
• Super brzi, super skalabilni
• Rade izvrsno na commodity hardveru
• Nisu skupi (često Open Source)
• Novi sustavi, sustavi u razvoju
• Big Data – odlično barataju velikom količinom
podataka
5. Evolucija
"It is not the strongest of the species that survives, nor the most intelligent that
survives. It is the one that is the most adaptable to change."
7. Povijest NoSQL-a
Vedinom se pojavljuju u skorije vrijeme, iz potrebe
udovoljavanju DANAŠNJIM zahtjevima i problemima
8. Svojstva baza
• ACID -> uglavnom RDBMS
• BASE -> uglavnom NoSQL
ACID : BASE
A – atomicitet. BASIC AVAILABILITY
C – konzistentnost. SOFT STATE
I – izolacija. EVENTUAL CONSISTENCY
D – durabilnost.
• Baza je dostupna u osnovi cijelo vrijeme
(BA)
• Ne mora biti konzistentna cijelo vrijeme (S)
• Ali de biti u nekom poznatom stanju s
vremenom (E)
9. Koje vrste postoje ?
• Prema modelu pohrane djele se na:
• Key-value/tuple :
Redis, Oracle NoSQL (ACID compliant), Riak, Tokyo Cabinet / Tyrant,
Voldemort, Amazon Dynamo, Memcached
• Document: OObjectDatabase db = new
CouchDB (ACID OObjectDatabaseTx("remote:localhost/petshop").open("admin", "admin");
compliant), MongoDB, TerraStore, Lotus Notes (možda i
db.getEntityManager().registerEntityClass(Person.class);
najstariji)
• Wide Column/Colum Oriented:
Person p = db.newInstance(Person.class);
p.setName( „Marko" );
Google BigTable, Apache Cassandra, Hadoop/Hbase/Hypertable, Amazon
p.setSurname( „Markovid" );
SimpleDb p.setCity( new City( „Rovinj", „Hrvatska" ) );
• Graph: db.save( p );
Neo4J, InfiniteGraph, VertexDb, FlocDb,
db.close(); ...
• Object:
db4O, Versant, Objectivity, NEO
• XML, Multivalue i ostale
11. NoSQL danas
• Iako su to često sustavi tek u razvoju, prihvadenost je velika
• Tko koristi (tko je prepoznao vrijednost):
• Uglavnom svi Big data igrači :
Google, Facebook, Amazon, Linked-In, Twitter,...
• Telekomi:
Siemens, Ericsson, Qualcomm,...
• Znanost:
CERN (MongoDB), Big data genomics (Cassandra),
Sveučilišta
• Vojska, aeronautika, info portali (BBC), Startup-i i mnogi
drugi
• Mnogi NoSQL imaju ozbiljne limitacije, koje je bitno poznavati
• More resursa za učenje/administraciju/marketing (Hot topic)
12. No SQL sada
I developeri sve više shvadaju važnost posjedovanja NoSQL skillova i iskustva
13. Zašto koristiti No-SQL?
Pros: Cons ( prednost na strani RDBMS-a):
• Radite s velikim i nestrukturiranim • Radite sa strukturiranim podacima koji
podacima lako „sjedaju” u tablice
• Brzina unosa (i opdenito) je bitna • Skaliranje (out) ili shardiranje vam nije
• Konzistentnost nije pretjerano bitna teško ili uopde potrebno
• Imate kompleksne relacije • Konzistentnost je najbitnija (financije i
• Želite jednostavno i lako skalirati ostali bitni podaci se ne smiju gubiti niti
(scale in and scale out) čekati)
• Nemate budžet za skupe RDBMS • Imate budžet
licence • Imate stručne i efikasne developere za
• Želite ubrzati razvoj aplikacija rad s RDBMS
• Ne trebate komplicirani querying • Čuli ste za NoSQL (hype) i po svaku
• Visoka dostupnost podataka cijenu ga morate implementirati jer je
• Cloud, PaaS to sada In :-S
• Želite da vaše aplikacije/sustavi • Volite se držati starog i poznatog
djeluju moderno i sexy („better the devil you know than the
devil you don't ”)
14. Kako odabrati? (SQL vs NoSQL)
• Jako dobro poznavati domenu problema koju Vaša
aplikacija/sustav ima (u smislu pohrane podataka).
• Ako je bitna konzistentnost podataka i analitika tada RDBMS
• Ako su bitni dostupnost, tolerantnost na kvarove i laka
skalabilnost tada NoSQL
• Ne biti ograničen sa ILI. Zašto ne i I ? SQL+NoSQL
• I najbitnije od svega:
PROBAJTE - POKUŠAJTE – EKSPERIMENTIRAJTE !
15. Općenite NoSQL najbolje prakse (Use cases)
Dobri primjeri pametnog korištenja:
• Velika količina podataka, nestrukturirani podaci npr. sustavi za
pohranu u strojarstvu, aeronautici, telekomunikacijama i medicini
• Mail, Pretraživanje, Online storage, Social, Big Inventory
• Domain Driven Design sustavi i Model Driven Design Web aplikacije
• Weblogs • Ticketing /rezervacijski sustavi
• Clickstreams, • Posluživanje oglasa
• Online-Offiline data syncing • Machine learning
• Igre, Logističke aplikacije • Detekcije jezika
• Read Only aplikacije • Sustavi za putovanja
• Cache • Social aplikacije
• DMS, CMS, User management • Simulacije
• Arhiviranje • Protein folding
• Load Redistribution • Fraud detection
• Stock trading
• ...
16. Općenite NoSQL najbolje prakse
• Detaljno poznavati problematiku koju pokušavate riješiti i ograničenja
tehnologije koju implementirate
• Testirati iscrpno
• Prihvatiti (ili odbiti) rješenje sa konkretnim realnim i tehničkim
razlozima
• Dobro poznavati potrebe Vaših podataka (durabilnost, dostupnost i
konzistencija u vremenu)
• Nikako podrazumjevati da de se sve iz RDBMS-a se lako pretočiti u neki
NoSQL
• Koristite sve feature koje rješenje pruža (npr. replikacija, failover
opcije, ...)
• Detaljno nadgledajte bazu u radu!!
• Tražite dobru (i dobro dokumentiranu) integriranost s drugim poznatim
i prihvadenim alatima /tehnologijama (Lucene, SOLR)
17. NoSQL situacija
Trenutno vidimo:
• Sve bolju prihvadenost
• Ogroman i rastudi broj uspješnih deploymenta
(pogotovo MongoDb)
• Puno bolja podrška od popularnih (JAVA) frameworka i
tehnologija (JPA, JCA).
Spring Data: (Neo4j, MongoDB), Eclipse Link:
(MongoDb, Oracle-NoSQL) , Morphia, Hibernate
OGM,...
• Gotovo sva NoSQL rješenja imaju podršku za JAVA-u, a i
druge moderne tehnologije i jezike (REST, JavaScript,...)
18. Što očekujemo u budućnosti od NoSQL-a?
• Jednostavnija administracija (-> 0 administration)
• Veda zrelost (Maturity)
• Bolji security i bolji Query-ing. Standardizacija?
• Da pojedina rješenja poprave svoje limitacije i ostale „dječje
bolesti”
• Bolja podrška za mobilne platforme
• Veda uporaba u enterprise i embedded sustavima (J2EE
pogotvo)
• Bolja J2EE podrška (pristiže u novim verzijama JAVA-e)
• Više Cloud providera (Hosting)
19. Budućnost NoSQL-a
• U zadnje vrijeme NoSQL tržište je vrlo aktivno sa puno
venture fundinga, akvizicija i spajanja (mergera)
• May 2012 – 10gen secures $42 million in venture
funding
• November 2011 – Cloudera Inc., the provider of
Apache Hadoop-based data management software
and services, raises $40 million
• November 2011 – Basho, the company behind Riak,
raises $5 Mln
• ...
20. Budućnost NoSQL-a
Market Research Media Ltd.
• Svjetsko NoSQL tržište de dosedi 3.4 milijarde USD do 2018 uz CAGR od 21%
između 2013 i 2018!
• NoSQL tržište de generirati 14 milijardi USD prihoda u periodu 2013 – 2018.
21. Zaključak
Bududnost je: Polyglot Persistence !!
• Korištenje više tehnologija za pohranu
podataka, odabranih po načinu na koji de se ti
podaci koristiti u aplikaciji (ili aplikacijama)
22. Zaključak
• Jednostavni primjer poslovne aplikacije po polyglot persistanceu
Brzo pisanje i čitanje. Potrebna ACID sigurnost Visoka dostupnost na svim lokacijama Brzo pretraživanje
Durabilnost nije jako bitna. (transakcijski update-ovi). i spajanje nekonzistentnih zapisa. po prijateljima,
linkovima,
poveznicama,
rejtingu...
Puno čitanja, malo pisanja. SQL je odličan za Analitika velike skale na Velika količina zapisa podataka
Proizvod je savršen primjer. integriranje u ved postojede velikom klasteru. na veliki broj nod-ova.
reporting sustave.
23. Literatura
• NoSQL Databases - Christof Strauch, Stuttgart Media
University
• NoSQL Distilled A Brief Guide to the Emerging World of
Polyglot Persistence
Pramod J. Sadalage, Martin Fowler Addison Wesley
• The future is: Ployglot Persistence
Pramod J. Sadalage, Martin Fowler
• Professional NoSQL
Shashank Tiwari, Wiley (ISBN: 978-0-470-94224-6)
• nosql-database.org
24. Kontakt
• Mihovil Rister
mail mihovil.rister@fiveminutes.eu
linkedin http://www.linkedin.com/in/mihovilrister
http://www.fiveminutes.eu
Reći ćemo nešto općenito o NoSQl, što je to, što predstavlja, koje vrste postoje, koje mu je mijesto u svijetu!Nabrojiti neke najbolje prakse i povuci paralelu sa RDBMS.Reci cemo, takodjer i nesto o tome sto vidimo danas i sto nas ceka u buducnostiPovuci zakljucak
Solucije za pohranu, prema DANAŠNJIM zahtjevima
Široka skupina proizvoda za rješavanje problema iz različitih domena (često teško ili loše rješivih s RDBMS)Naglasak na brzini, jednostavnosti, dostupnosti i tolerantnosti na kvarove Žrtvuju se svojstva poput konzistentnostiIzbjegavanje nepotrebne kompleksnosti
IZ grafa primijetiti postojanje NoSQl baza od pocekta 80tih te kasnije totalnu dominaciju RDBMS-a sve do skorijeg vremena.
A - atomicitet Ako jedan dio transakcije ne uspije, niti će cijela transkacijaC – konzistentnost. Sva ograničenja moraju biti zadovoljena da bi transakcija uspjela.I – izolacija. Druge operacije nemogu vidjeti transakciju koja nije kompletirana.D – durabilnost. Kada je transakcija uspjela, ona neće biti izgubljena. Perzistirana je.-------------------------------------------------------------------------------------------------------BASEEventualna konzistentnost znači da će, u nekoj točki, sustav postati konzistentan jednom kada se svi upisi (writes) propagiraju po svim node-ovima
Objasni malo rjecima, rukama sto je key value, Document i sve ostale
Primjetimo iz grafa kako su pozicionirani NoSQLsustavi prema modelu pohrane u odnosu veličine i složenosti podataka.
Generalno, puno prostora za napredak, unatoč velikoj prihvaćenostiNeki NoSQL imaju slabiju ili nikakvu dokumentaciju ili komercijalnu podrškuČesto slab ili nikakav built in security
Htio bih da na ovom grafu vidite dvije bitne stvari:1: MongoDb je car a ni redis nije los2: Postoji i hrpetina drugih baza (na legendi). Znači developere NoSQl baze to privlače
Znati vlastite limitacije (proizvoda, projekta, ljudstva,..)Znati dobro limitacije pojedinih NoSQL rješenja
Document management – savršeno za document NoSQL-oveSkalabilne web usluge (Cloud):
Ne podleći hypeuPokušajte ne razmišljati u okvirima RELACIJSKOGNe koristi 32-bitna rješenja (doughhhhh!)
Sve traženiji i neophodniji skill na tržištu radaPorast broja NoSQL rješenja (250+)
..i puno toga Veća količina kadra koji dobro poznaje materiju
Vidjeli smo da je to živahno i zanimljivo tržište te tehnološka niša sa svijetlom budućnosti, no što je zapravo budućnost pohrane podataka (pa i NoSQL-a) u poslovnim (enterprise) sustavima?Zašto binarnu sliku skladištiti u relacijskoj bazi ?Zašto financijske transakcije (update) raditi na eventualno konzistentnoj NoSQL bazi?SQL + NoSQL
Evo nešto malo o meni, odakle dolazim tko sam i kako me možete kontaktirati.
Imate pitanja? Super! Zapamtite pa će te me pitati poslije