partie 1 et partie 2, Tathagata Das, commiter Databricks sur la partie Structured Streaming, met l’accent sur la simplicité de mise en place du Streaming et présentent les techniques de développement d’une application fault-tolerant, grâce au checkpointing, au windowing, au watermark et au monitoring.
De nombreux patterns d’architecture pour répondre aux besoins du Streaming ont été présentés, notamment au niveau des persistances et partages d’états ainsi que la tolérance à la panne :
What’s next?
Databricks continue de concentrer des efforts de développement sur le Streaming.
Dès la keynote d’introduction, Matei Zaharia annonce la volonté d’ajouter la possibilité de faire du Streaming faible latence en plus du système micro-batch actuel. Le détail de cette évolution est présentée ici : https://issues.apache.org/jira/browse/SPARK-20928
Spark est un écosystème bien en vie qui évolue au rythme soutenu des développements de Databricks et des contributions variées de la communauté.
Les investissements de Databricks poursuivent plusieurs objectifs : faciliter l’usage et étendre les fonctionnalités du framework d’une part en ajoutant de nouvelles API comme on l’a vu avec le Deep Learning et le Streaming dans les paragraphes précédents. Mais aussi poursuivre l’optimisation du cœur de la librairie. Nous pouvons citer à titre d’exemple, le talk de Wenchen Fan (Databricks) qui présente des optimisations de gestion de la mémoire côté spark core, ou encore la présentation de Karps de Tim Hunter (Databricks). Karps est une librairie expérimentale multi-usages qui a (entre autre) pour objet de faciliter la lecture et l’optimisation de pipelines de transformation de données (ex : préférer le single pass sur la donnée lorsque c’est possible, éviter le caching inutile des RDD, etc.). Le talk démontre avec efficacité les limites actuelles de la console Spark (Spark UI) et présente de manière convaincante les gains d’une librairie telle que Karps.
Le Spark Summit sert également de tribune aux nombreux contributeurs du projet et les aspects explorés par la communauté sont nombreux. Certains talks promettent de rendre le développement plus accessible grâce à des outils permettant d’abstraire une partie de la complexité des jobs Spark. La présentation de Dr Elephant par Linkedin, qui met à disposition des développeurs un outil facilitant le tuning de jobs Spark pour qu’ils soient mieux optimisés va dans ce sens. D’autres présentent des développements spécifiques à un domaine métier particulier, comme on peut le voir avec la présentation de la librairie Variant-Apache Spark par Piotr Szul (ingénieur chez Data61 à CSIRO Research), visant à apporter des optimisations spécifiques au traitement de données biologiques. Enfin, là encore, la data science n’est pas en reste et plusieurs présentations investissent le sujet. On peut par exemple mentionner BMW qui présente son API de sélection de variables ou encore Red Hat qui nous enseigne comment implémenter efficacement un algorithme de Machine Learning avec Spark dans un talk qui nous a paru clair et intéressant : Building Machine Learning Algorithms on Apache Spark.
Enfin, les éditeurs de solution Big Data tentent également de tirer leur épingle du jeu et certains n’hésitent pas à contribuer sur les aspects fondamentaux de la libraire. Hortonworks présente notamment les fruits d’un travail de recherche portant sur l’optimisation des performances des calculs matriciels lors d’une présentation résolument technique.
On l’aura compris, Spark bénéficie à l’heure actuelle d’une véritable effervescence et le framework poursuit son évolution au gré des transformations apportées par Databricks et par la communauté.
L’un des points forts de cette édition a été l’annonce du tout nouveau produit Databricks Delta. Delta a été présenté comme l’outil qui combine le meilleur des data warehouses (requêtes transactionnelles, accès concurrents) et des datalakes (scalabilité, faible coût) sans les inconvénients (données mal structurées, obsolètes, la lenteur des ETL, les erreurs en cascade lors de l’échec d’un job...). Delta serait un outil qui favorise grandement les traitements en Streaming, qui vient au dessus d’Amazon S3 et stocke la donnée dans des formats comme Parquet ou ORC.
La conférence est restée assez haut niveau et floue côté technique. Nous avons trouvé assez difficile de se forger un avis sur la présentation qui a été faite. L’accent a été placé sur l’intégration de Delta par rapport à la Unified Analytics Platform. En effet, Delta semble bien intégré, avec une compatibilité avec les traitements batch et Streaming de Spark, et la visualisation de résultats de jobs Spark avec des métriques. Ou tout du moins c’est ce qui ressorti de la courte démonstration de M. Armburst.
L’arrivée de Delta s’inscrit dans la vision poussée par Databricks, à savoir la mise en avant de sa plateforme cloud. Certaines conférences, comme celle de Hotels.com ou de Shell, présentaient des retours d’expérience qui mettent en avant l’utilisation de cette plateforme, et la présentent comme l’outil qui leur a permis de démystifier Spark, de leur simplifier les développements et d’arriver jusqu’en production. Thème récurrent, nous avons senti en filigrane tout au long de ces 2 jours de conférence que la question de “Comment vulgariser Spark et l’écriture de jobs, et comment mettre le fine-tuning à la portée du plus grand nombre ?” était au cœur des préoccupations de Databricks.
Delta est sorti en version bêta, toutes les informations pour le tester et mettre les mains dans le cambouis sont sur le site de Databricks.
Vous l’aurez compris, Databricks concentre ses efforts pour rendre Spark le plus accessible possible et cherche à montrer que ses extensions autour du Machine Learning et du Streaming sont aujourd’hui matures et à portée de tous. En particulier, l’entreprise californienne veut faire de Spark la brique centrale des SI ayant des problématiques de Big Data via son produit Databricks Delta. Néanmoins cette annonce nous met l’eau à la bouche sans pour autant beaucoup en dévoiler. A suivre de de près.
La multitude de retours d’expérience présentés pendant le Spark Summit semble en tout cas montrer que la communauté est aujourd’hui très active autour de Spark.
En supplément, certains talks ont retenu notre attention et nous ont semblé valoir le coup d’œil :