310 likes | 534 Views
NOSQL n aivus ir trumpas įvadas. Kas a š ?. 11+ metų. Ramas. NOSQL. Durnas pavadinimas!. Nieko bendro su SQL kalba Dalis NoSQL bazių palaiko SQL NoSQL yra buzzword‘as Skirtingos DB Privalumai vs Trūkumai. Kodėl?. Kam užkliuvo tradicinės RDB?. RDB yra nuostabios ! Paprastos
E N D
Kas aš ? 11+ metų Ramas
NOSQL Durnas pavadinimas! • Nieko bendro su SQL kalba • Dalis NoSQL bazių palaiko SQL • NoSQL yra buzzword‘as • Skirtingos DB • Privalumai vs Trūkumai
Kodėl? Kam užkliuvo tradicinės RDB? • RDB yra nuostabios! • Paprastos • Model first, query later • RDB yra turtingos! • Ekosistema • Standartai, sukauptos žinios • RDB yra patikimos! • ACID transakcijos • Apribojimai ir griežtas duomenų modelis
ACID Sveikatos ministerija perspėja • Atomicity • Viskas arba nieko • Consistency • Isolation • Lygiagrečiai = Nuosekliai • Durability • Nesikeičia laike
RDB trūkumai • Programiniai • Prieinamumo užtikrinimas • Griežta schema • Modelis neatitinka panaudojimo (ORM) • Technika • Vienas serveris, scale-up • Greitis • Kaina
Kodėl? BigData buzzzzzzzz.... Duomenų kiekis
PAVYZDŽIAI bigdata • Facebook, Linkedin, Netflix.. • Nedaro įspūdžio • Vidutinė apimtis – gigabaitai • Paprasti pavyzdžiai • Nuobodūs! • Optimizacija padeda • Nesureikšminamos problemos NOT impressed
CAP teorema Dar žinoma kaip Brewers teorema • Paskirstytoje sistemoje... • ...neįmanoma garantuoti: • Consistency • Availability • Partition tolerance A C P
ALTERNATYVA ! BasicallyAvailable, Soft state, Eventuallyconsistent BASE
NoSQL Didelė šeima • Dažniausiai: • Lentelės nėra pagrindas • Nėra struktūrinės kalbos • Horizontaliai plačios: • Paprastos operacijos • Replikacija ir Šardai • Taikymas specifinis
Poliglotai Ateitis? • Skirtingos kalbos – skirtingi tikslai • Javascript • Yra ir priešingas judėjimas • Skirtingos DB? Sesijų informacija Finansiniai duomenys Pirkinių krepšelis Rekomendacijų sistema Prekių katalogas Įvairios ataskaitos Log‘ai Analizė
NOSQL tipai O dieve ... Transaction support Analytics support Indexing Distribution Replication Persistence Data model
sPOILER ALERT! VISA tiesa apie NOSQL vienoje skaidrėje $$ * * Yra papildomų sąlygų
NoSql tipai Key/Value, Document, Column FAMILY, Graph serializuota informacija reikšmė raktas
Grynas K/V Esminės sąvybės • Turint raktą • Operacijos greitos... • ... ir paprastos • Nėra schemos • DB neatsako už reikšmes • Kompromisai • Prieinamumas > tikslumas • Paprastas > turtingas
Grynas K/V Pavyzdžiai • Memcached • Tik atmintyje • Pademonstravo indeksavimo galią • Riak @ basho • Visada yra prieinamas • Voldemort @ linkedin • Panaudojimas • „flash mob“ puslapiai
NoSql tipai Key/Value, Document, Column FAMILY, Graph { "firstName": "John", "lastName": "Smith", "age": 25, } ... serializuota informacija "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021"
Document Key/Value viduje kitos Key/Value 20
Document pavyzdžiai • Taikymas • CMS / CRM / Komentarai / Dokumentų sistemos • CouchDB@ apache • Iš anksto žinomos užklausos • Masterless replikos • Duomenys akumuliuojasi, keičiasi nedažnai • MongoDB@ 10gen • Dinamiškos užklausos + indeksai • Vietoj MySQL/PostgreSQL • „Jeigu norėjot CouchDB, bet duomenys keičiasi per dažnai“
NoSql tipai Key/Value, Document, Column FAMILY, Graph serializuota informacija stulpeliai su reikšmėmis raktas
Column FAMILY principai [Šeima:ID] Stulpelio raktas . Taisykles / politika . Reikšmes versijos . Eilutes raktas (Eilutes raktas, stulpelio raktas, laikas) -> Reikšme . .
COLUMN family Pavyzdžiai Consistency • HBase @ apache • BigTable • Milžiniški duomenų kiekiai • Dalis Hadoop eko-sistemos • Žinučių sistemos analizė • Cassandra @ apache • BigTable + Dynamo • Rašymo > skaitymo • Finansai, bankininkystė, logai • Cookie DB Availability
Graph Esminės sąvybės • Ypatinga struktūra • Labai tinka: • Socialiniams tinklams • Viešam transportui • Navigacijai • Tinklai • Rekomendacijos
Kritika Everybody‘s doing it. NOT! • Kas naudoja NoSQL • Startupai • Kodėl sunku parduoti • No ACID = ne neNE! • Primityviprieiga • NoSQL = NoStandards • Nemokamų pietų nebūna
Ką darom su NoSQL • Kovojam su duomenų augimu • Ieškome alternatyvų • CitrusLeaf • IBM Netezza • HP Vertica • Sybase IQ
Ką darom su NoSQL • Naudojame NoSQL • Cassandra • MongoDB • CouchDB • SQL Lite • Hadoop & Hive • Event store • Visgi neatsisakome RDBVS
Rekomendacijos • Žinokite ko jums reikia • Nepersistenkite • Būkite atsargūs • Eksperementuokite • Naudokite skirtingas technologijas • Kombinuokite • Debesų kompiuteriją • Pritaikykite sau • Nebijokite permainų!