Apache Spark™ est devenu le moteur de facto pour le traitement des Big Data, alimentant les charges de travail de certaines des plus grandes organisations au monde. Au cours de la dernière décennie, nous avons vu Apache Spark évoluer d'un puissant moteur de calcul à usage général à une couche essentielle de l'architecture Open Lakehouse - avec Spark SQL, Structured Streaming, les formats de table ouverts et la gouvernance unifiée servant de piliers aux plateformes de données modernes.
Avec la récente publication d'Apache Spark 4.0, cette évolution se poursuit avec des avancées majeures en matière de streaming, de Python, de SQL et de données semi-structurées. Vous pouvez en savoir plus sur cette version ici.
S'appuyant sur les bases solides d'Apache Spark, nous sommes ravis d'annoncer un nouvel ajout à l'open source :
Nous faisons don de Declarative Pipelines - une norme éprouvée pour la création de pipelines de données fiables et évolutifs - à Apache Spark.
Cette contribution étend la puissance déclarative d'Apache Spark des requêtes individuelles aux pipelines complets, permettant aux utilisateurs de définir ce que leur pipeline doit faire et laissant Apache Spark déterminer comment le faire. La conception s'appuie sur des années d'observation des charges de travail Apache Spark réelles, codifiant ce que nous avons appris dans une API déclarative qui couvre les modèles les plus courants, y compris les flux de traitement par lots et de streaming.
Au fil des années de collaboration avec les utilisateurs de Spark, nous avons constaté l'émergence de défis communs lors de la création de pipelines de production :
Chez Databricks, nous avons commencé à relever ces défis en codifiant les meilleures pratiques d'ingénierie courantes dans un produit appelé DLT. DLT a adopté une approche déclarative : au lieu de câbler vous-même toute la logique, vous spécifiez l'état final de vos tables, et le moteur s'occupe de choses comme le mappage des dépendances, la gestion des erreurs, la création de points de contrôle, les pannes et les nouvelles tentatives à votre place.
Le résultat a été un grand pas en avant en termes de productivité, de fiabilité et de maintenabilité, en particulier pour les équipes qui gèrent des pipelines de production complexes.
Depuis le lancement de DLT, nous avons beaucoup appris.
Nous avons vu où l'approche déclarative peut avoir un impact considérable et où les équipes avaient besoin de plus de flexibilité et de contrôle. Nous avons constaté la valeur de l'automatisation de la logique complexe et de l'orchestration du streaming, ainsi que l'importance de s'appuyer sur les API Spark ouvertes pour garantir la portabilité et la liberté des développeurs.
Cette expérience a éclairé une nouvelle direction : un cadre natif Spark, open source et de premier ordre pour le développement de pipelines déclaratifs.
Apache Spark SQL a rendu l'exécution des requêtes déclarative : au lieu d'implémenter des jointures et des agrégations avec du code RDD de bas niveau, les développeurs pouvaient simplement écrire du SQL pour décrire le résultat souhaité, et Spark s'occupait du reste.
Spark Declarative Pipelines s'appuie sur cette base et va encore plus loin, en étendant le modèle déclaratif au-delà des requêtes individuelles à des pipelines complets couvrant plusieurs tables. Désormais, les développeurs peuvent définir les ensembles de données qui doivent exister et la manière dont ils sont dérivés, tandis que Spark détermine le plan d'exécution optimal, gère les dépendances et traite automatiquement le traitement incrémentiel.
Conçu dans un souci d'ouverture et de composabilité, Spark Declarative Pipelines offre :
Et surtout, il s'agit d'Apache Spark de bout en bout, sans enveloppes ni boîtes noires.
Cette contribution représente des années de travail sur Apache Spark, Delta Lake et la communauté Open Data au sens large. Elle s'inspire de ce que nous avons appris en construisant DLT, mais elle est conçue pour être plus flexible, plus extensible et entièrement Open Source.
Et nous ne faisons que commencer. Nous contribuons à cela en tant que couche commune sur laquelle l'ensemble de l'écosystème Apache Spark peut s'appuyer, que vous orchestriez des pipelines dans votre propre plateforme, que vous construisiez des abstractions spécifiques à un domaine ou que vous contribuiez directement à Spark lui-même. Ce cadre est là pour vous aider.
« Les pipelines déclaratifs masquent la complexité de l'ingénierie des données moderne sous un modèle de programmation simple et intuitif. En tant que responsable de l'ingénierie, j'apprécie le fait que mes ingénieurs puissent se concentrer sur ce qui compte le plus pour l'entreprise. Il est passionnant de voir ce niveau d'innovation désormais en Open Source, ce qui le rend accessible à encore plus d'équipes. » — Jian (Miracle) Zhou, responsable principal de l'ingénierie, Navy Federal Credit Union

« Chez 84.51, nous sommes toujours à la recherche de moyens de rendre nos pipelines de données plus faciles à construire et à maintenir, en particulier à mesure que nous évoluons vers des outils plus ouverts et flexibles. L'approche déclarative a été d'une grande aide pour réduire la quantité de code que nous devons gérer, et elle a facilité la prise en charge du traitement par lots et du streaming sans avoir à assembler des systèmes distincts. L'Open Sourcing de ce cadre en tant que Spark Declarative Pipelines est une excellente étape pour la communauté Spark. » — Brad Turnbaugh, ingénieur de données senior, 84.51°

Restez à l'écoute pour plus de détails dans la documentation Apache Spark. En attendant, vous pouvez consulter Jira et la discussion de la communauté pour la proposition.
Si vous créez des pipelines avec Apache Spark aujourd'hui, nous vous invitons à explorer le modèle déclaratif. Notre objectif est de rendre le développement de pipelines plus simple, plus fiable et plus collaboratif pour tous.
Le Lakehouse est plus qu'un simple stockage ouvert. Il s'agit de formats ouverts, de moteurs ouverts et, désormais, de modèles ouverts pour construire par-dessus.
Nous pensons que les pipelines déclaratifs deviendront une nouvelle norme pour le développement Apache Spark. Et nous sommes ravis de construire cet avenir ensemble, avec la communauté, en toute transparence.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
