Se state considerando di utilizzare nel vostro progetto un database NoSql, eccovi alcuni principi e considerazioni di fondamentale importanza da tener presente.
Dalla scelta del modello logico dei dati al modello fisico, consistenza o disponibilità (ACID o BASE).
Quali sono le implicazioni del teorema CAP, spiegato con esempi pratici.
4. Che cosa èChe cosa è
Big Data ?Big Data ?
Si parla di Big
Data quando si ha un
dataset grande da
richiedere strumenti nonrichiedere strumenti non
convenzionali per
estrapolare, gestire e
processare informazioni
entro un tempo
ragionevole.
da wikipedia
4
12. Next Generation Databases mostly addressing some of the points:
non-relational
distributeddistributed
horizontal scalable
open-source
da www.nosql-database.org
12
14. 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
17. Più trasparente
JSON
(JavaScript Object Notation)
17
è un formato adatto
all'interscambio di
dati tra applicazioni
client-server
Facile per umani e
macchine leggere e
scrivere
19. Teoria dei grafi G = ( V, E )
memorizza, mappa and query Relazioni
•Nodi connessi da archi
19
•Relazioni complesse
•Raccomandazione prodotti
•ACID
Queries = Attraversamento grafo
20. 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
22. Ci sono molti modi per modellare i dati
Come si accede ai dati
Read intensive or Write intensiveRead intensive or Write intensive
Complessità delle queries
22
Schemaless Normalizzato
Modello
24. 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
25. 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
28. Transazione:
Una sequenza di operazioni che formano un’ unità
Le Transazioni hanno 4 proprietàLe Transazioni hanno 4 proprietà
Atomicità
Consistenza
Isolamento
Durevolezza
28
33. 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 tempoLo 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
34. 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
35. E’ impossibile per un sistema distribuito garantire le 3
proprietà allo stesso tempo:
Consistency – tutti i nodi vedono gli stessi dati allo stesso tempoConsistency – 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
37. 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
38. In assenza di partizioni
La scelta è tra:La scelta è tra:
latenza (L) e consistenza (C)
38
40. ACID RDBMS BASE NOSQL
Forte consistenza
Isolamento
Transazioni
Debole consistenza (stale data)
Last write wins
Gestite a programmaTransazioni
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