Corso di Basi di Dati
Introduzione ai Database NoSQL
Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
Introduzione ai database NoSQL
NoSQLà Movimento che promuove l’adozione di DMBS non basati sul modello relazionale.
² Il termine NOSQL appare per la prima volta in una pubblicazione di Carlo Strozzi nel 1998.
² Oggi, il termine NOSQL viene usato per lo più nell’accezione NoT Only SQL.
“Next generation databases mostly addressing some of the points:
being non-relational, distributed, open source and horizzontally scalable” (definizione da http://nosql-database.org/)
Introduzione ai database NoSQL
² Database distribuiti
² Strumenti generalmente open-source
² NON dispongono di schema
² NON supportano operazioni di join
² NON implementano le proprietà ACID delle transazioni
² Sono scalabili orizzontalmente
² Sono in grado di gestire grandi moli di dati
² Supportano le repliche dei dati
PROPRIETA dei SISTEMI NO-SQL
Introduzione ai database NoSQL
Motivazioni legate alla diffusione dei database NoSQL:
² Gestione dei Big-data
² Limitazioni del modello relazionale
² Teorema CAP
Introduzione ai database NoSQL
Big data: moli di dati, eterogenee, destrutturate, difficili da gestire attraverso tecnologie tradizionali.
² Il termine big-data è oggi usato sia per denotare tipologie di dati, sia le tecnologie e i tool di
gestione degli stessi.
² Tecnologie tradizionali à RDBMS
Introduzione ai database NoSQL
² Volume: Big data = grosse moli di data
Esempio: Dati da esperimenti scientifici
Acceleratore di particelle del
CERN
² 600 milioni di collisioni al secondo
² 30 Petabyte di dati annui relativi ai collision event
http://home.web.cern.ch/about/computing
Introduzione ai database NoSQL
Un esempio di sorgente di Big-Data: Sensoristica
7
From an Internet of Humans … to an Internet of Things …
Source: Cisco IBSG, April 2011
8
Introduzione ai database NoSQL
Introduzione ai database NoSQL
Un esempio di sorgente di Big-Data: Sensoristica
9
GOOGLE NEST
(domotica) (e-health) ALIVECOR
(automazione industriale)
(automotive)
Introduzione ai database NoSQL
Un esempio di sorgente di Big-Data: Sensoristica
Esempio: BARCELLONA SMART CITY
SMART LIGHTINING SMART WASTE MANAGEMENT
Introduzione ai database NoSQL
Un esempio di sorgente di Big-Data: Sensoristica
² Le applicazioni legate alla sensoristica possono generare moli ingenti di dati, a frequenza costante o variabile.
² Tuttavia, più che il contenuto dei dati singoli, spesso l’interesse delle applicazioni è rivolto alla conoscenza “estraibile” dai dati.
SISTEMA REALE
Introduzione ai database NoSQL
Data Mining: tecniche di apprendimento computerizzato per analizzare ed estrarre conoscenze da collezioni di dati.
Pattern e relazioni non note a priori e non immediatamente identificabili.
Disciplina complessa: utilizzo di tecniche di machine learning, intelligenza
artificiale e statistiche …
Un esempio di sorgente di Big-Data: Dispositivi mobili
Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010
2. SHARE
3. ANALYZE
4. PROVIDE SERVICES
13
Introduzione ai database NoSQL
Introduzione ai database NoSQL
² Volume: Big data = grosse moli di data
Complessità bassa Complessità media Complessità alta MB
GB TB PB
Introduzione ai database NoSQL
² Velocity: Big data = stream di dati
Esempio: Sistemi health-care http://www-03.ibm.com/press/us/en/pressrelease /40624.wss?cm_mc_uid=34296522129514448284754
&cm_mc_sid_50200000=1444828475
Early-Warning System
² Predict rising brain pressure in patients with traumatic brain injuries.
² Stream di 1000 dati al secondo.
Introduzione ai database NoSQL
² Variety: Big data = dati eterogenei, multi-sorgente
DBMS OPERATIVO SOCIAL MEDIA
SITO WEB
REPORT
Introduzione ai database NoSQL
GARTNER HYPE CYCLE, 2014
Introduzione ai database NoSQL
² Acquisizione
q API Social Media, Web Scraping, Apache Flume, Microsoft StreamInsight
² Organizzazione/Storage
q Hadoop, DMBS NoSQL
² Integrazione
q Hive, Sqoop
² Analisi
q Pig, R, Mahout
ESEMPI DI TECNOLOGIE BIG DATA
Introduzione ai database NoSQL
Motivazioni legate alla diffusione dei database NoSQL:
² Gestione dei Big-data
² Limitazioni del modello relazionale
² Teorema CAP
Introduzione ai database NoSQL
² (LIMITAZIONE1) Il modello relazionale
presuppone una rappresentazione tabellare, che accade se i dati non si presentano in tale forma?.
ANAGRAFICA CF Nome Cognome Luogo Data
PAGINA WEB
? ? ? ? ?
Introduzione ai database NoSQL
² (LIMITAZIONE2) Alcune operazioni non possono essere implementate in SQL.
Memorizzazione
di un grafo, e calcolo del percorso minimo tra due punti.
Introduzione ai database NoSQL
² (LIMITAZIONE3) Scalabilità orizzontale dei DMBS relazionali.
Scalabilità (def informale): capacità di un sistema di migliorare le proprie prestazioni per un certo carico di lavoro, quando
vengono aggiunte nuove risorse al sistema.
Scalabilità verticale àaggiungere più potenza di calcolo (RAM, CPU) ad i nodi che gestiscono il DB.
Scalabilità orizzontale àaggiungere più nodi al cluster.
Introduzione ai database NoSQL
² (LIMITAZIONE3) Scalabilità orizzontale dei DMBS relazionali.
#Servers Throughput (operazioni / sec)
Scalabilità RBDMS
q Gestione dei vincoli q Repliche dei dati q Gestione delle
transazioni
q Soddisfacimento delle proprietà ACID
PROBLEMI
Introduzione ai database NoSQL
Motivazioni legate alla diffusione dei database NoSQL:
² Gestione dei Big-data
² Limitazioni del modello relazionale
² Teorema CAP
Introduzione ai database NoSQL
Il teorema di Brewer (CAP Theorem) afferma che un sistema distribuito può soddisfare al massimo solo due delle tre proprietà elencate sotto:
² Consistency à Tutti i nodi della rete vedono gli stessi dati
² Availability à Il servizio è sempre disponibile
² Partion Tolerance à Il servizio continua a
funzionare correttamente anche in presenza di perdita di messaggi o di partizionamenti della rete.
Introduzione ai database NoSQL
Nel caso di un DB distribuito (gestito da un
cluster), è possibile soddisfare al massimo solo due delle tre proprietà elencate sotto:
² Consistency à Se l’utente A modifica il dato X sul server 1, e B legge X dal server 2, B legge l’ultima versione disponibile di X.
² Availability à Se un utente effettua una query sul server A o B, la query restituisce un risultato.
² Partion Tolerance à Il servizio continua a funzionare correttamente anche in presenza di perdita di messaggi o di
partizionamenti della rete.
CAP THEOREM PER DB DISTRIBUTI:
Introduzione ai database NoSQL
CAP THEOREM PER DB DISTRIBUTI:
CASO 1: Consistency + Availability
APPLICAZIONE
NO Partition Tolerance à Il sistema non funziona correttamente in caso di perdita di messaggi.
Introduzione ai database NoSQL
CAP THEOREM PER DB DISTRIBUTI:
CASO 2: Availability + Partition Tolerance
APPLICAZIONE
NO Consistency à Repliche del dato non aggiornate!
Introduzione ai database NoSQL
CAP THEOREM PER DB DISTRIBUTI:
CASO 3: Consistency+ Partition Tolerance
APPLICAZIONE
NO Availability à La query non produce risposta
Introduzione ai database NoSQL
Introduzione ai database NoSQL
Basically Available à I nodi del sistema distribuito possono essere soggetti a guasti, ma il servizio è
sempre disponibile.
Soft State à La consistenza dei dati non è garantita in ogni istante.
Eventually Consistent à Il sistema diventa
consistente dopo un certo intervallo di tempo, se le attività di modifica dei dati cessano.
PROPRIETA’ BASE
Introduzione ai database NoSQL
Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:
² Database chiave/valore
² Database document-oriented
² Database column-oriented
² Database graph-oriented
Introduzione ai database NoSQL
² Esempi: BerkeleyDB, Project Voldemort
² Dati di un DB come liste di coppie chiave/valore (array associativi o dizionari)
² Chiave à valore univoco per operazioni di ricerca
² Valore à qualsiasi cosa …
Chiave Valore
1 {Mario Rossi, 02311323}
2 {Mario Bianchi, 23}
3 {Dipartimento Informatica, Via Zamboni, 05143242}
Introduzione ai database NoSQL
Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:
² Database chiave/valore
² Database document-oriented
² Database column-oriented
² Database graph-oriented
Introduzione ai database NoSQL
² Esempi: MongoDB, CouchDB
² Gestione di dati eterogeneei e complessi (semi- strutturati)
² Scalabili orizzontalmente, supporto per
partizionamento (sharding) dei dati in sistemi distribuiti
² Documenti à coppie chiave/valore (JSON)
² Forniscono funzionalità per aggregazione/analisi dei dati (MapReduce)
Introduzione ai database NoSQL
² Documento à collezione coppie chiave-valore {name: ‘Marco’,
cognome: ‘Rossi’, eta: 22,
data:new Date(1997,6,2,12,30)
address: {via: Zamboni, numero: 7}
{via: Irnerio, numero: 49}
email: [rossi@gmail.com, rossi@tiscali.it]
}
Introduzione ai database NoSQL
Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:
² Database chiave/valore
² Database document-oriented
² Database column-oriented
² Database graph-oriented
Introduzione ai database NoSQL
² Esempi: HBase, Cassandra
² Dati organizzati su colonne anziché su righe.
² Column family à contenitore di colonne. Ogni
column family è scritta su un file diverso. Ogni riga dispone di una chiave primaria (row key).
Introduzione ai database NoSQL
ID Nome Cognome Nascita Lavoro Salario Contratto
Chiave della riga
Column Family 1 (dati anagrafica)
Column Family 2 (dati lavoro)
FILE 1 FILE 2
Introduzione ai database NoSQL
² Schema flessibile
² Maggiore efficienza nello storage
² Maggiore possibilità di compressione dati
² Usato in sistemi dati read-oriented (es. warehousing)
Introduzione ai database NoSQL
Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:
² Database chiave/valore
² Database document-oriented
² Database column-oriented
² Database graph-oriented
Introduzione ai database NoSQL
² Esempi: Neo4J, Titan
² Dati strutturati sotto forma di grafi: nodi à
attributi/righe, archi à relazioni tra attributi/righe
PROPERTY GRAPH