Cours
Vous avez peut-être entendu dire que le data engineering est le nouveau data science : la croissance fulgurante du domaine en est la preuve. Les entreprises reconnaissent désormais la valeur d’embaucher des data engineers pour conçevoir, construire et maintenir l’architecture indispensable au succès de la data science et de l’analytics. Vous pouvez lire, dans un autre article, les différences entre data engineers et data scientists.
Mais concrètement, que fait un data engineer au quotidien ? Dans cet article, nous détaillons les différents rôles et responsabilités, ainsi que le parcours de carrière type d’un data engineer. Enfin, nous vous ouvrons les coulisses d’un projet de data engineering typique que vous pourriez rencontrer en entreprise. Si vous cherchez comment devenir data engineer, consultez notre article dédié. Vous pouvez également lire comment rédiger une fiche de poste de data engineer si vous recrutez pour cette fonction.
Rôles en data engineering
Le data engineering mobilise un large éventail de compétences, d’outils et de systèmes. On distingue quatre grands groupes de rôles, chacun devant maîtriser un ensemble d’outils et de savoir-faire pour être efficace.
- Généralistes. Ils interviennent sur l’ensemble de la chaîne : collecte, stockage, analyse et circulation des données. Ils doivent connaître et savoir utiliser un large panel d’outils et de compétences.
- Spécialistes du stockage des données. Ils configurent et administrent des bases de données relationnelles et non relationnelles (SQL, NoSQL, PostgreSQL), des entrepôts de données (comme Redshift et Panoply), ainsi que des systèmes big data (Hadoop, Spark).
- Spécialistes du développement et des pipelines. Ils créent et pilotent les flux de données via des scripts et des pipelines de données. Ils doivent maîtriser plusieurs langages, comme Python, Java et C++.
- Spécialistes analytics. Ils travaillent étroitement avec les data scientists et les professionnels de l’analyse de l’organisation. Ils doivent connaître des outils analytiques (Power BI, Tableau), des bibliothèques de machine learning (TensorFlow, PyTorch) et d’autres outils au service des projets analytiques (outils ETL, systèmes big data).
Que fait un data engineer ? Parcours de carrière
Le parcours d’un data engineer varie selon la taille de l’entreprise et la maturité des équipes data. La plupart suivent toutefois cette progression :
- Data engineer junior
- Data engineer confirmé
- Data engineer senior
- Fonctions managériales senior
Data engineer junior
En début de carrière, les juniors prennent généralement en charge de petites tâches de maintien en conditions opérationnelles : tests, recherche et correction de bugs, ajout de fonctionnalités à des systèmes existants. À ce stade, ils ne pilotent pas encore de projet en autonomie et opèrent surtout en appui de leurs collègues seniors.
Le plus important durant ces premières années est d’apprendre et d’acquérir de l’expérience pratique avec les outils qu’ils utiliseront par la suite. Ils découvrent aussi comment les différentes équipes et directions collaborent pour résoudre les problèmes et répondre aux questions qui se posent.
Data engineer confirmé
Après environ 1 à 3 ans, un data engineer peut passer au niveau confirmé. Il est alors davantage exposé aux aspects gestion de projet et amené à collaborer plus étroitement avec d’autres équipes et métiers.
On lui confie généralement la conception et la construction de systèmes au service des data scientists et des équipes analytiques. Il peut encore être supervisé par un data engineer senior. Pour réussir, il doit développer de solides compétences de communication et savoir travailler efficacement en transversal.
Les data engineers peuvent rester à ce niveau environ 3 à 5 ans. Durant cette période, ils affinent leurs compétences en programmation et se familiarisent avec tous les outils et systèmes utilisés dans l’entreprise. Ils savent identifier et corriger les bugs et problèmes, et collaborent efficacement au sein des équipes et entre équipes.
Data engineer senior
Une fois le niveau senior atteint, ils assument davantage de responsabilités managériales. Ils peuvent encadrer un ou plusieurs data engineers, les former et leur attribuer des projets.
À ce stade, le data engineer maîtrise les aspects techniques de son rôle et conçoit des systèmes, résout des problèmes avec aisance. Mais il est aussi plus impliqué côté métier et doit penser stratégiquement : orientation des projets data, efficacité à long terme et optimisation des systèmes.
Cela suppose un changement de posture, parfois délicat. Beaucoup n’ont pas forcément d’appétence pour la stratégie et le pilotage, et choisissent de ne pas aller plus loin dans la voie managériale.
Fonctions managériales senior
Avec six ans d’expérience ou plus, ils peuvent évoluer vers des postes davantage orientés management, par exemple :
- Data engineering manager
- Director of data engineering
- Chief data officer
En plus d’une excellente maîtrise technique, ces fonctions exigent de fortes compétences en infrastructure et architecture data, ainsi que la capacité à manager et faire grandir des équipes analytiques. Elles impliquent aussi de définir les processus de développement de systèmes haute performance, de cadrer de nouveaux projets et de définir/piloter des SLA pour les systèmes nouveaux et existants.
Que fait un data engineer ? Exemple de projet type
Illustrons les rôles et responsabilités d’un data engineer. Supposez que vous travaillez pour un grand groupe proposant un service de livraison de repas via une application mobile. L’app fait l’interface entre le restaurant et le livreur. Les clients passent commande dans l’app, le restaurant est averti. Une fois la commande prête, un livreur est affecté et la livraison s’effectue.
On l’imagine, une telle app génère quotidiennement un volume important de données : informations sur les restaurants, les livreurs, les clients, journaux de chaque interaction dans l’app. S’y ajoutent les données issues du service client (plaintes, compliments, litiges) et les logs d’erreurs de l’application.
Un data scientist ou un data analyst de votre entreprise doit identifier des tendances de commandes afin de construire un modèle de machine learning. Pour cela, il vous demande d’extraire et préparer des données de commandes agrégées par jour, avec une distinction entre nouveaux clients et clients récurrents.
Clarifier le besoin
Pour résoudre ce problème, le data engineer commence par clarifier la demande via les étapes suivantes :
- Définir la granularité : par commande, par jour, semaine, mois, année. Ici, on agrège par jour avec une segmentation par type de client (nouveau ou récurrent).
- Identifier d’éventuels filtres : pays, modèle de téléphone, etc.
- Préciser la période d’analyse : historique complet ou dernière année uniquement ?
- Recenser les sources et/ou tables de données. Les données sont stockées dans un entrepôt central ; il faudra accéder aux tables des commandes et des clients. Si des filtres supplémentaires sont requis, d’autres tables seront nécessaires.
Extraction des données
Une fois le besoin clarifié, le data engineer passe à l’extraction et à l’exploration via les étapes suivantes :
- Déterminer les jointures à effectuer entre les tables commandes et clients, et leurs relations (clés de jointure, cardinalités). Cela requiert une bonne maîtrise de SQL et du modélisation de données.
- Créer une variable catégorielle de type de client, basée sur le nombre de commandes passées. Cette variable comportera les catégories « nouveau client » et « client récurrent ».
- Évaluer la qualité des données. Identifier les valeurs manquantes ou anormales qui nécessitent correction.
Une fois les données prêtes pour le data scientist ou le data analyst, il convient de créer un endpoint d’API interrogeable pour extraire ces données. Selon le volume et la complexité, ce projet peut prendre de quelques jours à plusieurs mois.
Pendant tout le processus, le data engineer peut devoir travailler avec de nombreux systèmes, selon l’emplacement des données et les traitements supplémentaires requis.
Parmi les systèmes susceptibles d’être mobilisés : SQL Server, Hadoop ou Redshift pour le stockage, SQL pour l’interrogation, et Python pour les scripts de traitement.
Pour conclure
Vous l’aurez compris, un projet type de data engineering fait appel à des compétences clés, comme la construction de pipelines de données. Pour accélérer votre apprentissage et vous préparer à un rôle en data engineering, essayez le parcours de compétences Python for Data Engineering sur DataCamp. Pour une première expérience pratique avec les entrepôts de données cloud, testez notre projet Exploring London’s Travel Network. Vous pourrez y utiliser Amazon Redshift, Google BigQuery et Snowflake directement dans votre navigateur. Enfin, pour attester de vos compétences, passez notre certification data engineer.
Nous espérons que cet article vous a éclairé sur le rôle des data engineers et leur quotidien. Si vous envisagez de démarrer une carrière en data engineering, vous avez désormais une meilleure vision du parcours possible.