Logo Blent.ai
← Retourner à la liste des articles
Image blog
Auteur

Par Maxime Jumelle

CTO & Co-Founder

Publié le 5 oct. 2020

Catégorie Data Engineering

Devenir Data Engineer : toutes les infos

Tu as envie de te lancer dans le Data Engineering mais tu ne sais pas par où commencer ? Avec toutes les technologies et outils qu'utilisent les Data Engineers au quotidien, il y a de quoi s'y perdre ...

Mais pas de panique ! Nous sommes justement là pour t'aider à y voir plus clair.

Le Data Engineering en quelques mots

Quel est le quotidien du Data Engineer ? En réalité, tout va dépendre de la taille de l'entreprise, du domaine et de la maturité de l'entreprise par rapport à son infrastructure IT. De manière synthétique, les compétences du Data Engineer peuvent être regroupées en 4 blocs de compétences.

  • La mise en place et la maintenance de systèmes de stockage de fichiers et de bases de données.
  • La création de clusters de calcul parallèle et de systèmes distribués.
  • L'implémentation de systèmes de gestion de données en temps réel (Data Streaming).
  • L'automatisation de pipelines de données et de déploiement de modèles de Machine Learning.

Stockage et bases de données

Une des premières compétences demandées et que l'on retrouve parmi une large partie des Data Engineers est la maîtrise des bases de données et des systèmes de stockage. Le Data Engineer manipule constamment différentes sources de données, aussi bien non structurées (souvent présentes dans le Data Lake) que structurées (plutôt présentes dans le Data Warehouse).

Ainsi, le Data Engineer va jongler entre plusieurs systèmes de gestion de bases de données, chacun supportant un langage de requête (comme le SQL ou le shell mongo par exemple). Aujourd'hui, le Data Engineer doit savoir manipuler plusieurs bases NoSQL, parmi lesquelles BigQuery, Cassandra ou encore MongoDB sont les plus demandées.

