Beam a récemment été promu en projet top niveau à la Fondation Logicielle Apache. Les objectifs de Beam consistent à permettre de gérer des données sans bornes, non ordonnées et d'échelle globale avec des pipelines de données portables de haut niveau. Beam était initialement un projet interne de Google, puis donné à Apache et a été en incubation depuis février 2016 jusqu'à la fin de l'année dernière. Le projet Beam vise à créer un modèle de programmation unifié pour les travaux de traitement en continu et en lots, et à produire des artefacts pouvant être consommés par un certain nombre de moteurs de traitement de données supportés. Beam cherche à :
fournir un modèle facile à utiliser mais puissant pour le traitement des données parallèles, à la fois en continu et en lots, portables sur une variété de plates-formes d'exécution... Les SDKs de Beam utilisent les mêmes classes pour représenter les données bornées et non bornées et les mêmes transformations pour opérer sur ces données.
Les SDK disponibles en Java et Python fournissent une abstraction entre le moteur de traitement en arrière-plan choisi et les composants du pipeline de traitement. Les moteurs de traitement pris en charge comprennent Apache Apex, Flink, Spark et le moteur Cloud Dataflow de Google.
Le modèle de programmation pour le pipeline Beam utilise des PCollection(s), des Transform(s) et Pipeline I/O, ainsi qu'un exécuteur pour chaque moteur de traitement pris en charge, avec par défaut l'utilisation par Beam d'un DirectRunner local :
- Pipeline
- PCollection
- Objets de transformation du Core SDK ParDo, GroupByKey, Combine, Flatten et Partition
- Pipeline d'E/S Source / Sink
- DirectRunner, DataflowRunner, SparkRunner, FlinkRunner et ApexRunner
La motivation de Google pour rendre Beam Open Source fait partie d'un modèle d'affaires émergent qui prend en charge l'intégration et la contribution à d'autres projets Open Source. La raison en est que cela augmentera le potentiel d'adoption pour le projet Beam, dans l'espoir d'une plus grande exposition pour la plate-forme Dataflow de Google et qu'elle émerge comme le moteur de traitement de choix parmi les moteurs pris en charge. La comparaison de Google entre Spark et Beam note que le modèle de Beam est le modèle correct pour le traitement des données en flux et en lots en raison de la spécialisation de Beam et de l'importance de la sémantique permise par le fenêtrage basé sur les événements, le filigranage et les fonctions de déclenchement. La communauté Open Source et l'industrie de la data science au sens large n'ont pas encore empiriquement validé ces revendications indépendamment de Google et ceci doit être traité avec plus d'analyses de cas d'utilisation autour de l'architecture et de l'analyse comparative. Les premiers signes indiquent une communauté de Beam qui va en s'accroissant et un retour positif sur le support de plusieurs plateformes de traitement.