Ces dernières années, toutes les problématiques relatives à l’analyse de données et à leur exploitation – par la BI, le Machine Learning – ont pris une place très importante dans le monde professionnel. De nombreuses entreprises ont donc vu le jour, ou se sont adaptées afin de répondre à ce nouveau besoin grandissant. Toutefois, on oublie parfois de mentionner une autre conséquence notable de cette tendance : l’apparition ou la spécialisation de nombreux profils qui permettent quotidiennement le succès de ces projets data comme les métiers de Data Scientist, Data Engineer, Data Analyst, Chief Data Officer…
Cette fiche métier s’adresse donc à ceux qui veulent y voir plus clair au milieu de cette jungle d’anglicismes, mais aussi à ceux qui souhaitent constituer une équipe data pour leur entreprise car oui, le data engineer est probablement la première personne dont vous aurez besoin.
Que fait le Data Engineer ?
Les Data Engineers sont responsables de la création et de la maintenance de l’environnement qui permet à presque toutes les autres fonctions du monde des données d’opérer. Par data engineering, on entend qu’ils sont responsables du développement, de la construction, de la maintenance et du test des architectures, telles que les bases de données et les systèmes de traitement. Pour faire simple, ils sont les garants de la chaîne de production de la donnée et de son bon déroulement, de l’extraction de la donnée à sa visualisation.
Le data engineer est celui qui travaille à la conception, à la création et à l’amélioration de l’infrastructure permettant l’accès aux données et à leur gestion.
Data Engineer vs Data Scientist
Même si les deux postes sont désormais séparés en deux rôles distincts, il arrive encore que la frontière entre les missions du Data Engineer et celles du Data Scientist soit floue. Pas étonnant quand on sait que nombre de data scientists ou engineers portent les deux casquettes ou ont évolué de l’un à l’autre. Mais raison de plus de bien rappeler les différentes tâches qui incombent aux deux professions, et qui les différencient.
Pour faire simple, le travail du Data Engineer vient avant celui du Data Scientist et sert à sa mise en production. L’ingénieur se concentre sur la mise en place du pipeline de données et s’applique à ce que les autres puissent faire leur travail correctement en assurant sa maintenance. D’une manière générale, le data engineer est donc bien plus concerné par l’infrastructure et l’architecture qui permettent de générer les données et les “ranger” afin qu’elles soient exploitables. Le Data Scientist, lui, utilise ensuite ces données pour y appliquer des algorithmes et détecter des tendances. C’est pourquoi le poste du Data Engineer est primordial, au même titre que celui du Data Scientist ou du Data Miner, et c’est cette interdépendance qui fait leur complémentarité. Le gap entre leurs missions a d’ailleurs donné des idées à certains puisque le rôle du machine learning engineer est aussi de plus en plus populaire, et son métier est justement à la croisée de celui des data engineers et des data scientists.
En réalité, c'est plutôt le rôle du Data Architect qui se rapproche du métier d’ingénieur de données puisque Data Engineers et Data Architects s'assurent tous deux du bon fonctionnement de l'infrastructure.
Poser les fondations pour mettre en œuvre votre stratégie data
On ne commence pas la construction d’une maison par le toit. Il en va de même lorsqu’on fait de l’analyse de données : avant de commencer les calculs, il faut pouvoir accéder aux données.
Dans un projet data, on considère souvent que la valeur réside dans l’algorithme permettant de transformer automatiquement et rapidement des données massives en une information non triviale : recommandation de produits, traduction, reconnaissance faciale…, de fait, le data scientist – chargé du développement de cet algorithme – semble être l’acteur essentiel du projet.
C’est partiellement faux, pour une raison très simple : la valeur ajoutée réside, en majeure partie, dans les données elles-mêmes. En effet, les algorithmes de machine learning sont souvent open source, les données, en revanche, sont précieusement gardées ; il y a une raison à cela. Par conséquent, en caricaturant, si vous avez des données précises, pertinentes et bien documentées, la valeur ajoutée du data scientist sera – logiquement – moindre. Pour faire simple, le data scientist ne pourra jamais faire mieux que ce que les données lui permettent de faire.
Pour faire une analogie rapide, on peut considérer une équipe de Formule 1 : le pilote est au centre de l’attention, pourtant, il ne pourra pas aller au-delà des limites techniques de sa voiture. On peut parier qu’un pilote serait incapable de faire 100 mètres sans l’armée de mécaniciens pour préparer sa voiture et sans les ingénieurs pour la concevoir. À l’inverse, un ingénieur ayant passé des mois à concevoir une voiture, même sans talents de conduite, sera sûrement capable de finir une course, même s’il la finira surement dernier.
C’est la raison pour laquelle le data engineer est essentiel : c’est lui qui crée, entretient et améliore les systèmes d’information permettant aux autres membres de l’équipe data de faire leur travail. Sans lui, vos data scientist passeront probablement plus de temps à administrer les données qu’à les analyser.
Quelles sont ses compétences ?
Le Data Engineer est très centré sur l’infrastructure de gestion des données de l’entreprise, ainsi les compétences requises sont, de manière prévisible, centrées sur l’architecture des données :
- Connaissance approfondie de SQL et autres langages de base de donnée : le Data Engineer doit maîtriser les outils de gestion des bases de données (BDD) et avoir une bonne connaissance en SGBDR (SQL, DB2…). Une maîtrise d’autres technologies de requêtage telles que Cassandra ou Bigtable, sont intéressantes en fonction des technologies utilisées par l’entreprise, d’autant plus que les grandes entreprises ne se contentent souvent pas d’une seule technologie de requêtage ;
- Stockage de données et outils ETL : la maîtrise des outils de stockage de données (Hadoop) et des ETL (Talend, Nifi…) du marché est essentielle ;
- Analyses basées sur Hadoop (Hbase, Hive, etc.) : une bonne compréhension de l’analyse de donnée basée sur Apache Hadoop est une compétence de plus en plus courante dans le métier de Data Engineer, les connaissances de Hbase ou Hive étant souvent considérées comme un must-have sur les postes de Data Engineer middle & Senior. On en demandera moins aux Data Engineers junior ;
- Maîtrise du Code : la connaissance d’une ou plusieurs langues de programmation est un vrai plus et devient même un prérequis. On exigera une familiarité, sinon une expertise dans un des langages suivants : Python, C / C ++, Java, Scala, Perl, ou dans d’autres langues similaires ;
- Machine Learning, Deep Learning et Intelligence Artificielle : bien que ce soit principalement le domaine de compétences du data scientist, un certain niveau de compréhension sur ces domaines représente évidemment un atout afin de pouvoir travailler en collaboration avec les Data Scientists. Pour cette raison, une certaine connaissance de l’analyse statistique et de la modélisation des données peuvent s’avérer utiles, tout comme des connaissances dans le domaine de l’apprentissage automatique. L’ensemble de ces compétences « bonus » servent aussi à se démarquer, car être capable de « mettre les deux chapeaux » est inestimable pour une entreprise ;
- Divers systèmes d’exploitation : UNIX, Linux et Solaris.
Le data engineer doit être capable de se familiariser rapidement avec de nouvelles technologies
Parmi les responsabilités des data engineers, on retrouve les points suivants :
- conception et gestion de bases de données et/ou de data lake ;
- collecte de différentes sources et rapprochement ;
- mise en place de « pipeline » permettant d’automatiser les différentes étapes d’acquisition des données, de l’extraction jusqu’au stockage ;
- création d’outils permettant d’accéder aux données ;
- gestion de la scalabilité de l’infrastructure (horizontale et verticale) de manière transparente pour les autres acteurs
En ce qui concerne les compétences à proprement parler, il est difficile d’en faire une liste, même indicative. En effet, la diversité des cas rendrait cette liste très (trop) longue.
Voilà une petite explication pour s’en convaincre : il est préférable qu’un data engineer ait des connaissances dans le langage utilisé pour analyser les données, donc il peut s’agir peut-être de R, Python ou Java (ou bien d’autres encore). D’un autre côté, il lui faut aussi des compétences relatives au service cloud si l’entreprise a choisi AWS, Microsoft Azure ou bien Google Cloud. Mais également une bonne maîtrise des technologies de stockage adaptées aux données exploitées : base de données de type SQL, ou bien un cluster Elastic Search…
S’il utilisait Saagie, ce travail pourrait s’avérer moins complexe, mais on se rend déjà compte qu’une offre d’emploi demandant une maîtrise de toutes ces technologies n’aurait pas vraiment de sens. Finalement, au-delà d’une liste précise, la meilleure compétence du data engineer est sûrement celle d’apprendre à utiliser rapidement une technologie inconnue (sans en devenir expert bien sûr) pour pouvoir par exemple intégrer une nouvelle source de données si nécessaire. Ainsi, il est capable d’adapter rapidement l’infrastructure de travail nécessaire aux autres membres de l’équipe data pour répondre aux besoins business.