Netflix crée une solution de traitement incrémental avec Maestro et Apache Iceberg

Netflix lance une nouvelle solution pour le traitement incrémentiel des données
Netflix a récemment mis en place une nouvelle approche pour le traitement incrémentiel sur sa plateforme de données. Cette méthode réduit considérablement les coûts des ressources informatiques et le temps d’exécution, car elle évite le traitement de l’ensemble des ensembles de données. La société a utilisé son moteur de workflow Maestro et Apache Iceberg pour améliorer la fraîcheur et l’exactitude des données, et prévoit de fournir des capacités de backfill gérées.
Migration vers Maestro
Netflix a migré tout son traitement de données vers Maestro, la dernière génération de plateforme d’orchestration de workflows maison répondant à divers cas d’utilisation, notamment les pipelines ETL, la formation de modèles ML, les tâches par lots, etc. Parallèlement, l’entreprise cherchait à résoudre certains problèmes courants liés à l’exécution des pipelines de données.
La plateforme présentait tout d’abord un manque de support efficace pour les cas d’utilisation de traitement par lots à faible latence. Cela a conduit à quelques solutions internes, comme Psyberg, qui ne fonctionnent que pour des cas d’utilisation spécifiques et introduisent un couplage étroit avec la logique métier. Deuxièmement, l’arrivée tardive des données obligeait les workflows à utiliser une fenêtre de recherche en arrière, ce qui augmentait le temps d’exécution et les coûts. Enfin, le backfilling des ensembles de données nécessitait un effort d’ingénierie important car des workflows de backfill dédiés devaient être créés, exécutés et validés.
Solution incrémentielle utilisant Apache Iceberg
La solution qui répond à ces défis permet le traitement incrémentiel des enregistrements ajoutés/mis à jour et tire parti des fonctionnalités avancées d’Apache Iceberg, un format hautes performances pour les tables d’analyse massive qui prend en charge des requêtes SQL expressives, l’évolution du schéma, le voyage dans le temps et le retour en arrière, entre autres.
La solution implémentée a permis de créer une approche légère pour créer une table Iceberg supplémentaire (appelée table ICDC) qui stocke uniquement des références à partir de la table d’origine sans copier aucun fichier de données, ce qui est efficace et rentable. De plus, la nouvelle table capture la plage de changement pour les champs de données spécifiés. Les ingénieurs de données peuvent intégrer l’approche de traitement incrémentiel dans les workflows Maestro existants en utilisant un nouveau type d’étape de workflow ou/et un nouveau mécanisme de déclenchement incrémentiel.
L’introduction de la capacité de traitement incrémentiel a donné lieu à de nouveaux schémas. Le plus basique consiste à utiliser uniquement la table ICDC dans le pipeline de workflow si aucune autre source de données n’est nécessaire, ce qui simplifie considérablement l’exécution du workflow et élimine complètement le besoin d’utiliser la fenêtre de recherche en arrière. D’autres schémas impliquent l’utilisation de données de changement incrémentiel ou de la plage de changement capturée pour optimiser la logique de transformation des données afin de limiter la portée du retraitement lorsque le workflow utilise de nombreuses tables sources.
Améliorations futures
Jun He, l’ingénieur logiciel principal chez Netflix, a partagé un aperçu des capacités sur lesquelles l’équipe prévoit de travailler par la suite :
“Nous améliorerons l’IPS pour prendre en charge des cas plus complexes au-delà des seuls cas d’ajout. IPS pourra suivre la progression des changements de table et prendre en charge plusieurs types de changement de table Iceberg (par exemple ajout, écrasement, etc.). Nous ajouterons également le support de backfill géré dans IPS pour aider les utilisateurs à construire, monitorer et valider le backfill.”
Source : www.infoq.com
