Big Data e la forza degli eventi - Intervento di Melen
Presentazione bd2
1. Gino Farisano
Prof.ssa G. Tortora
Prof. G. Polese
Big Data
Università degli Studi di Salerno
Sistemi Informatici e Tecnologie del Software
Basi di Dati II
Anno 2014/2015
8. How much data?
• Ogni giorno vengono generati exabytes di dati sul www
• “il 90% dei dati nel mondo è stato generato negli ultimi due anni”.
[Science Daily]
• “nel 2012 ogni giorno sono stati generati 2.5 exabyte” [IBM]
• L'idea di base dietro la frase “Big Data” è che, tutto quello che
facciamo, lascia delle tracce digitali
• Big Data si riferisce quindi alla nostra capacità di utilizzare questi
crescenti volumi di dati.
9. Activity data
• Attività semplici come l'ascolto di musica o la
lettura di un libro generano dati.
• Lettori musicali digitali e eBook raccolgono dati
sulle nostre attività.
• Lo smartphone raccoglie i dati su come lo si
utilizza e il browser web raccoglie le
informazioni su ciò che si sta cercando.
• La vostra carta di credito raccoglie i dati su ciò
che si acquista.
• É difficile immaginare qualsiasi attività che non
genera dati.
10. Le 3V dei Big Data
VOLUME
Terabyte
Records
Transazioni
Tabelle, Files
Kilobyte KB
Megabyte MB
Gigabyte GB
Terabyte TB
Petabyte PB
Exabyte EB
Zettabyte ZB
Yottabyte(dieci alla ventitreesima)
YB
11. Le 3V dei Big Data
VELOCITÀ
Batch
Near Real Time
Real Time
Streams
Velocità di
obsolescenza
dell’informazione
e
i dati invecchiano
in fretta
12. Le 3V dei Big Data
VARIETÀ
Strutturati
Non strutturati
Semi strutturati
13. Data Conversation
Tina Mu
Tom Sit
Chloe
Name, Birthday, Family
Monetizable Intent
Jo Jobs
Not Relevant - Noise
Not Relevant - Noise
14. The Internet of things
• L'Internet delle cose, o Internet of Everything collega
diversi dispositivi tra di loro
• I dati del traffico catturati da sensori sulla strada, ad
esempio, inviano i dati al vostro orologio di allarme che
vi sveglierà prima del previsto perché la strada potrebbe
essere bloccata. Dovrete svegliarvi prima delle 9:00 per
poter essere puntuali alla presentazione che si terrà alle
10:00!
17. Ci sono alcune cose che sono così grandi che
hanno implicazioni per tutti…
I Big Data sono una di quelle cose e, stanno
trasformando completamente il modo di fare
business…
18. Perché non abbiamo usato i Big Data prima?
• Key points:
1. Disponibilità di dati
2. Dispositivi di memorizzazione più
capienti e meno costosi
3. Nuove tecniche di memorizzazione
dei dati
4. Nuove tecniche di calcolo parallelo
20. Hadoop (1)
• Rilasciato dalla Apache Software Fondation
• Scritto in Java
• Elaborazione di grosse quantità di dati in applicazioni
distribuite
• elevato numero di commodity hardware
• orientato all’elaborazione batch
• modello di computazione map/reduce
24. Storia
• La storia di Hadoop inizia con Nutch
• Costruire un open source web search engine e web
crawler che catturasse miliardi di URL al mese
• Problemi di scalabilità
• All’inizio degli anni 2000 Google aveva pubblicato GFS e
MapReduce
• La soluzione al problema posto da Nutch
25. Hadoop (2)
• Hadoop è formato principalmente da 4 macro-progetti
• Hadoop Common: librerie di base per la corretta esecuzione
di Hadoop
• Hadoop Distributed File System (HDFS): un file system
distribuito che fornisce un accesso veloce ai dati
• Hadoop MapReduce: un sistema per l’elaborazione in
parallelo di grandi quantità di dati
• Hadoop YARN: per la pianificazione dei processi e la
gestione delle risorse del cluster
26. HDFS (1)
• Ispirato al Google File System (GFS)
• Block-structured file system
• I singoli file sono suddivisi in blocchi di dimensioni fissate
• Un file è costituito da vari blocchi non necessariamente
memorizzati sulla stessa macchina
27. HDFS (2)
• Architettura master/slave
• Un cluster HDFS consiste di un solo NameNode, un master
che gestisce il file system name space e regola l’accesso dei
client ai file
• Ci sono molti DataNode, solitamente uno per ogni nodo del
cluster
28. MapReduce (1)
• MapReduce è un paradigma di programmazione di Google
usato con successo per processare i “Big Data”
• Le primitive map e reduce sono presenti nella
programmazione funzionale, ad esempio in Lisp
• I programmi scritti con questo stile, possono essere
facilmente parallelizzati su un grande numero di macchine
• astrae i dettagli scabrosi della programmazione parallela
• gestione automatica delle failures dei nodi
30. Acquisizione dei Big Data
• API: Twitter API, Facebook API ed API
dei motori di ricerca
• Web scraping: cURL, Apache Tika
• ETL: Sqoop
• Stream: Apache Flume
31. Twitter API
• Il lancio delle API twitter nel 2009 ha ispirato
numerose iniziative di ricerca
• Oauth autentication
• Sentiment analysis [Datumbox], mezzo di
comunicazione in caso di emergenze
[Building a Data Warehouse for Twitter Stream
Exploration]
32. Strumenti di web scraping - cURL
•Simulano la navigazione umana nel World
Wide Web
•Confrontare prezzi online, monitorare dati
meteorologici, ricerca scientifica
•Possibilità di specificare più URL: specificare
più URLs: http://site.{one,two,three}.com
•Sequenze: ftp://ftp.numericals.com/
file[1-100].txt
•Utilizzo di cookie, proxy
33. Apache Tika
•Strumento di knowledge management
•Estrattore di metadati da documenti testuali
•Se i metadati sono assenti o non rispettano
metriche di qualità come quelle del Dublin
Core Metadata vengono utilizzate tecniche di
text mining per estrarre i metadati
direttamente dal contenuto del documento
34. Flume
•Spostamento di grandi flussi di dati nel file
system distribuito di Hadoop
• progettato per raccogliere log web in
tempo reale
35. Squoop
•"sblocco" dei dati memorizzati negli RDBMS di
un'organizzazione e il trasferimento di
quest’ultimi in Hadoop
36. • Tecnologia per interrogare i Big Data come se
fossero tabelle SQL
• HiveQL
• Produce in modo trasparente software MapReduce
• Inizialmente sviluppato da Facebook
• Data presentation layer
• Come Hive, ma utilizza come linguaggio di alto
livello Pig Latin
• Data preparation layer
Hive and Pig
37.
38. Why SQL?
•Schema predefinito per lo storage di dati strutturati
•Struttura BCNF già familiare
•Strong consistency
•Transazioni
•Maturi e accuratamente testati
•Basati sulle proprietà ACID
•Data Retrieval: Standard Query Language (SQL) - versatile e
potente
•Scalabilità verticale: se volessimo rendere un DB SQL scalabile,
l’unica alternativa sarebbe quella di potenziare l’hardware sul quale
il DBMS è installato
40. Why NoSQL? (2)
• Non relazionali: l’approccio rigido dei db relazionali non permette di
memorizzare dati fortemente dinamici. I db NoSQL sono “schemaless”
e consentono di memorizzare “on the fly” attributi, anche senza averli
definiti a priori
• Distribuiti: la flessibilità nella clusterizzazione e nella replicazione dei
dati permette di distribuire su più nodi lo storage, in modo da
realizzare potenti sistemi “fault tollerance”
• Scalabili orizzontalmente: in contrapposizione alla scalabilità
verticale, abbiamo architetture enormemente scalabili, che consentono
di memorizzare e gestire una grande quantità di informazioni
• Open-source: filosofia alla base del movimento NoSQL
41. Brewer’s CAP Theorem
Un sistema distribuito è in grado di
supportare solamente due tra le seguenti
caratteristiche:
• Consistency: tutti i nodi vedono lo
stesso dato allo stesso tempo
• Availability: ogni operazione deve
sempre ricevere una risposta
• Partition Tolerance: capacità di un
sistema di essere tollerante ad una
aggiunta, una rimozione di un nodo nel
sistema distribuito o alla non disponibilità
di un componente singolo
42. Logica Base
• I database di tipo NoSQL, per poter essere scalabili come richiesto,
devono sacrificare delle proprietà e dunque non possono in alcun
modo aderire strettamente al modello ACID
• Logica operazionale BASE:
• Basically Available: garantire sempre la disponibilità dei dati.
• Soft-state: il sistema può cambiare lo stato anche se non si
verificano scritture o letture
• Eventual consistency: la consistenza può essere raggiunta nel
tempo.
43.
44. NoSQL categories
KEY-VALUE DATA STORE
• Utilizza un associative array (chiave-valore)
come modello fondamentale per lo storage
• Storage, update e ricerca basato sulle chiavi
• Tipi di dati primitivi familiari ai programmatori
• Semplice
• Veloce recupero dei dati
• Grandi moli di dati
DOCUMENT DATA STORE
• Supporto a diversi tipi di documento
• Un documento è identificato da una chiave
primaria
• Schema-less
• Scalabilità orizzontale
COLUMN-ORIENTED DATA STORE
• I dati sono nelle colonne anziché nelle righe
• Un gruppo di colonne è chiamato famiglia ed vi è
un’analogia con le tabelle di un database relazionale
• Le colonne possono essere facilmente distribuite
• Scalabile
• Performante
• Fault-tollerance
GRAPH-BASED DATA STORE
• Utilizza nodi (entità), proprietà (attributi) e archi
(relazioni)
• Modello logico semplice e intuitivo
• Ogni elemento contiene un puntatore all’elemento
adiacente
• Attraversamento del grafo per trovare i dati
• Efficiente per la rappresentazione di reti sociali o dati
sparsi
• Relazioni tra i dati centrali