Feuille de route 2024 pour débuter en data engineering
(blog.dataengineer.io)- Trouver un emploi en data engineering peut sembler difficile en raison d’un écosystème technique complexe (par ex. Spark, Flink, Iceberg, BigQuery, etc.)
- Le simple fait d’apprendre Python et SQL ne suffit pas ; une stratégie structurée et de la pratique sont nécessaires
Éléments nécessaires pour décrocher un emploi en data engineering
-
Compétences techniques :
- Maîtrise de SQL et Python
- Technologies de calcul distribué (au moins l’un de Snowflake, Spark, BigQuery)
- Compréhension des outils d’orchestration (Airflow, Mage, Databricks Workflows, etc.)
- Compétences en modélisation des données et en gestion de la qualité des données
-
Projets de portfolio :
- Réaliser des projets capables de démontrer des compétences techniques concrètes
-
Personal branding :
- Mettre en avant son expertise via la gestion de son profil LinkedIn et la préparation aux entretiens
Apprentissage et maîtrise de SQL
- SQL est le langage indispensable du data engineering :
- Ressources d’apprentissage recommandées :
- Concepts clés :
- Types de JOIN : INNER, LEFT, FULL OUTER (RIGHT JOIN est rarement utilisé)
- Agrégation avec GROUP BY et utilisation de DISTINCT
- Comprendre les fonctions de fenêtre ainsi que les différences entre RANK, DENSE_RANK et ROW_NUMBER
- Comprendre les mots-clés et le shuffle dans les environnements SQL distribués (par ex. JOIN, GROUP BY, ORDER BY)
- Utilisation de CTE (Common Table Expression), Temp Table et View
Apprentissage de Python et Scala
- Choix du langage :
- Python est recommandé aux débutants, Scala aux personnes plus expérimentées.
- Concepts importants :
- Structures de données : listes, dictionnaires, piles, etc.
- Algorithmes : boucles, recherche binaire, compréhension de la notation Big O
- Principaux usages de Python :
- Écriture de DAG Airflow
- Interaction avec des API REST
- Écriture de UDF Spark et optimisation des performances
Concepts de calcul distribué
- L’essentiel du calcul distribué :
- Comprendre les architectures basées sur Hadoop/Spark qui répartissent les volumes de traitement des données
- Gérer les problèmes de shuffle et de skew :
- Utilisation de Broadcast JOIN, Bucket JOIN et du partitionnement
- Utilisation de l’exécution adaptative dans Spark 3+
- Gestion des données en sortie :
- Optimiser la taille des fichiers en exploitant la compression par encodage en longueur de répétition (run length encoding) des fichiers Parquet
Garantir la qualité et l’exploitabilité des données
-
Qualité des données :
- Déduplication, vérification des valeurs NULL, contrôle des formats appropriés et des volumes de données
- Ajouter une validation de qualité dans le pipeline de données avec un outil comme Great Expectations
-
Exploitabilité :
- Documentation adaptée et accord préalable sur les spécifications
- Approches de modélisation des données :
- Comprendre les avantages et inconvénients respectifs du relationnel, du modèle dimensionnel (Kimball) et du One Big Table
-
Conformité liée aux données personnelles :
- Anonymisation des informations personnellement identifiables (PII) et réduction au minimum de la durée de conservation des données
Création de projets de portfolio
- Caractéristiques d’un projet efficace :
- Choisir un sujet qui vous intéresse personnellement
- Créer un projet relié à un frontend (par ex. Tableau, Power BI)
- Appliquer des technologies récentes (Spark, Snowflake, Delta Lake, etc.)
- Mettre en œuvre un pipeline exécuté dans un environnement de production
Personal branding et préparation aux entretiens
-
Utiliser LinkedIn :
- Développer son réseau avec des hiring managers et des pairs
- Gagner en visibilité en partageant son parcours d’apprentissage
-
Préparation aux entretiens :
- Se renseigner sur l’intervieweur et sur l’entreprise
- Répondre aux questions avec calme et positivité
- Transmettre sa curiosité et sa passion pour la technique et le métier
Conclusion
- En 2024, il est possible d’aborder la recherche d’un emploi en data engineering avec une stratégie structurée malgré un marché difficile
- Suivre cette feuille de route vous rapprochera du métier de data engineer que vous visez
1 commentaires
Le Scala est vraiment un excellent langage, mais je trouve dommage qu’il semble perdre peu à peu de son utilité en dehors de Spark.