SlideShare a Scribd company logo
1 of 20
Firenze - 15 Ottobre 2015
presenta Alberto Paro, CTO Big Data Technologies
BIG DATA – Che cosa è?
Alberto Paro
 Laureato in Ingegneria Informatica (POLIMI)
 Lavoro presso Big Data Technologies + Consulting
 Autore di due libri su ElasticSearch + 5 Tech review
 Lavoro principalmente in Scala e su tecnologie BD
(Akka, Spray.io, Playframework, Apache Spark) e
NoSQL (Cassandra, ElasticSearch e MongoDB)
 Evangelist linguaggio Scala e Scala.JS
 Definizione
 4 V
 NoSQL
 Hadoop/Spark
 Linguaggio Scala
Definizione
L’idea base della frase 'Big Data' è che ogni
cosa che noi facciamo lascia una traccia
digitale (‘data’), che noi (e altri) possiamo
usare e analizzare.
Big Data si riferisce alla nostra abilità di
fare uso di questi volumi di dati che
sempre aumentano.
From the dawn of civilization until 2003,
humankind generated five exabytes of
data. Now we produce five exabytes
every two days…and the pace is
accelerating.
Eric Schmidt,
Executive Chairman, Google
Definizione
Da dove arrivano questi dati?
 Attività “Online”
 Comunicazione
 Foto e Video
 Dati di sensori
 The Internet of Things
4 V
L’aumento dei dati porta al big data,
descritto anche con le 4 V:
 Volume
 Velocity
 Variety
 Veracity
La ‘Datafication’
 Actività
 Conversazioni
 Testo
 Voce
 Social Media
 Browser log
 Foto
 Video
 Sensori
 Etc.
Volume
Veracity
Variety
Velocity
Big Data
Analysing :
 Text
analytics
 Sentiment
analysis
 Face
recognition
 Voice
analytics
 Movement
analytics
 Etc.
Valore
Trasformare Big Data in Valore:
NoSQL
 Ogni database che non è un Database
relazionale”
 Il termine fu coniato durante un meet-up
 “Non-relational Databases”
 Not Only SQL
NoSQL - Tipologie
Key-Value
 Redis
 Voldemort
 Dynomite
 Tokio*
BigTable Clones
 Hbase
 Hyperbase
 Cassandra
Document
 CouchDB
 MongoDB
 Redis
GraphDB
 Neo4j
 OrientDB
 …Graph
NoSQL
 Non esiste il “DB” che copre tutte le
casistiche. Ognuno ha caratteristiche
proprie.
 Il mercato sta effettuando “selezione
naturale”
 Spesso occorre utilizzare più di un NoSQL.
 Hadoop e/o Spark sono il collante.
Hadoop / Spark
Input
Iter 1
HDFS
Iter 2
HDFS
HDFS
Read
HDFS
Read
HDFS
Write
HDFS
Write
Input
Iter 1 Iter 2
Hadoop MapReduce
Apache Spark
Evoluzione del modello Map Reduce
Apache Spark
 Scritto in Scala con API in Java, Python e R
 Evoluzione del modello Map/Reduce
 Potenti moduli a corredo:
 Spark SQL
 Spark Streaming
 MLLib (Machine Learning)
 GraphX (graph)
Linguaggio - Scala
 Nato da uno degli autori del compilatore di
Java
 Interoperabile con Java
 Approccio Reattivo
 Funzionale + Object Oriented + Actor Model
 Concorrenza by design
 Strong typed
 Linguaggio base di Spark / Akka /
