Résumé de cet article par ChatGPT :
"Cet article explique ce qu'est un Data Engineer et les compétences requises pour en devenir un. Le Data Engineer est responsable de la conception, de la construction et de la maintenance des infrastructures de données utilisées par les Data Scientists pour analyser les données. Les compétences clés comprennent la programmation en Python ou en Scala, la connaissance des bases de données relationnelles et non relationnelles, la compréhension des architectures de traitement de données distribuées et la maîtrise des outils tels que Hadoop, Spark et Kafka. L'article recommande également de suivre une formation en sciences informatiques ou en génie logiciel, et de participer à des projets open source pour développer son expertise."Ce n’est pas un secret, sur la scène de la data, la star inconditionnelle, c'est la Data Science. Le Data Engineering quant à lui peine à sortir de l’ombre et c’est bien dommage !
Utilisation de “Data Scientist” vs “Data Engineer” en anglais sur Google Ngram Viewer
Cela peut se mesurer de manière objective en regardant, par exemple l’utilisation des termes “Data Scientist” et “Data Engineer” ces 10 dernières années. De manière bien plus subjective, j’ai pu constater cette tendance dans mon parcours dans l’écosystème de la tech. Que ce soit pendant ma formation d’ingénieur où l'on m’a à peine parlé de Data Engineering, ou bien pendant mes recherches de premières expériences professionnelles : le métier dont tout le monde parle c’est celui du Data Scientist et très peu de celui du Data Engineer.
Enfin, je l’ai aussi constaté lors d’interventions auprès d’étudiants. Si la grande majorité d’entre eux étaient au clair sur le métier de Data Scientist, très peu avaient entendu parler du métier de Data Engineer.
J’aimerais donc partager mon expérience de Data Engineer et de Data Scientist afin de transmettre quelques informations que j’aurais moi-même aimé recevoir quelques années plus tôt en tant qu’étudiant.
Déjà qu’est-ce qu’un Data Engineer ? 🤔
La définition du Data Engineer dépend forcément du contexte de l’entreprise dans lequel il évolue, mais une bonne approximation tenant en une seule phrase serait :“Le Data Engineer est un ingénieur responsable de la récupération, du traitement, de la mise en production de la donnée, le tout en automatisant un maximum.”
Avec cette définition en tête, je vous propose maintenant de passer à travers plusieurs aspects du métier que j’ai pu découvrir en entreprise, qui permettront peut-être de vous faire réaliser que vous êtes un Data Engineer en devenir ! 🌿
Vous voulez améliorer votre niveau de code ✨
Être Data Engineer c’est l’opportunité d’acquérir un bon niveau de code. La qualité de code, avec zen of python, est un sujet à part entière : de manière générale, un bon code, est un code robuste, facile à comprendre et sur lequel on peut rapidement ajouter de nouvelles features.
Bien évidemment, tous les différents métiers de développeur vous feront progresser. Cependant, parmi mes différentes expériences de Data Scientist, Full Stack Developper et Deep Learning Engineer, c’est le rôle de Data Engineer qui m’a demandé le niveau de code le plus élevé.
Une première raison, c'est que le Data Engineer écrit du code utilisé dans un environnement de production, c'est-à-dire du code fournissant de la donnée aux utilisateurs : si ce code est buggé les conséquences peuvent être très lourdes. Ainsi, la qualité de code d’un Data Engineer doit être au rendez-vous. Pour cela, il s'appuie, d’une part, sur son savoir-faire en appliquant de bons designs, mais d’autre part, il travaille avec des outils permettant de limiter au plus l’introduction de bug (test unitaire, tests d’intégration, CI/CD etc.).
Une autre raison à mon sens, c’est le fait que le Data Engineer travaille avec d’autres équipes techs. Ceci l’amène à respecter des standards conventionnels et à en découvrir des nouveaux venant des équipes avec qui il collabore.
Vous voulez jongler entre les différentes technos 🤹
Le Data Engineer design des systèmes complexes, c'est-à-dire impliquant un grand nombre d’entités et de concepts différents. Il est donc amené à rencontrer une riche variété de technos.
Pour illustrer ce propos, je prends l’exemple d’un projet réel de construction d’une pipeline d’ingestion de donnée de restaurant sur Google Maps. L’objectif est de pouvoir le nom et l’adresse de la totalité des restaurants français. Pour ce faire, nous avons :
- Choisi une API permettant d’accéder aux données de GoogleMaps.
-
Développé une stratégie de requêtes pour couvrir correctement le territoire français.
-
Utilisé un service serverless pour lancer nos requêtes en parallèle.
-
Utilisé un service de streaming pour écrire et regrouper les résultats de ces différentes requêtes.
-
Manipulé un stockage de cette donnée brute sur un service cloud
-
Produit du code de calcul distribué pour le processing de cette donnée brute.
-
Stocké la donnée propre dans un Data Warehouse utilisé par les utilisateurs finaux.
-
Utilisé Terraform pour la mise en place de nos ressources cloud.
Cet exemple reste un système classique et implique déjà une petite dizaine de technos différentes. Cette variété de technos va apporter au Data Engineer une grande expérience et culture tech. Il va développer une vision systémique des différentes technos qu’il utilise et apprendre à les combiner pour arriver au résultat désiré.
Vous cherchez à avoir rapidement de l'impact 🎯
“Pyramide de la donnée” From The Data Science Hierarchy of Needs - By Monica Rogati
Le Data Engineer a un énorme impact, car il est situé au premier étage de la pyramide de la donnée (cf image précédente).
Aujourd’hui beaucoup d’entreprises se disent data-driven, pour cela la première étape consiste à collecter et à stocker de la donnée. Cette étape est cruciale et permet déjà de résoudre énormément de problèmes business, de logistique et stratégiques.
Viennent ensuite les rôles plus connus de Data Scientist et de Data Analyst qui vont pouvoir enrichir la donnée et en extraire de la valeur business. Pour que cette étape soit réalisable, la qualité de la donnée est un facteur clé ! Elle est assurée en collaboration avec le Data Engineer.
Pour finir sur l’impact du Data Engineer, parlons d’automatisation. Une chose qui peut paraître surprenante pour un jeune diplômé, c'est de constater le retard technologique dans la grande majorité des entreprises : énormément de process sont aujourd’hui assurés par des excels, semi-automatiques, voire entièrement à la main. La capacité d’automatisation apportée par un Data Engineer est un game changer : elle permet d’améliorer grandement la productivité et la qualité du travail intra et inter équipes, et généralement vient soulager des personnes qui effectuaient manuellement ces tâches.
Vous voulez faire de la Data Science 😮
Eh bien oui, j’ose le dire : le Data Engineering est un excellent moyen de faire de la Data Science !
Plus sérieusement, Data Scientist et Data Engineer ne sont pas toujours bien dissociés, c’est d’autant plus vrai dans de petites structures. Ainsi devenir Data Engineer c’est aussi une chance d’être un meilleur Data Scientist pour la suite.
En effet, un Data Scientist est amené à calculer des features, nettoyer des dataset, mettre son modèle en production, etc. Ces tâches paraissent “secondaires”, mais représentent la majeure partie du travail du Data Scientist. Il a donc une grande plus-value à avoir une expérience en Data Engineering qui lui permettra d’être plus efficace sur ces aspects de son travail.
Estimation de la répartition du temps d’un Data Scientist. Source: Press Gill, “Cleaning Big Data: Most Time-Consuming, Least EnjoyableData Science Task, Survey Says”, Forbes, 2016.
Pour finir
Bien évidemment, ce que j’ai pu écrire dans cet article est subjectif et propre à mes expériences. Je vous invite ainsi à être curieux et à aller recueillir d’autres avis et points de vue.
J’espère que ce retour d’expérience aura pu vous éclairer sur le rôle du Data Engineer et peut-être vous faire comprendre qu’il est fait pour vous.
Envie d’en savoir plus sur le métier de Data Engineer ? N’hésitez pas à nous contacter !