Pour gérer de gigantesques tables de données, les choix à privilégier sont du côté des bases dites orientées colonnes, notamment avec BigQuery et ses nombreux tutoriels proposés par Google (qui n'est autre que le créateur de BigQuery).

Enfin, de plus en plus de Data Lake intègrent des bases de données orientées documents, dont aujourd'hui MongoDB, où tu trouveras une introduction ici, est le leader incontesté.

Google BigQuery

Calcul parallèle

Hadoop et Spark, ce sont probablement des mots que tu as déjà entendus. Il s'agit en fait des deux frameworks Big Data les plus populaires. Leur spécialisation ? Le calcul parallèle à (très) grande échelle.

🙋 C'est quoi un framework Big Data ?

Les bases de données permettent de les stocker et de les manipuler pour en extraire des informations. En revanche, lorsque les données sont trop volumineuses, les bases de données ne peuvent plus supporter la charge. C'est ainsi que le framework Big Data va nous permettre de manipuler des données stockées dans des bases sans exécuter les calculs sur ces dernières . On pourra ainsi faire tous les traitements que l'on souhaite tout en gardant la base de données accessible sans qu'elle soit saturée.

Il s'agit d'un incontournable pour le Data Engineer. Dès lors qu'il devra manipuler des dizaines, des centaines, voir des milliers de Go de données, il sera difficile de s'en passer.

La première chose à faire pour le Data Engineer, c'est de bien comprendre le fonctionnement de MapReduce. MapReduce, c'est un algorithme très populaire, initialement développé par Google, pour faire du calcul parallèle sur n'importe quelle taille de données. Il est simple à mettre en place, et fonctionne aussi bien sur des petits jeu de données (~10 Go) que sur de très grandes bases (> 1 To). Si tu veux en savoir plus, Blent a justement fait un webinar d'introduction au calcul parallèle. 😉

Pour aller plus loin avec le calcul parallèle, tu peux notamment suivre la documentation officielle qui te fournira des exemples de code pour t'assurer un bon départ. Gare à l'installation de Java et des dépendances, car il y a plusieurs manipulations à faire niveau système.

Data Streaming

Pour le Data Engineer, il s'agit d'une des compétences les plus difficiles à acquérir. Manipuler et stocker des données en temps réel, ce n'est pas une mince affaire.

Actuellement, il y a plusieurs systèmes de brokers (systèmes de gestion de données en temps réel) sur le marché, majoritairement open source. Parmi les plus populaires, nous trouvons Apache Kafka, qui fut à l'origine développé chez LinkedIn. Ce dernier est spécialement orienté Big Data, lorsque la quantité de données arrivent si rapidement qu'il faut configurer plusieurs serveurs ! Si tu veux connaître tout l'essentiel sur Kafka en 10 minutes, cette vidéo est faite pour toi !

D'autres brokers sont également utilisés, notamment dans les applications, avec RabbitMQ ou ActiveMQ. Pour en savoir plus, Vous pourrez trouver un article assez détaillé ici.

Automatisation et déploiement

Manipuler des données, c'est le coeur de sujet du Data Engineer. Mais cela nécessite d'effectuer des tâches redondantes quotidiennement, ce qui n'est pas toujours la meilleure solution. Par exemple, devoir exécuter tous les jours le calcul de l'inventaire des stocks dans la base de données, c'est quelque chose d'important, mais pour autant de très répétitif. Rien de mieux que d'automatiser cette tâche et de la planifier quotidiennement avec des outils d'automatisation de pipelines

Pour exécuter des traitements Big Data (avec Hadoop et Spark par exemple), un outil d'automatisation souvent mentionné est Airflow, initialement conçu par Airbnb. Avec Airflow, le Data Engineer est capable d'automatiser, de planifier et de monitorer des séquences d'instructions sous forme de graphes, séquentiellement ou de manière parallèle. Tous ces concepts sont détaillés ici.

L'autre solution du moment est le petit dernier de Spotify, avec Luigi (non, pas celui auquel tu penses 🙃), qui dispose d'une interface plus ergonomique.

Tout ceci va permettre au Data Engineer d'automatiser non seulement les pipelines de données, mais également les déploiements de modèles de Machine Learning lorsqu'il travaille en collaboration avec des Data Scientists. Il s'agit donc d'un incontournable lorsque l'on souhaite mettre en production des modèles. Là-aussi, en seulement quelques configurations, Airflow se révèle très efficace pour déployer des modèles.

Concrètement, par où commencer ?

Comme tu as pu le voir, il y a beaucoup d'outils et de technologies différentes, ce qui n'est pas toujours facile à prendre en main au début. Le cas d'apprentissage le plus pertinent est d'avoir un fil rouge, c'est-à-dire un projet dans lequel vont intervenir toutes ces technologies en parfaite harmonie.

De plus, si tu cherches un job de Data Engineer, tu taperas dans l'oeil des recruteurs et des équipes Data si tu montres que tu as mis en place un ou plusieurs projets Data Engineering.

Si tu as aimé cet article, alors tu vas sûrement adorer nos workshops en ligne où l'équipe de Blent te donne plein de bons conseils pour démarrer ta carrière dans la Data !

Articles similaires

Blog

23 mai 2023

Data Engineering

Apache Phoenix est une extension open-source de Apache HBase qui fournit une couche de requêtes SQL pour les données stockées dans HBase. Phoenix permet ainsi d'interagir sur les tables HBase à l'aide de requêtes SQL standard, sans avoir à écrire de code spécifique à HBase
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

15 mai 2023

Data Engineering

Apache Avro est un système de sérialisation de données et un format de données compact, rapide et polyvalent. Il a été développé par Apache Software Foundation et est conçu pour faciliter l'échange de données entre les différentes applications. Contrairement à d'autres formats comme CSV ou JSON, une des grandes particularités d'Apache Avro est qu'il utilise un schéma pour définir la structure des données, ce qui permet de sérialiser et de désérialiser les données de manière efficace, tout en garantissant la compatibilité entre les différentes versions des schémas.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

12 mai 2023

Data Engineering

Apache Flink est un système de traitement des données en temps réel et de traitement par lots à grande échelle. Il s'agit d'un projet open source développé par la fondation Apache, conçu pour offrir une haute disponibilité, une faible latence et une grande capacité de traitement des flux de données. Flink fournit un modèle algorithmique unifié qui permet de traiter les données en temps réel et par lots de manière cohérente. Il prend en charge des opérations avancées telles que la transformation, le filtrage, l'agrégation et la jointure de données en continu.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Logo Blent

60 rue François 1er

75008 Paris

Blent est une plateforme 100% en ligne pour se former aux métiers Tech & Data.

Organisme de formation n°11755985075.

Gestion des cookies

© 2023 Blent.ai | Tous droits réservés