sql vs nosql joomlafestival

40
1

Upload: alikonweb

Post on 15-Aug-2015

195 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: Sql vs nosql joomlafestival

1

Page 2: Sql vs nosql joomlafestival

{

"_id": "555ae00a475a9b259281b21a","name": "Nicola Galgano",

"alias": "alikon","gender": "maschile","gender": "maschile",

"work": “consulente software bancario","company": “ …sto cercando… ",

"email": "[email protected]","twitter": "@alikon",

"address": "Roma, Italy, EU“,“hobby”:”fuggire dai dentisti”

}2

Page 3: Sql vs nosql joomlafestival

3

Page 4: Sql vs nosql joomlafestival

Che cosa è Che cosa è Big Data ?Big Data ?Si parla di Big Data quando si ha un dataset grande da richiedere strumenti non richiedere strumenti non convenzionali per estrapolare, gestire e processare informazioni entro un tempo ragionevole.da wikipedia

4

Page 5: Sql vs nosql joomlafestival

Grande quanto?Grande quanto?

�DVD 4.7 GB

�Human brain 2.5 PB�Human brain 2.5 PB

�LHC 1 PB/s

�Net traffic 1 ZB/year

5

Page 6: Sql vs nosql joomlafestival

InternetofEverything

IPv6 può indirizzareogni quark del mondoEverything

� IPv6 = 2^1283,4e+38

6

del mondo

Page 7: Sql vs nosql joomlafestival

7

Page 8: Sql vs nosql joomlafestival

Strutturati / non-strutturati

Volume

8

Page 9: Sql vs nosql joomlafestival

� Volume� Velocità� Velocità� Varietà� Veracità

9

Page 10: Sql vs nosql joomlafestival

Availability Downtime/year Downtime/month Downtime/week

90 % (1 nine) 36.5 days 72 hours 16.8 hours

99 % (2 nines) 3.65 days 7.20 hours 1.68 hours99 % (2 nines) 3.65 days 7.20 hours 1.68 hours

99,9 % (3 nines) 8.76 hours 43.8 minutes 10.1 minutes

99,99 % (4 nines) 52.56 minutes 4.38 minutes 1.01 minutes

99,999% (5 nines) 5.26 minutes 25.9 seconds 6.05 seconds

10

Page 11: Sql vs nosql joomlafestival

11

Page 12: Sql vs nosql joomlafestival

Next Generation Databases mostly addressing some of the points:

� non -relationaldistributed� distributed

� horizontal scalable� open -source

da www.nosql-database.org

12

Page 13: Sql vs nosql joomlafestival

� Key / value

� Column

� Document

� Graph

13

Page 14: Sql vs nosql joomlafestival

Un data model è una rappresentazione che usiamo per percepire e manipolare i dati

•Modello Logico•Normalizzazione• 1NF,2NF,3NF,..

14

• 1NF,2NF,3NF,..• E-R • Schema (rigido)• Teoria degli insiemi

•Impedance mismatch

Page 15: Sql vs nosql joomlafestival

Schemaless(dinamico/implicito)

15

DenormalizzazioneAggregato

Aggregati sonol’elemento di base per lo storage

Page 16: Sql vs nosql joomlafestival

Semplice data model

Blob/Opaco

16

Solo 3 funzioni (API)• Get(key)• Set(key, value)• Delete(key)

Key e value possono essere complessi

Page 17: Sql vs nosql joomlafestival

Più trasparente

JSON(JavaScript Object Notation)

17

è un formato adatto all'interscambio di dati tra applicazioni client-serverFacile per umani e macchine leggere escrivere

Page 18: Sql vs nosql joomlafestival

ColumnColumnSparse semi structured,sorted map.

Numero di colonne flessibile

18

Come è memorizzato

Page 19: Sql vs nosql joomlafestival

� Teoria dei grafi G = ( V, E )� memorizza, mappa and query Relazioni

•Nodi connessi da archi

19

•Relazioni complesse

•Raccomandazione prodotti

•ACID

Queries = Attraversamento grafo

Page 20: Sql vs nosql joomlafestival

�The map job �The reduce job

Due separati e distinti compiti

�The map job takes a set of data and converts it into another set of data, where individual elements are broken down into tuples (key/value pairs)

�The reduce job takes the output from a map as input and combines those data tuples into a smaller set of tuples

20

I Tasks sono eseguiti in parallelo

Page 21: Sql vs nosql joomlafestival

21

Page 22: Sql vs nosql joomlafestival

� Ci sono molti modi per modellare i dati� Come si accede ai dati� Read intensive or Write intensive� Read intensive or Write intensive� Complessità delle queries

22

Schemaless NormalizzatoModello

Page 23: Sql vs nosql joomlafestival

Verticale (up)Più potenza (ram/cpu/disk)

Orizzontale (out)Più commodity systems

23

Page 24: Sql vs nosql joomlafestival

