SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
1
Big Data Viz (and much more!) with
Apache Zeppelin
1
1Bruno Bonnin @_bruno_b_
About me
Bruno Bonnin @_bruno_b_ - 17 juin
Architecte logiciel / Développeur @MyScript
#Java #JavaScript #Python
#Elastisearch #MongoDB # NoSQL
#Hadoop #Spark #Storm #BigData
#HTML5 #AngularJS #VueJS #NodeJS
Apache Zeppelin: mais qu’est-ce donc ?
Exploration des données...
“The one interface for all your big data needs”
… avec visualisation graphique
Création de documents interactifs…
… facilitant le partage
Et tout ça, dans un navigateur !
Apache Zeppelin: multi-langages, multi-backends
Votre interpréteur
Interpréteurs
externes
Apache Zeppelin: visualisation graphique
Apache Zeppelin: d’où ça vient ?
● Origine: NFLabs (http://www.nflabs.com/)
○ Plusieurs essais de faire un env. pour l'analyse de
données depuis 2012
○ Au départ, produit commercial
○ Puis, décision de le proposer à la communauté Apache
● Projet "incubator" à partir de décembre 2014
Zeppelin est Top Level Project depuis le 25 mai 2016 !
Démo
(http://localhost:8000/#/)
Apache Zeppelin: User Interface
Paragraphe
Texte à interpréter (SQL, Spark,
sh, html, …)
Interpréteur utilisé (sql, spark, sh, md, jdbc, …)
Résultat
Toolbar du paragraphe (start, …)
Choix de l’affichage
Formulaire généré à partir de la
requête
JVM
Architecture
Zeppelin
Server
JVM
Spark
Interpreter
JVM
Hive
Interpreter
Thrift
Http WebSocket
JVM
Votre
Interpréteur
JVM
Un peu de dynamique
Zeppelin
Server
JVM
Spark
Interpreter
Texte à interpréter:
4
5
6
3
2
1
%sql
SELECT * FROM Bank
Lancement de l’
interpréteur “sql”
Interprétation des
commandes:
SELECT * FROM Bank
Traitement de la requête
Résultat: table
(texte formaté avec
des tabulations)
age education balance
25 primary 1200
45 unknown 4500
Résultat envoyé au
browser qui
interprète le format
Systèmes d’affichage: la base
Il existe plusieurs systèmes d'affichage:
● texte: output par défaut, sans formatage particulier
● html : si l'output commence par %html
○ Affichage du html contenu dans la sortie
● table : si l'output commence par %table
○ La sortie doit contenir des lignes avec chaque cellule séparée par des t
○ Accès automatiquement à des visualisations graphiques de vos
données dans ce cas !!
Le format peut être émis par l’interpréteur (exemple: SQL)
Systèmes d’affichage: formulaires
Génération automatique de formulaires (input text, select) si
présence de ${...} dans le code à interpréter
Systèmes d’affichage: Angular
Permet d’avoir accès à des formulaires et des affichages plus
évolués/sympa/… (mais ça demande du code)
● Côté client: il existe un interpréteur “angular”
○ Le paragraphe contient le code html/javascript pour interpréter pour
réaliser l’affichage du paragraphe
● Zeppelin fournit aussi une API permettant de partager des données
entre les paragraphes Spark et Angular, accessible via une variable : z
○ z.angularBind ( nom, valeur )
○ z.angularUnbind (nom )
○ z.angular( nom )
○ z.runParagraph( id paragraphe )
Démo
(http://localhost:8000/#/notebook/2BNCV88E6)
Systèmes d’affichage: extensions
Zeppelin embarque D3.js, on peut donc
l’utiliser (en codant un peu) pour proposer
des visualisations top moumoutes !
1
2
Libs graphiques externes: référencées
dans le code (<script src=””>)
Démo
(http://localhost:8000/#/notebook/2BMXSE5D2)
Publication des résultats
Les résultats peuvent être réutilisés dans d’autres pages (via <iframe>)
Analyse et construction dans Zeppelin Intégration dans votre site
Étendre Zeppelin: développer son interpréteur
public class MyInterpreter extends Interpreter {
static {
Interpreter.register("interp_name", "interp_group",MyInterpreter.class.getName());
}
public InterpreterResult interpret(String cmds, InterpreterContext ctx) {
String result = ...
return new InterpreterResult(ResultCode.SUCCESS, Type.HTML, result);
}
public void open() {}
public void close() {}
public void cancel(InterpreterContext ctx) {}
public int getProgress(InterpreterContext ctx) {}
public List<String> completion(String cmd, int i) {}
public FormType getFormType() {}
}
Apache Zeppelin: y a quoi d’autres ?
● Scheduler
● Export / Import
● Gestion de versions
● Sécurité: indispensable pour passer du stade de PoC à un vrai système en
prod (mais ça vient toujours en dernier)
○ Authentification avec Shiro, Autorisation au niveau Notebook, ...
En résumé...
Zeppelin, c’est:
● Open source (https://zeppelin.apache.org/)
● Ouvert (on peut l’adapter à ses besoins, son contexte, via le dev d’
interpréteurs, l’utilisation de libs pour les visualisations)
● Plein de fonctionnalités déjà présentes ou à venir:
○ Nouveaux interpréteurs (scalding,...)
○ Visualisation de maps
○ Améliorations internes / UI
○ ...
Votre futur environnement pour vos futurs besoins autour de
vos futurs (méga-) données
@_bruno_b_
https://github.com/bbonnin/web2day2016
Merci !
Liens Zeppelin
Site officiel:
● https://zeppelin.incubator.apache.org/
Docs:
● https://zeppelin.incubator.apache.org/docs/latest/
Code source:
● https://github.com/apache/incubator-zeppelin
Exemples:
● https://www.zeppelinhub.com/viewer
Exemple d’interpréteur: ArangoDB Interpreter
● https://github.com/bbonnin/zeppelin-arangodb-interpreter
Source des données
Bornes de recharge:
● https://www.data.gouv.fr/s/resources/fichier-consolide-des-bornes-de-
recharge-pour-vehicules-electriques-irve/20151008-182813/IRVE-201510.csv
NASA:
● https://data.nasa.gov/
TripAdvisor:
● http://times.cs.uiuc.edu/~wang296/Data/
Bank:
● http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip
Exemple D3.js
● https://www.zeppelinhub.
com/viewer/notebooks/bm90ZTovL2Rjb3JuZWF1L1BlcnNvbmFsLU5vdGVib
29rcy80NzU5L25vdGUuanNvbg

Contenu connexe

Tendances

Réu technodejs
Réu technodejsRéu technodejs
Réu technodejsnaholyr
 
CocoaHeads Rennes #16: OHHTTPStubs
CocoaHeads Rennes #16: OHHTTPStubsCocoaHeads Rennes #16: OHHTTPStubs
CocoaHeads Rennes #16: OHHTTPStubsCocoaHeadsRNS
 
Introduction au langage Go
Introduction au langage GoIntroduction au langage Go
Introduction au langage GoSylvain Wallez
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1Gilles Guirand
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementgplanchat
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementMohamed hedi Abidi
 
Introduction TypeScript
Introduction TypeScriptIntroduction TypeScript
Introduction TypeScriptfelixbillon
 

Tendances (10)

Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Pentaho Ctools : tips & tricks
Pentaho Ctools : tips & tricksPentaho Ctools : tips & tricks
Pentaho Ctools : tips & tricks
 
CocoaHeads Rennes #16: OHHTTPStubs
CocoaHeads Rennes #16: OHHTTPStubsCocoaHeads Rennes #16: OHHTTPStubs
CocoaHeads Rennes #16: OHHTTPStubs
 
Introduction au langage Go
Introduction au langage GoIntroduction au langage Go
Introduction au langage Go
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplement
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Introduction TypeScript
Introduction TypeScriptIntroduction TypeScript
Introduction TypeScript
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 

En vedette

Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !Bruno Bonnin
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantALTIC Altic
 
Hadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and FutureHadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and FutureRyan Hennig
 
How To Prepare For The Future Of Search
How To Prepare For The Future Of SearchHow To Prepare For The Future Of Search
How To Prepare For The Future Of SearchCharlene Li
 
The Future of Search - Will Critchlow's presentation at FODM 2013
The Future of Search - Will Critchlow's presentation at FODM 2013The Future of Search - Will Critchlow's presentation at FODM 2013
The Future of Search - Will Critchlow's presentation at FODM 2013Distilled
 
SEO: Same as it Ever Was
SEO: Same as it Ever WasSEO: Same as it Ever Was
SEO: Same as it Ever WasMichael King
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEODimitri Brunel
 
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...
SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...Distilled
 
Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...
Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...
Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...Jean-Pierre Riehl
 
The Pragmatic Future of Search
The Pragmatic Future of SearchThe Pragmatic Future of Search
The Pragmatic Future of SearchMichael King
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapideBilal Baltagi
 
The Quick And Dirty Guide To Creating Blog Posts That Your Audience Craves
The Quick And Dirty Guide To Creating Blog Posts That Your Audience CravesThe Quick And Dirty Guide To Creating Blog Posts That Your Audience Craves
The Quick And Dirty Guide To Creating Blog Posts That Your Audience CravesDominique Jackson
 
HTTPS The Road To A More Secure Web / SEOCamp Paris
HTTPS The Road To A More Secure Web / SEOCamp ParisHTTPS The Road To A More Secure Web / SEOCamp Paris
HTTPS The Road To A More Secure Web / SEOCamp ParisAysun Akarsu
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelinprajods
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of EverythingCharbel Zeaiter
 
Mobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigitalMobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigitalAleyda Solís
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

En vedette (19)

Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Hadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and FutureHadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and Future
 
How To Prepare For The Future Of Search
How To Prepare For The Future Of SearchHow To Prepare For The Future Of Search
How To Prepare For The Future Of Search
 
The Future of Search - Will Critchlow's presentation at FODM 2013
The Future of Search - Will Critchlow's presentation at FODM 2013The Future of Search - Will Critchlow's presentation at FODM 2013
The Future of Search - Will Critchlow's presentation at FODM 2013
 
SEO: Same as it Ever Was
SEO: Same as it Ever WasSEO: Same as it Ever Was
SEO: Same as it Ever Was
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEO
 
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...
SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...
 
Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...
Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...
Data Science : Méthodologie, Outillage et Application - MS Cloud Summit Paris...
 
The Pragmatic Future of Search
The Pragmatic Future of SearchThe Pragmatic Future of Search
The Pragmatic Future of Search
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
 
The Quick And Dirty Guide To Creating Blog Posts That Your Audience Craves
The Quick And Dirty Guide To Creating Blog Posts That Your Audience CravesThe Quick And Dirty Guide To Creating Blog Posts That Your Audience Craves
The Quick And Dirty Guide To Creating Blog Posts That Your Audience Craves
 
HTTPS The Road To A More Secure Web / SEOCamp Paris
HTTPS The Road To A More Secure Web / SEOCamp ParisHTTPS The Road To A More Secure Web / SEOCamp Paris
HTTPS The Road To A More Secure Web / SEOCamp Paris
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
 
Mobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigitalMobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigital
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similaire à Big Data Viz (and much more!) with Apache Zeppelin

Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Martin Latrille
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipseISIG
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummiesMicrosoft
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxHamzaElgari
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2apratt72
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesVincent Composieux
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 

Similaire à Big Data Viz (and much more!) with Apache Zeppelin (20)

Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
43_pps.pdf
43_pps.pdf43_pps.pdf
43_pps.pdf
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
openFrameworks
openFrameworksopenFrameworks
openFrameworks
 
introduction au CPP
introduction au CPPintroduction au CPP
introduction au CPP
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummies
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptx
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Xhprof
XhprofXhprof
Xhprof
 
Chapter1
Chapter1Chapter1
Chapter1
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Dynamic Languages
Dynamic LanguagesDynamic Languages
Dynamic Languages
 
Go
GoGo
Go
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, Kubernetes
 
Php seance1
Php seance1Php seance1
Php seance1
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 

Plus de Bruno Bonnin

[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)Bruno Bonnin
 
Stream processing avec Apache Pulsar
Stream processing avec Apache PulsarStream processing avec Apache Pulsar
Stream processing avec Apache PulsarBruno Bonnin
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Bruno Bonnin
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !Bruno Bonnin
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.jsBruno Bonnin
 
Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Bruno Bonnin
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !Bruno Bonnin
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
MUG Nantes - MongoDB et son connecteur pour hadoop
MUG Nantes - MongoDB et son connecteur pour hadoopMUG Nantes - MongoDB et son connecteur pour hadoop
MUG Nantes - MongoDB et son connecteur pour hadoopBruno Bonnin
 
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...Bruno Bonnin
 

Plus de Bruno Bonnin (13)

[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
 
Stream processing avec Apache Pulsar
Stream processing avec Apache PulsarStream processing avec Apache Pulsar
Stream processing avec Apache Pulsar
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.js
 
Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
MUG Nantes - MongoDB et son connecteur pour hadoop
MUG Nantes - MongoDB et son connecteur pour hadoopMUG Nantes - MongoDB et son connecteur pour hadoop
MUG Nantes - MongoDB et son connecteur pour hadoop
 
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
 

Big Data Viz (and much more!) with Apache Zeppelin

  • 1. 1 Big Data Viz (and much more!) with Apache Zeppelin 1 1Bruno Bonnin @_bruno_b_
  • 2. About me Bruno Bonnin @_bruno_b_ - 17 juin Architecte logiciel / Développeur @MyScript #Java #JavaScript #Python #Elastisearch #MongoDB # NoSQL #Hadoop #Spark #Storm #BigData #HTML5 #AngularJS #VueJS #NodeJS
  • 3. Apache Zeppelin: mais qu’est-ce donc ? Exploration des données... “The one interface for all your big data needs” … avec visualisation graphique Création de documents interactifs… … facilitant le partage Et tout ça, dans un navigateur !
  • 4. Apache Zeppelin: multi-langages, multi-backends Votre interpréteur Interpréteurs externes
  • 6. Apache Zeppelin: d’où ça vient ? ● Origine: NFLabs (http://www.nflabs.com/) ○ Plusieurs essais de faire un env. pour l'analyse de données depuis 2012 ○ Au départ, produit commercial ○ Puis, décision de le proposer à la communauté Apache ● Projet "incubator" à partir de décembre 2014 Zeppelin est Top Level Project depuis le 25 mai 2016 !
  • 8. Apache Zeppelin: User Interface Paragraphe Texte à interpréter (SQL, Spark, sh, html, …) Interpréteur utilisé (sql, spark, sh, md, jdbc, …) Résultat Toolbar du paragraphe (start, …) Choix de l’affichage Formulaire généré à partir de la requête
  • 10. JVM Un peu de dynamique Zeppelin Server JVM Spark Interpreter Texte à interpréter: 4 5 6 3 2 1 %sql SELECT * FROM Bank Lancement de l’ interpréteur “sql” Interprétation des commandes: SELECT * FROM Bank Traitement de la requête Résultat: table (texte formaté avec des tabulations) age education balance 25 primary 1200 45 unknown 4500 Résultat envoyé au browser qui interprète le format
  • 11. Systèmes d’affichage: la base Il existe plusieurs systèmes d'affichage: ● texte: output par défaut, sans formatage particulier ● html : si l'output commence par %html ○ Affichage du html contenu dans la sortie ● table : si l'output commence par %table ○ La sortie doit contenir des lignes avec chaque cellule séparée par des t ○ Accès automatiquement à des visualisations graphiques de vos données dans ce cas !! Le format peut être émis par l’interpréteur (exemple: SQL)
  • 12. Systèmes d’affichage: formulaires Génération automatique de formulaires (input text, select) si présence de ${...} dans le code à interpréter
  • 13. Systèmes d’affichage: Angular Permet d’avoir accès à des formulaires et des affichages plus évolués/sympa/… (mais ça demande du code) ● Côté client: il existe un interpréteur “angular” ○ Le paragraphe contient le code html/javascript pour interpréter pour réaliser l’affichage du paragraphe ● Zeppelin fournit aussi une API permettant de partager des données entre les paragraphes Spark et Angular, accessible via une variable : z ○ z.angularBind ( nom, valeur ) ○ z.angularUnbind (nom ) ○ z.angular( nom ) ○ z.runParagraph( id paragraphe )
  • 15. Systèmes d’affichage: extensions Zeppelin embarque D3.js, on peut donc l’utiliser (en codant un peu) pour proposer des visualisations top moumoutes ! 1 2 Libs graphiques externes: référencées dans le code (<script src=””>)
  • 17. Publication des résultats Les résultats peuvent être réutilisés dans d’autres pages (via <iframe>) Analyse et construction dans Zeppelin Intégration dans votre site
  • 18. Étendre Zeppelin: développer son interpréteur public class MyInterpreter extends Interpreter { static { Interpreter.register("interp_name", "interp_group",MyInterpreter.class.getName()); } public InterpreterResult interpret(String cmds, InterpreterContext ctx) { String result = ... return new InterpreterResult(ResultCode.SUCCESS, Type.HTML, result); } public void open() {} public void close() {} public void cancel(InterpreterContext ctx) {} public int getProgress(InterpreterContext ctx) {} public List<String> completion(String cmd, int i) {} public FormType getFormType() {} }
  • 19. Apache Zeppelin: y a quoi d’autres ? ● Scheduler ● Export / Import ● Gestion de versions ● Sécurité: indispensable pour passer du stade de PoC à un vrai système en prod (mais ça vient toujours en dernier) ○ Authentification avec Shiro, Autorisation au niveau Notebook, ...
  • 20. En résumé... Zeppelin, c’est: ● Open source (https://zeppelin.apache.org/) ● Ouvert (on peut l’adapter à ses besoins, son contexte, via le dev d’ interpréteurs, l’utilisation de libs pour les visualisations) ● Plein de fonctionnalités déjà présentes ou à venir: ○ Nouveaux interpréteurs (scalding,...) ○ Visualisation de maps ○ Améliorations internes / UI ○ ... Votre futur environnement pour vos futurs besoins autour de vos futurs (méga-) données
  • 22. Liens Zeppelin Site officiel: ● https://zeppelin.incubator.apache.org/ Docs: ● https://zeppelin.incubator.apache.org/docs/latest/ Code source: ● https://github.com/apache/incubator-zeppelin Exemples: ● https://www.zeppelinhub.com/viewer Exemple d’interpréteur: ArangoDB Interpreter ● https://github.com/bbonnin/zeppelin-arangodb-interpreter
  • 23. Source des données Bornes de recharge: ● https://www.data.gouv.fr/s/resources/fichier-consolide-des-bornes-de- recharge-pour-vehicules-electriques-irve/20151008-182813/IRVE-201510.csv NASA: ● https://data.nasa.gov/ TripAdvisor: ● http://times.cs.uiuc.edu/~wang296/Data/ Bank: ● http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip Exemple D3.js ● https://www.zeppelinhub. com/viewer/notebooks/bm90ZTovL2Rjb3JuZWF1L1BlcnNvbmFsLU5vdGVib 29rcy80NzU5L25vdGUuanNvbg