Devoxx Paris 2016 : quoi de neuf pour l’analyse de données ?
Devoxx France 2016 s’est déroulé du 20 au 22 Avril à Paris. Si à l’origine cette conférence est issue de la communauté Java, Devoxx s’est enrichie en intégrant de plus en plus de thématiques, allant de l’architecture à la relecture de de code en passant par le Machine Learning et même l’IoT.
Pour ma part, c’est autour de l’analyse de données que je me suis tourné et je vous propose de découvrir certains sujets qui ont attiré mon attention.
« SQL on Everything » avec Apache Drill par Tugdual Grall
Lors de l’analyse de données, on est confronté au besoin de récupérer des données de types différents, de schémas différents, sur des supports différents et des bases différentes.
Apache Drill règle ce genre de casse-tête puisqu’il permet d’effectuer des vraies requêtes SQL sur n’importe quelles bases de données, qu’elles soient relationnelles, NoSQL ou même des fichiers CSV ou JSON.
De plus, l’utilisation d’un vrai SQL (SQL:2003) rend possible les requêtes complexes sur des jointures entre du MongoDB, du Oracle et des CSV en même temps.
Cet outil semble idéal pour la fouille de données et le BI et ne restera pas qu’au niveau des POC, puisqu’il peut être distribué pour former un cluster de Drill.
Apache Zeppelin, un notebook d’avenir pour l’éco-système Big Data par Duyhai Doan
Apache Zeppelin est un notebook, à l’instar du IPython Notebook, qui permet de mixer des explications détaillées (en Markdown), avec schémas, tableaux, images, liens, … et des snippets de code qui peuvent être réexécutés par le lecteur.
Ce genre de format s’utilise très bien en présentation de live-coding et en support de cours pour montrer dynamiquement les étapes avec les résultats en directe.
Zeppelin permet d’intégrer des snippets en shell, SQL, Scala et Python avec Spark intégré. De plus, si les résultats sont numériques et tabulaires, des visualisations adaptées sont proposées : scatter plot, bar chart, line chart, pie chart.
C’est un notebook qui va de pair avec Apache Drill qui fusionne la puissance du SQL et des visualisations dynamiques adaptées.
Get Back in Control of Your SQL with jOOQ par Lukas Eder
Beaucoup de bibliothèques d’écriture de requêtes SQL conviennent parfaitement à l’utilisation normale qu’on en fait (SELECT * FROM ma_table). Mais dès qu’on veut coder un Mandelbrot en SQL, ça devient tout de suite plus compliqué voire impossible.
jOOQ permet de descendre au niveau du SQL et contrôler parfaitement ce qu’on fait. La différence avec JDBC ? La requête n’est pas une String.
Cette bibliothèque reprend toutes les expressions et fonctions SQL et les transposent sous la forme d’une API Java. Une expression non valide ne va pas donc pas compiler. L’utilisation d’un attribut ou d’une table qui n’existe pas, va également faire échouer la compilation.
Cela permet de se lancer, plus sereinement, dans l’écriture de requêtes complexes, comme celles que montre Lukas dans son autre conférence : Ten SQL Tricks that You Didn’t Think Were Possible.
H2O, l’analyse prédictive sans coder … ou presque par Claude Falguiere
H2O est un bibliothèque d’analyse de données et de machine learning qui se présente sous la forme d’un notebook, H2O Flow, ou sous la forme d’une API Python, R, Scala ou Java.
Le notebook est semblable à un IPython Notebook ou à Apache Zeppelin et bénéficie donc de tous les avantages de ce type de support.
Dans le cas du machine learning, cela devient presque facile puisqu’il suffit de charger un dataset depuis un fichier ou une DB, puis de l’envoyer dans un modèle prédictif choisi et configuré en circonstance. La validation croisée est gérée simplement pour mettre à l’épreuve le modèle. Également des visualisations adaptées aux résultats sont affichées pour garder un oeil sur ceux-ci.
Enfin, l’application peut être distribuée en cluster afin de gérer les charges de données importantes.
L’intelligence artificielle avec les services IBM Watson sur la plateforme Bluemix par Philippe Comte
Watson est une application qui permet d’utiliser des modèles cognitifs afin d’analyser différents types de données comme un texte, une voix, une image.
Du côté de l’analyse de texte on retrouve la classification naturelle mais également la détection de concepts, de personnalités et de sentiments. L’analyse vocale essaie de retranscrire les paroles d’un speech ou l’inverse. Quant aux images, Watson les analyses pour comprendre leurs compositions.
Crédit photo : Java User Group Belgium