Playframework
Linguaggio – Scala vs Javapublic class User {
private String firstName;
private String lastName;
private String email;
private Password password;
public User(String firstName, String lastName,
String email, Password password) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
}
public String getFirstName() {return firstName; }
public void setFirstName(String firstName) { this.firstName = firstName; }
public String getLastName() { return lastName; }
public void setLastName(String lastName) { this.lastName = lastName; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public Password getPassword() { return password; }
public void setPassword(Password password) { this.password = password; }
@Override public String toString() {
return "User [email=" + email + ", firstName=" + firstName + ", lastName=" + lastName + "]"; }
@Override public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((email == null) ? 0 : email.hashCode());
result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
result = prime * result + ((lastName == null) ? 0 : firstName.hashCode());
result = prime * result + ((password == null) ? 0 : password.hashCode());
return result; }
@Override public boolean equals(Object obj) {
if (this == obj) return true; if (obj == null) return false; if
(getClass() != obj.getClass()) return false; User other = (User) obj; if (email ==
null) { if (other.email != null) return false; } else if
(!email.equals(other.email)) return false; if (password == null) { if
(other.password != null) return false; } else if
(!password.equals(other.password)) return false; if (firstName == null) { if
(other.firstName != null) return false; } else if
(!firstName.equals(other.firstName)) return false; if (lastName == null) { if
(other.lastName != null) return false; } else if
(!lastName.equals(other.lastName)) return false; return true; }
}
case class User(
var firstName:String,
var lastName:String,
var email:String,
var password:Password)
JAVASCALA
Scala.JS
 Interoperabilità con Javascript
 Permette di compilare codice Scala in
Javascript => Typesafe
 Riuso di algoritmi/Modelli BK->FE
 Sinergia con React.js
 Permette lo sviluppo di SPA di grandi
dimensioni
Link Utili
 Cassandra: http://cassandra.apache.org/
 MongoDB: https://www.mongodb.org/
 Neo4J: http://neo4j.com/
 Spark: http://spark.apache.org/
 Scala:
 http://scala-lang.org/
 http://www.scala-js.org/
Grazie per
l’attenzione
Alberto Paro
Q&A

More Related Content

Similar to What's Big Data? - Big Data Tech - 2015 - Firenze

Scala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéScala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéEdmondo Porcu
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meetingguest67beeb9
 
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Marco Parenzan
 
L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...
L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...
L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...Angelo Parchitelli
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-databaseMajong DevJfu
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni webAndrea Lazzarotto
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009Massimiliano Dessì
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsIgor Antonacci
 
Introduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio bertiIntroduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio bertiDeep Learning Italia
 
Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018
Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018
Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018Codemotion
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritornolordarthas
 
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisVincenzo Manzoni
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkAlessio Biasiutti
 

Similar to What's Big Data? - Big Data Tech - 2015 - Firenze (20)

Scala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéScala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perché
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
Dsl in Lisp e Java
Dsl in Lisp e JavaDsl in Lisp e Java
Dsl in Lisp e Java
 
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
 
What's new in C# 7
What's new in C# 7What's new in C# 7
What's new in C# 7
 
L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...
L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...
L'ecosistema Google a supporto dei progetti IoT: dalla prototipazione ai dati...
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-database
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni web
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
The Sequel to sql
The Sequel to sqlThe Sequel to sql
The Sequel to sql
 
Hug Italy- 30 Sept 2014, Milan
Hug Italy- 30 Sept 2014, MilanHug Italy- 30 Sept 2014, Milan
Hug Italy- 30 Sept 2014, Milan
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devops
 
Introduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio bertiIntroduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio berti
 
Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018
Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018
Go reactive with Realm and Xamarin Forms - Andrea Ceroni - Codemotion Rome 2018
 
Pycon
PyconPycon
Pycon
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritorno
 
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with Spark
 
Hadoop in action!
Hadoop in action!Hadoop in action!
Hadoop in action!
 

More from Alberto Paro

LUISS - Deep Learning and data analyses - 09/01/19
LUISS - Deep Learning and data analyses - 09/01/19LUISS - Deep Learning and data analyses - 09/01/19
LUISS - Deep Learning and data analyses - 09/01/19Alberto Paro
 
2018 07-11 - kafka integration patterns
2018 07-11 - kafka integration patterns2018 07-11 - kafka integration patterns
2018 07-11 - kafka integration patternsAlberto Paro
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locatorAlberto Paro
 
ElasticSearch 5.x - New Tricks - 2017-02-08 - Elasticsearch Meetup
ElasticSearch 5.x -  New Tricks - 2017-02-08 - Elasticsearch Meetup ElasticSearch 5.x -  New Tricks - 2017-02-08 - Elasticsearch Meetup
ElasticSearch 5.x - New Tricks - 2017-02-08 - Elasticsearch Meetup Alberto Paro
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locatorAlberto Paro
 
