La donnée est un enjeu important pour les entreprises, qui cherchent à les traiter et les valoriser au cours de projets data. Pour cela, de nouveaux profils spécialisés ont fait leur apparition. C’est le cas notamment du Data Engineer. Qu’est-ce qu’un data engineer, que fait-il de ses journées, et quel rôle a-t-il dans les projets ? Voici un petit tour d’horizon du métier !
Que fait un data engineer ?
Le data engineer est le responsable de la mise à disposition des données d’une entreprise.
Il créé des flux de données, afin de les transférer d’un système à un autre. Sa mission est d’agréger toutes les données de ce système : il les filtre, les importe, les nettoie et les transforme pour les mettre à disposition. Il se charge également du système de stockage, il le design puis l’optimise.
Ces optimisations permettent de gagner du temps de traitement et de consommer moins de ressources, pour rendre la solution plus performante.
Quelle différence entre Data Engineer et Data Scientist ?
Data Engineer et Data Scientist sont deux métiers très différents mais complémentaires. Chacun a son rôle à jouer dans un projet data. Le Data Engineer est un technicien de la donnée tandis que le Data Scientist est un Mathématicien.
Le Data Engineer est responsable de la collecte, du nettoyage et de la mise à disposition des données. C’est lui qui construit la « tuyauterie » afin que les Data Scientists puissent travailler.
Le Data Scientist est chargé d’exploiter et valoriser ces données en construisant des modèles d’intelligence artificielle. Il imagine des solutions qui permettent d’automatiser un traitement dépendant d’un humain, ou encore de réaliser des traitements trop complexes pour nous…
Une fois le modèle de data science élaboré, le Data Engineer est souvent amené à l’industrialiser, afin qu’il soit opérationnel à de plus grandes échelles. Il s’assure que le modèle est correctement alimenté, que les données générées sont correctement transmises aux utilisateurs.
Les missions d’un Data Engineer
Le travail du data engineer est diversifié, il dépend du projet, du type de données, du système de gestion, des technologies utilisées, des cas d’usages et de l’entreprise.
Si les méthodes utilisées peuvent varier, les missions du data engineer peuvent se résumer à :
Comprendre la nature de la donnée
La compréhension de la donnée est une part importante du travail du Data Engineer. Il doit comprendre la réalité fonctionnelle de l’entreprise afin de pouvoir retranscrire de façon cohérente les règles métier dans le code.
Conceptualiser les flux de données et choisir le système de stockage
Le système de stockage dépend des besoins et du volume de données à traiter. Dans certains cas, un DataLake sera nécessaire pour distribuer les opérations et obtenir des performances satisfaisantes ; dans d’autres cas, le choix d’un système de gestion de base de données adapté (timeseries, graphe, relationnel classique, etc.) suffit. Dans tous les cas, la modélisation des données sera faite à la fois en fonction de la technologie retenue, et de la nature des données traitées.
Le Data Engineer réfléchit et conçoit cette architecture pour qu’elle soit pertinente et optimisée. Il imagine ensuite les flux de données afin d’acheminer les données jusqu’au système de stockage, puis de les transformer de façon adaptée à leur utilisation à venir.
Développer les programmes qui permettent de transporter les données brutes jusqu’au système de stockage
Une fois son « plan d’action » défini, il développe les programmes permettant d’identifier, collecter et transporter les données brutes d’une multitude de sources jusqu’au système de stockage (data lakes, data warehouses, datamarts …). C’est pour cela qu’on dit que le data engineer fait la « tuyauterie » du projet data.
Transformer la donnée pour en faire une solution correspondant au besoin
Une fois la donnée stockée correctement, il faut la transformer pour correspondre aux attentes du projet et des métiers. Selon la donnée traitée et les besoins, la transformation peut prendre une ou des formes différentes :
Faciliter le traitement ou la lecture
Il arrive que les données ne soient pas dans un format adapté aux technologies choisies. Le Data Engineer transforme la donnée si besoin, afin que celle-ci soit par la suite prête à être utilisée sans traitement supplémentaire.
Créer de nouveaux modèles ou de nouvelles données
Parfois, les données brutes ne suffisent pas. Elles ont besoin d’être traitées pour créer de nouvelles données utiles. Dans ce cas, le data engineer agrège, corrèle, fait des liens entre les données afin de mettre à disposition les informations manquantes et nécessaires pour certains cas d’usage.
Mettre à disposition des utilisateurs une donnée conforme à leurs besoins
Une fois les données traitées, le data engineer met à disposition les données demandées par les usagers de celles-ci. Il peut s’agir du pôle data science, qui réutilisera et retraitera ces données, ou encore les métiers qui ont besoin des données à des fins d’analyse.
Améliorer les systèmes déjà mis en place
Une fois le système mis en place, celui-ci peut être amélioré ou encore élargi à de nouveaux types de données. Le Data Engineer travaille à l’optimisation du système de transport et de stockage de la donnée.
Cela peut inclure l’optimisation de la solution de stockage, l’élargissement de la collecte et du nettoyage de la donnée à d’autres types de données ou d’autres systèmes sources, la création de nouveaux algorithmes plus adaptés, etc.
Quel est le rôle du Data Engineer dans le projet ?
Le Data Engineer travaille sur des données afin de répondre à une problématique métier. Il intervient souvent après la définition et la validation de la problématique et du projet par les métiers et la direction. Il a donc peu de pouvoir de décision sur la nature du projet, mais c’est lui qui est responsable de la façon de faire. Le pôle data engineering va souvent être responsable et décisionnaire de la façon de traiter les données existantes, l’architecture, et de la mise à disposition et du traitement des données.
Ces configurations peuvent varier selon les entreprises. Le Data Engineer peut prendre des places variées dans une entreprise et dans un projet.
Quelle différence entre Data Engineer et Développeur ?
Le Data Engineer semble être un métier très spécifique, mais il est en réalité plus proche du Développeur que ce que l’on pense. On pourrait même parler de « Développeur Data » tant les passerelles et les similarités entre ces deux métiers sont nombreuses.
Le développeur est chargé de produire et mettre en production une solution à l’aide de différentes technologies. Il utilise la logique algorithmique, les langages de programmation, et manipule des bases de données pour arriver à ses fins.
Le Data Engineer utilise des moyens similaires afin de traiter les grands volumes de données auxquels il est confronté.
Il travaille cependant à une échelle beaucoup plus grande que le développeur. Le Data Engineer est confronté à des volumes de données beaucoup plus importants, stockées à des endroits variés, et parfois non-structurées. Les données ne sont souvent pas utilisables en l’état, il doit donc les traiter avant de pouvoir s’en servir.
Là où les développeurs manipuleront la donnée à petite échelle dans le but de créer leur solution, la manipulation de volumes importants de données diverses et variées est au cœur du travail de Data Engineer.
Maintenant, le métier de data engineer n’a plus de secret pour vous !
Développeur ou étudiant dans la data, ce métier t’intéresse ? Rendez-vous très bientôt pour un article où tu découvriras tout ce qu’il y a à savoir pour devenir Data Engineer.
🤫 REDLab est toujours à la recherche de Data Engineers. Si tu souhaites postuler, rendez-vous par ici :
Par Adam & Enzo
Adam et Enzo sont Data Engineers chez REDLab.
Rédaction Andréa Meyer