25
Nerelacijska sadašnjost, budućnost i primjene Mihovil Rister Pet Minuta

Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Embed Size (px)

Citation preview

Page 1: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Nerelacijska sadašnjost, budućnost i primjene

Mihovil Rister

Pet Minuta

Page 2: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Pregled predavanja

• Uvod o NoSQL-u

• Kada, gdje, zašto?

• Najbolje prakse

• Bududnost NoSQL-a

• Zaključak predavanja (Hint: Poly... ...ence)

Page 3: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Š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).

Page 4: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.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

Page 5: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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."

Page 6: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Raznovrsnost NoSQL-a

Bogatstvo izbora za skoro sve domene problema!

Page 7: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Povijest NoSQL-a

Vedinom se pojavljuju u skorije vrijeme, iz potrebe udovoljavanju DANAŠNJIM zahtjevima i problemima

Page 8: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Svojstva baza

• ACID -> uglavnom RDBMS• BASE -> uglavnom NoSQL

ACID :A – atomicitet. C – konzistentnost. I – izolacija. D – durabilnost.

BASEBASIC AVAILABILITYSOFT STATEEVENTUAL CONSISTENCY

• 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)

Page 9: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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: CouchDB (ACID compliant), MongoDB, TerraStore, Lotus Notes (možda i najstariji)

• Wide Column/Colum Oriented:Google BigTable, Apache Cassandra, Hadoop/Hbase/Hypertable, Amazon SimpleDb

• Graph:Neo4J, InfiniteGraph, VertexDb, FlocDb, ...

• Object:db4O, Versant, Objectivity, NEO

• XML, Multivalue i ostale

OObjectDatabase db = newOObjectDatabaseTx("remote:localhost/petshop").open("admin", "admin");db.getEntityManager().registerEntityClass(Person.class);

Person p = db.newInstance(Person.class);p.setName( „Marko" );p.setSurname( „Markovid" );p.setCity( new City( „Rovinj", „Hrvatska" ) );

db.save( p );db.close();

Page 10: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Klasifikacija po svojstvima

Page 11: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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)

Page 12: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

No SQL sada

I developeri sve više shvadaju važnost posjedovanja NoSQL skillova i iskustva

Page 13: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Zašto koristiti No-SQL?

Pros:

• Radite s velikim i nestrukturiranim podacima

• Brzina unosa (i opdenito) je bitna

• Konzistentnost nije pretjerano bitna

• Imate kompleksne relacije

• Želite jednostavno i lako skalirati (scale in and scale out)

• Nemate budžet za skupe RDBMS licence

• Želite ubrzati razvoj aplikacija

• Ne trebate komplicirani querying

• Visoka dostupnost podataka

• Cloud, PaaS

• Želite da vaše aplikacije/sustavi djeluju moderno i sexy

Cons ( prednost na strani RDBMS-a):

• Radite sa strukturiranim podacima koji lako „sjedaju” u tablice

• Skaliranje (out) ili shardiranje vam nije teško ili uopde potrebno

• Konzistentnost je najbitnija (financije i ostali bitni podaci se ne smiju gubiti niti čekati)

• Imate budžet

• Imate stručne i efikasne developere za rad s RDBMS

• Čuli ste za NoSQL (hype) i po svaku cijenu ga morate implementirati jer je to sada In :-S

• Volite se držati starog i poznatog („better the devil you know than the devil you don't ”)

Page 14: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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 !

Page 15: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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• Clickstreams, • Online-Offiline data syncing• Igre, Logističke aplikacije• Read Only aplikacije• Cache• DMS, CMS, User management• Arhiviranje• Load Redistribution

• Ticketing /rezervacijski sustavi• Posluživanje oglasa• Machine learning• Detekcije jezika• Sustavi za putovanja• Social aplikacije• Simulacije• Protein folding• Fraud detection• Stock trading• ...

Page 16: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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)

Page 17: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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,...)

Page 18: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Š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)

Page 19: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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

• ...

Page 20: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Budućnost NoSQL-a

• 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.

Market Research Media Ltd.

Page 21: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

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)

Page 22: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Zaključak

• Jednostavni primjer poslovne aplikacije po polyglot persistanceu

Brzo pisanje i čitanje.Durabilnost nije jako bitna.

Potrebna ACID sigurnost (transakcijski update-ovi).

Visoka dostupnost na svim lokacijamai spajanje nekonzistentnih zapisa.

Brzo pretraživanje po prijateljima, linkovima, poveznicama, rejtingu...

Puno čitanja, malo pisanja. Proizvod je savršen primjer.

SQL je odličan za integriranje u ved postojedereporting sustave.

Analitika velike skale na velikom klasteru.

Velika količina zapisa podataka na veliki broj nod-ova.

Page 23: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Literatura

• NoSQL Databases - Christof Strauch, Stuttgart Media University

• NoSQL Distilled A Brief Guide to the Emerging World of Polyglot PersistencePramod J. Sadalage, Martin Fowler Addison Wesley

• The future is: Ployglot PersistencePramod J. Sadalage, Martin Fowler

• Professional NoSQLShashank Tiwari, Wiley (ISBN: 978-0-470-94224-6)

• nosql-database.org

Page 24: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Kontakt

• Mihovil Rister

mail [email protected] http://www.linkedin.com/in/mihovilrister

http://www.fiveminutes.eu

Page 25: Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4

Kraj! – Hvala na pažnji!