sql vs nosql joomlafestival
TRANSCRIPT
1
{
"_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
3
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
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
InternetofEverything
IPv6 può indirizzareogni quark del mondoEverything
� IPv6 = 2^1283,4e+38
6
del mondo
7
Strutturati / non-strutturati
Volume
8
� Volume� Velocità� Velocità� Varietà� Veracità
9
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
11
Next Generation Databases mostly addressing some of the points:
� non -relationaldistributed� distributed
� horizontal scalable� open -source
da www.nosql-database.org
12
� Key / value
� Column
� Document
� Graph
13
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
Schemaless(dinamico/implicito)
15
DenormalizzazioneAggregato
Aggregati sonol’elemento di base per lo storage
Semplice data model
Blob/Opaco
16
Solo 3 funzioni (API)• Get(key)• Set(key, value)• Delete(key)
Key e value possono essere complessi
Più trasparente
JSON(JavaScript Object Notation)
17
è un formato adatto all'interscambio di dati tra applicazioni client-serverFacile per umani e macchine leggere escrivere
ColumnColumnSparse semi structured,sorted map.
Numero di colonne flessibile
18
Come è memorizzato
� Teoria dei grafi G = ( V, E )� memorizza, mappa and query Relazioni
•Nodi connessi da archi
19
•Relazioni complesse
•Raccomandazione prodotti
•ACID
Queries = Attraversamento grafo
�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
21
� 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
Verticale (up)Più potenza (ram/cpu/disk)
Orizzontale (out)Più commodity systems
23
� 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
� 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
� Master / Slave� Multi / Master
� Sincrono� Sincrono� Asincrono
� Ridondanza� Aumenta availability� Failover (automatico)
26
Maria NickData
Get(X)T0
Get(X)T1
Put(X)
27
T2
Put(X)
Put(X)T3
Transazione:Una sequenza di operazioni che formano un’ unità
Le Transazioni hanno 4 proprietà� Le Transazioni hanno 4 proprietà� Atomicità� Consistenza� Isolamento� Durevolezza
28
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
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
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
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
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
� 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
� 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
Nick Maria
Chi prenderà il prossimo volo ?
EU US
36
Chi prenderà il prossimo volo ?
� 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
In assenza di partizioniLa scelta è tra:La scelta è tra:latenza (L) e consistenza (C)
38
39
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