ElasticSearch Meetup 30 - 10 - 2014
ElasticSearch Meetup 30 - 10 - 2014ElasticSearch Meetup 30 - 10 - 2014
ElasticSearch Meetup 30 - 10 - 2014Alberto Paro
 
Scala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSScala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSAlberto Paro
 

More from Alberto Paro (8)

Data streaming
Data streamingData streaming
Data streaming
 
LUISS - Deep Learning and data analyses - 09/01/19
LUISS - Deep Learning and data analyses - 09/01/19LUISS - Deep Learning and data analyses - 09/01/19
LUISS - Deep Learning and data analyses - 09/01/19
 
2018 07-11 - kafka integration patterns
2018 07-11 - kafka integration patterns2018 07-11 - kafka integration patterns
2018 07-11 - kafka integration patterns
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
 
ElasticSearch 5.x - New Tricks - 2017-02-08 - Elasticsearch Meetup
ElasticSearch 5.x -  New Tricks - 2017-02-08 - Elasticsearch Meetup ElasticSearch 5.x -  New Tricks - 2017-02-08 - Elasticsearch Meetup
ElasticSearch 5.x - New Tricks - 2017-02-08 - Elasticsearch Meetup
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
 
ElasticSearch Meetup 30 - 10 - 2014
ElasticSearch Meetup 30 - 10 - 2014ElasticSearch Meetup 30 - 10 - 2014
ElasticSearch Meetup 30 - 10 - 2014
 
Scala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSScala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJS
 

