SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
1
{
"_id": "555ae00a475a9b259281b21a",
"name": "Nicola Galgano",
"alias": "alikon",
"gender": "maschile","gender": "maschile",
"work": “consulente software bancario",
"company": “ …sto cercando… ",
"email": "info@alikonweb.it",
"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 nonrichiedere 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 PBHuman brain 2.5 PB
LHC 1 PB/s
Net traffic 1 ZB/year
5
Internet
of
Everything
IPv6 può indirizzare
ogni quark
del mondo
Everything
IPv6 = 2^128
3,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 hours
99 % (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-relational
distributeddistributed
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
Denormalizzazione
Aggregato
Aggregati sono
l’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-server
Facile per umani e
macchine leggere e
scrivere
ColumnColumn
Sparse 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 intensiveRead intensive or Write intensive
Complessità delle queries
22
Schemaless Normalizzato
Modello
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
SincronoSincrono
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 > 100
3. A=A-100
4. Write(A)
5. Read(b)
6. B=B+100
7. Write(B)
29
AACCIDID -- ConsistenzaConsistenza
Trasferire 100€ da A a B
1. Read(a)
2. If A > 1002. If A > 100
3. A=A-100
4. Write(A)
5. Read(B)
6. B=B+100
7. Write(B)
30
ACACIIDD -- IsolamentoIsolamento
Trasferire 100€ da A a B
1. Read(A)
2. If A > 100If A > 100
3. A=A-100
4. Write(A)
5. Read(B)
6. B=B+100
7. Write(B)
31
ACIACIDD -- DurabilitàDurabilità
Trasferire 100€ da A a B
1. Read(A)
2. If A > 100If A > 100
3. A=A-100
4. Write(A)
5. Read(b)
6. B=B+100
7. 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 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
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 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
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 partizioni
La 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 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

Contenu connexe

En vedette

Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossaGian Maria Ricci
 
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraCassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraJeremy Hanna
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013Myti S.r.l.
 
NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non RelazionaliNoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non RelazionaliSteve Maraspin
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai databaseMaurizio Napolitano
 
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...Aruba S.p.A.
 

En vedette (10)

Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossa
 
Corso Oracle
Corso OracleCorso Oracle
Corso Oracle
 
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraCassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
 
NOSQL
NOSQLNOSQL
NOSQL
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
 
Survey on NoSQL Database
Survey on NoSQL DatabaseSurvey on NoSQL Database
Survey on NoSQL Database
 
NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non RelazionaliNoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai database
 
Database introduzione
Database introduzioneDatabase introduzione
Database introduzione
 
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
 

Similaire à Sql vs nosql joomlafestival

Data mining Winter Lab conference
Data mining Winter Lab conferenceData mining Winter Lab conference
Data mining Winter Lab conferenceFelice Russo
 
Elasticsearch a quick introduction
Elasticsearch a quick introductionElasticsearch a quick introduction
Elasticsearch a quick introductionFederico Panini
 
Big: alla scoperta dei Big Data
Big: alla scoperta dei Big DataBig: alla scoperta dei Big Data
Big: alla scoperta dei Big DataAlumni Mathematica
 
Big Data Conference Ottobre 2013
Big Data Conference Ottobre 2013Big Data Conference Ottobre 2013
Big Data Conference Ottobre 2013Carlo Vaccari
 
Modello Puzzle per l'AppQuiz
Modello Puzzle per l'AppQuizModello Puzzle per l'AppQuiz
Modello Puzzle per l'AppQuizinformistica
 
Industrial Iot - IotSaturday
Industrial Iot - IotSaturday Industrial Iot - IotSaturday
Industrial Iot - IotSaturday Riccardo Zamana
 
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"Franco Caporale
 
Social Media Lab - Search & Research - Daniele Frongia
Social Media Lab - Search & Research - Daniele FrongiaSocial Media Lab - Search & Research - Daniele Frongia
Social Media Lab - Search & Research - Daniele FrongiaSocial Media Lab
 
Visualizzazione dei network
Visualizzazione dei networkVisualizzazione dei network
Visualizzazione dei networkmttdlllbr
 

Similaire à Sql vs nosql joomlafestival (9)

Data mining Winter Lab conference
Data mining Winter Lab conferenceData mining Winter Lab conference
Data mining Winter Lab conference
 
Elasticsearch a quick introduction
Elasticsearch a quick introductionElasticsearch a quick introduction
Elasticsearch a quick introduction
 
Big: alla scoperta dei Big Data
Big: alla scoperta dei Big DataBig: alla scoperta dei Big Data
Big: alla scoperta dei Big Data
 
Big Data Conference Ottobre 2013
Big Data Conference Ottobre 2013Big Data Conference Ottobre 2013
Big Data Conference Ottobre 2013
 
Modello Puzzle per l'AppQuiz
Modello Puzzle per l'AppQuizModello Puzzle per l'AppQuiz
Modello Puzzle per l'AppQuiz
 
Industrial Iot - IotSaturday
Industrial Iot - IotSaturday Industrial Iot - IotSaturday
Industrial Iot - IotSaturday
 
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
 
Social Media Lab - Search & Research - Daniele Frongia
Social Media Lab - Search & Research - Daniele FrongiaSocial Media Lab - Search & Research - Daniele Frongia
Social Media Lab - Search & Research - Daniele Frongia
 
Visualizzazione dei network
Visualizzazione dei networkVisualizzazione dei network
Visualizzazione dei network
 

Sql vs nosql joomlafestival

  • 1. 1
  • 2. { "_id": "555ae00a475a9b259281b21a", "name": "Nicola Galgano", "alias": "alikon", "gender": "maschile","gender": "maschile", "work": “consulente software bancario", "company": “ …sto cercando… ", "email": "info@alikonweb.it", "twitter": "@alikon", "address": "Roma, Italy, EU“, “hobby”:”fuggire dai dentisti” } 2
  • 3. 3
  • 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
  • 5. Grande quanto?Grande quanto? DVD 4.7 GB Human brain 2.5 PBHuman brain 2.5 PB LHC 1 PB/s Net traffic 1 ZB/year 5
  • 6. Internet of Everything IPv6 può indirizzare ogni quark del mondo Everything IPv6 = 2^128 3,4e+38 6 del mondo
  • 7. 7
  • 10. 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 hours 99 % (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. 11
  • 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
  • 16. Semplice data model Blob/Opaco 16 Solo 3 funzioni (API) • Get(key) • Set(key, value) • Delete(key) Key e value possono essere complessi
  • 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
  • 18. ColumnColumn Sparse semi structured, sorted map. Numero di colonne flessibile 18 Come è memorizzato
  • 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
  • 21. 21
  • 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
  • 23. Verticale (up) Più potenza (ram/cpu/disk) Orizzontale (out) Più commodity systems 23
  • 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
  • 26. Master / Slave Multi / Master SincronoSincrono Asincrono Ridondanza Aumenta availability Failover (automatico) 26
  • 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
  • 29. AACIDCID -- AtomicitàAtomicità Trasferire 100€ da A a B 1. Read(a) 2. If a > 1002. If a > 100 3. A=A-100 4. Write(A) 5. Read(b) 6. B=B+100 7. Write(B) 29
  • 30. AACCIDID -- ConsistenzaConsistenza Trasferire 100€ da A a B 1. Read(a) 2. If A > 1002. If A > 100 3. A=A-100 4. Write(A) 5. Read(B) 6. B=B+100 7. Write(B) 30
  • 31. ACACIIDD -- IsolamentoIsolamento Trasferire 100€ da A a B 1. Read(A) 2. If A > 100If A > 100 3. A=A-100 4. Write(A) 5. Read(B) 6. B=B+100 7. Write(B) 31
  • 32. ACIACIDD -- DurabilitàDurabilità Trasferire 100€ da A a B 1. Read(A) 2. If A > 100If A > 100 3. A=A-100 4. Write(A) 5. Read(b) 6. B=B+100 7. Write(B) 32
  • 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
  • 36. Nick Maria Chi prenderà il prossimo volo ? EU US 36 Chi prenderà il prossimo volo ?
  • 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
  • 39. 39
  • 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