� 1. La rete è affidabile.� 2. La latenza è nulla.� 3. La banda è infinita.� 4. La rete è sicura.� 4. La rete è sicura.� 5. La topologia non cambia.� 6. C'è un solo amministratore.� 7. Il costo di trasporto è nullo.� 8. La rete è omogenea.

24

Page 25: Sql vs nosql joomlafestival

� Dividere i dati in diversi “blocchi”� Salva ogni blocco in nodi separati e distinti

� “The shard key“ strategia di partizionamento� Multishard ops (Join/aggregate) � Bilanciare il carico dei nodi

25

Page 26: Sql vs nosql joomlafestival

� Master / Slave� Multi / Master

� Sincrono� Sincrono� Asincrono

� Ridondanza� Aumenta availability� Failover (automatico)

26

Page 27: Sql vs nosql joomlafestival

Maria NickData

Get(X)T0

Get(X)T1

Put(X)

27

T2

Put(X)

Put(X)T3

Page 28: Sql vs nosql joomlafestival

Transazione:Una sequenza di operazioni che formano un’ unità

Le Transazioni hanno 4 proprietà� Le Transazioni hanno 4 proprietà� Atomicità� Consistenza� Isolamento� Durevolezza

28

Page 29: Sql vs nosql joomlafestival

AACIDCID -- AtomicitàAtomicitàTrasferire 100€ da A a B

1. Read(a)2. If a > 1002. If a > 1003. A=A-1004. Write(A)5. Read(b)6. B=B+1007. Write(B)

29

Page 30: Sql vs nosql joomlafestival

AACCID ID -- ConsistenzaConsistenza

Trasferire 100€ da A a B

1. Read(a)2. If A > 1002. If A > 1003. A=A-1004. Write(A)5. Read(B)6. B=B+1007. Write(B)

30

Page 31: Sql vs nosql joomlafestival

ACACIID D -- IsolamentoIsolamentoTrasferire 100€ da A a B

1. Read(A)2. If A > 100If A > 1003. A=A-1004. Write(A)5. Read(B)6. B=B+1007. Write(B)

31

Page 32: Sql vs nosql joomlafestival

ACIACIDD -- DurabilitàDurabilitàTrasferire 100€ da A a B

1. Read(A)2. If A > 100If A > 1003. A=A-1004. Write(A)5. Read(b)6. B=B+1007. Write(B)

32

Page 33: Sql vs nosql joomlafestival

Basically Available:� Ci sarà una risposta ad ogni richiesta� Veloce risposta anche se qualche replica è lenta o down

Soft State:Lo stato del sistema può cambiare nel tempo� Lo stato del sistema può cambiare nel tempo

� E’ compito dell’applicazione garantire la consistenza

Eventual consistent:� Il sistema diverrà eventualmente consistente quando non ci

saranno più input da elaborare

� I dati sarrano propogati su ogni replica

33

Page 34: Sql vs nosql joomlafestival

� Nick trova una bella foto e la condivide con Maria postandola sulla sua Facebook wall

� Nick chiede a Maria un parere� Maria si logga nel suo account, cerca sul suo FacebookMaria si logga nel suo account, cerca sul suo Facebook

wall ma:- Non c’è nulla! (a parte una x rossa)

� Nick chiede a Maria di riprovare tra un pò� Maria aspetta un minuto è riprova:- Finalmente trova la bella foto e la commenta

34

Page 35: Sql vs nosql joomlafestival

� E’ impossibile per un sistema distribuito garantire le 3 proprietà allo stesso tempo:

� Consistency – tutti i nodi vedono gli stessi dati allo stesso tempo� Consistency – tutti i nodi vedono gli stessi dati allo stesso tempo

� Availability – tutti possono sempre leggere e scrivere� Partition tollerance – il sistema funziona sempre*

� Un sistema distribuito soddisfa solo 2 allo stesso tempo

35

Page 36: Sql vs nosql joomlafestival

Nick Maria

Chi prenderà il prossimo volo ?

EU US

36

Chi prenderà il prossimo volo ?

Page 37: Sql vs nosql joomlafestival

� ATM permettono di prelevare denaro anche se sono disconnessi dal server centrale

37

� Maggiore disponibilità significa più guadagni

� Comunque ci sono dei limiti al prelievo� La banca applica commissioni in caso di scoperto

Page 38: Sql vs nosql joomlafestival

In assenza di partizioniLa scelta è tra:La scelta è tra:latenza (L) e consistenza (C)

38

Page 39: Sql vs nosql joomlafestival

39

Page 40: Sql vs nosql joomlafestival

ACID RDBMS BASE NOSQL

� Forte consistenza� Isolamento� Transazioni

� Debole consistenza (stale data)� Last write wins� Gestite a programma� Transazioni

� Tecnologia mature� SQL

� Available & consistent� Scale up (limitato)

� Shared something (disk/ram/proc)

� Gestite a programma

� Nuova tecnologia� No standard

� Available & partition tolerant� Scale out (non-limitato*)

� Shared nothing (parallelismo)

40