NoSQL - Adform | Academy

Download Report

Transcript NoSQL - Adform | Academy

Dionizas
Ramūnas
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!
Turtinga eko sistema
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
6
KODĖL?
BIGDATA BUZZZZZZZZ....
7
Metrika
Kiekis
Vartotojai
1.15 M
Serveriai
180 K
Duomenų srautas
500 TB per dieną
Nuotraukų įkėlimas
300 M per dieną
„Like“ paspaudimai
2,7 B per dieną
CAP TEOREMA
DAR ŽINOMA KAIP BREWERS TEOREMA
Paskirstytoje sistemoje...
...neįmanoma garantuoti:
Consistency
Availability
Partition tolerance
A
C
P
10
ACID
Stiprus nuoseklumas
Izoliacija
Sutelktas dėmesys į “commitą"
Tranzakcija tranzakcijoje
Prieinamumas
Konservatyvumas (pesimizmas)
Sudėtingas plėtimas (schema)
BASE
Toreluojamas nenuoseklumas
Pasiekiamumas
„Best effort“
Apytikriai atsakymai
Agresyvumas (optimizmas)
Paprastumas
Greitis
Lengvas vystymas
11
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
12
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, COLUMN, DOCUMENT, GRAPH
serializuota
informacija
reikšmė
raktas
15
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
16
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, COLUMN FAMILY, DOCUMENT, GRAPH
serializuota
informacija
raktas
stulpeliai su
reikšmėmis
18
COLUMN FAMILY
PRINCIPAI
Stulpelio
raktas
.
Eilutes
raktas
.
Reikšmes
versijos
[Šeima:ID]
.
Taisykles
/ politika
. raktas, stulpelio raktas, laikas) -> Reikšme.
(Eilutes
COLUMN FAMILY
PAVYZDŽIAI
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
Consistency
Availability
NOSQL TIPAI
KEY/VALUE, COLUMN, DOCUMENT, GRAPH
{
"firstName": "John",
"lastName": "Smith",
"age": 25,
serializuota
informacija
}
...
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
21
Document
Key/Value viduje kitos Key/Value
22
22
DOCUMENT
PAVYZDŽIAI
Taikymas
CMS / CRM / Komentarai / Balsavimas
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“
DOCUMENT
GRAPH
ESMINĖS SĄVYBĖS
Ypatinga struktūra
Labai tinka:
Socialiniams tinklams
Viešam transportui
Navigacijai
Tinklai
25
KRITIKA
EVERYBODY‘S DOING IT. NOT!
Kas naudoja NoSQL
Startupai
Kodėl sunku parduoti
No ACID = ne ne NE!
Primityvi prieiga
NoSQL = NoStandards
Nemokamų pietų nebūna
KĄ DAROM SU NOSQL
Kovojam su duomenų augimu
Ieškome alternatyvų
CitrusLeaf
IBM Netezza
HP Vertica
Sybase IQ
27
KĄ DAROM SU NOSQL
Naudojame NoSQL
Cassandra
MongoDB
SQL Lite
Hadoop & Hive
Visgi neatsisakome RDBVS
28
REKOMENDACIJOS
Žinokite ko jums reikia
Nepersistenkite
Būkite atsargūs
Eksperementuokite
Naudokite skirtingas technologijas
Kombinuokite
Debesų kompiuteriją
Pritaikykite sau
Nebijokite permainų!
29
30