L’article explique comment générer des fichiers Excel volumineux avec Airflow sans dépasser la mémoire disponible, en évitant les erreurs OOM (Out Of Memory). L’idée principale repose sur l’utilisation du streaming pour lire les données depuis MySQL et du mode write-only d’openpyxl pour écrire le fichier Excel sans tout charger en mémoire. Cette approche permet de stabiliser la consommation mémoire, contrairement à une méthode naïve qui charge l’intégralité des données en mémoire avant de les exporter.
L’auteur souligne que les solutions classiques, comme l’utilisation de pandas avec un chunksize, ne suffisent pas, car elles ne réduisent pas la mémoire utilisée lors de la lecture initiale. En revanche, un curseur non bufferisé pour MySQL et une écriture progressive avec openpyxl permettent de traiter les données par lots, limitant ainsi l’empreinte mémoire.
Enfin, l’article met en garde contre les coûts élevés liés à l’augmentation de la mémoire dans le cloud et propose une solution efficace pour des environnements contraints, comme AWS ECS Fargate. Cette méthode est particulièrement utile pour les pipelines de data engineering où les ressources sont optimisées pour réduire les dépenses.
je cite l'auteur : "Apache Airflow est un outil open source d’orchestration de workflows : si vous êtes habitués à gérer des tâches cron au quotidien, alors cet article devrez vous plaire."