What's Big Data? - Big Data Tech - 2015 - Firenze

  • 1. Firenze - 15 Ottobre 2015 presenta Alberto Paro, CTO Big Data Technologies BIG DATA – Che cosa è?
  • 2. Alberto Paro  Laureato in Ingegneria Informatica (POLIMI)  Lavoro presso Big Data Technologies + Consulting  Autore di due libri su ElasticSearch + 5 Tech review  Lavoro principalmente in Scala e su tecnologie BD (Akka, Spray.io, Playframework, Apache Spark) e NoSQL (Cassandra, ElasticSearch e MongoDB)  Evangelist linguaggio Scala e Scala.JS
  • 3.  Definizione  4 V  NoSQL  Hadoop/Spark  Linguaggio Scala
  • 4. Definizione L’idea base della frase 'Big Data' è che ogni cosa che noi facciamo lascia una traccia digitale (‘data’), che noi (e altri) possiamo usare e analizzare. Big Data si riferisce alla nostra abilità di fare uso di questi volumi di dati che sempre aumentano.
  • 5. From the dawn of civilization until 2003, humankind generated five exabytes of data. Now we produce five exabytes every two days…and the pace is accelerating. Eric Schmidt, Executive Chairman, Google
  • 6. Definizione Da dove arrivano questi dati?  Attività “Online”  Comunicazione  Foto e Video  Dati di sensori  The Internet of Things
  • 7. 4 V L’aumento dei dati porta al big data, descritto anche con le 4 V:  Volume  Velocity  Variety  Veracity
  • 8.
  • 9. La ‘Datafication’  Actività  Conversazioni  Testo  Voce  Social Media  Browser log  Foto  Video  Sensori  Etc. Volume Veracity Variety Velocity Big Data Analysing :  Text analytics  Sentiment analysis  Face recognition  Voice analytics  Movement analytics  Etc. Valore Trasformare Big Data in Valore:
  • 10. NoSQL  Ogni database che non è un Database relazionale”  Il termine fu coniato durante un meet-up  “Non-relational Databases”  Not Only SQL
  • 11. NoSQL - Tipologie Key-Value  Redis  Voldemort  Dynomite  Tokio* BigTable Clones  Hbase  Hyperbase  Cassandra Document  CouchDB  MongoDB  Redis GraphDB  Neo4j  OrientDB  …Graph
  • 12. NoSQL  Non esiste il “DB” che copre tutte le casistiche. Ognuno ha caratteristiche proprie.  Il mercato sta effettuando “selezione naturale”  Spesso occorre utilizzare più di un NoSQL.  Hadoop e/o Spark sono il collante.
  • 13. Hadoop / Spark Input Iter 1 HDFS Iter 2 HDFS HDFS Read HDFS Read HDFS Write HDFS Write Input Iter 1 Iter 2 Hadoop MapReduce Apache Spark Evoluzione del modello Map Reduce
  • 14. Apache Spark  Scritto in Scala con API in Java, Python e R  Evoluzione del modello Map/Reduce  Potenti moduli a corredo:  Spark SQL  Spark Streaming  MLLib (Machine Learning)  GraphX (graph)
  • 15. Linguaggio - Scala  Nato da uno degli autori del compilatore di Java  Interoperabile con Java  Approccio Reattivo  Funzionale + Object Oriented + Actor Model  Concorrenza by design  Strong typed  Linguaggio base di Spark / Akka / Playframework
  • 16. Linguaggio – Scala vs Javapublic class User { private String firstName; private String lastName; private String email; private Password password; public User(String firstName, String lastName, String email, Password password) { this.firstName = firstName; this.lastName = lastName; this.email = email; this.password = password; } public String getFirstName() {return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Password getPassword() { return password; } public void setPassword(Password password) { this.password = password; } @Override public String toString() { return "User [email=" + email + ", firstName=" + firstName + ", lastName=" + lastName + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((email == null) ? 0 : email.hashCode()); result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); result = prime * result + ((lastName == null) ? 0 : firstName.hashCode()); result = prime * result + ((password == null) ? 0 : password.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; User other = (User) obj; if (email == null) { if (other.email != null) return false; } else if (!email.equals(other.email)) return false; if (password == null) { if (other.password != null) return false; } else if (!password.equals(other.password)) return false; if (firstName == null) { if (other.firstName != null) return false; } else if (!firstName.equals(other.firstName)) return false; if (lastName == null) { if (other.lastName != null) return false; } else if (!lastName.equals(other.lastName)) return false; return true; } } case class User( var firstName:String, var lastName:String, var email:String, var password:Password) JAVASCALA
  • 17. Scala.JS  Interoperabilità con Javascript  Permette di compilare codice Scala in Javascript => Typesafe  Riuso di algoritmi/Modelli BK->FE  Sinergia con React.js  Permette lo sviluppo di SPA di grandi dimensioni
  • 18. Link Utili  Cassandra: http://cassandra.apache.org/  MongoDB: https://www.mongodb.org/  Neo4J: http://neo4j.com/  Spark: http://spark.apache.org/  Scala:  http://scala-lang.org/  http://www.scala-js.org/
  • 20. Q&A

Editor's Notes

  1. Attività: musica che ascoltiamo, percorso stradale che percorriamo, navigazione web, uso della carta di credito Communicazione: Facebook e Twitter Foto e video: youtube Dati sensori: iwatch, tornelli, … The internet of things: smartTV, frigoriferi, …
  2. Volume: dato generato: dal big bang al 2008 è pari ora ogni 2 minuti! Velocity: velocità di propagazione dell’informazione. Social network Variety: Testo, dati strutturati/non strutturati, grafi. Big data permette di unire questi Veracity: capacità di gestire dati “disordianti” e non sempre cerificati (hashtag di twitter)
  3. Volume: dato generato: dal big bang al 2008 è pari ora ogni 2 minuti! Velocity: velocità di propagazione dell’informazione. Social network Variety: Testo, dati strutturati/non strutturati, grafi. Big data permette di unire questi Veracity: capacità di gestire dati “disordianti” e non sempre cerificati (hashtag di twitter)
  4. Key Value: Focus on scaling to huge amounts of data Designed to handle massive load Based on Amazon’s Dynamo paper Data model: (global) collection of Key-Value pairs Dynamo ring partitioning and replication Big Table Clones Like column oriented Relational Databases, but with a twist Tables similarly to RDBMS, but handles semi-structured ๏Based on Google’s BigTable paper Data model: ‣Columns → column families → ACL ‣Datums keyed by: row, column, time, index ‣Row-range → tablet → distribution Document Similar to Key-Value stores,but the DB knows what theValue is Inspired by Lotus Notes Data model: Collections of Key-Value collections Documents are often versioned GraphDB Focus on modeling the structure of data – interconnectivity Scales to the complexity of the data Inspired by mathematical Graph Theory ( G=(E,V) ) Data model: “Property Graph” ‣Nodes ‣Relationships/Edges between Nodes (first class) ‣Key-Value pairs on both ‣Possibly Edge Labels and/or Node/Edge Types
  5. Spark SQL (DB, Json, case class)