39 points par xguru 2024-11-25 | 1 commentaires | Partager sur WhatsApp
  • 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

  1. 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
  2. Projets de portfolio :

    • Réaliser des projets capables de démontrer des compétences techniques concrètes
  3. 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

  1. 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
  2. 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
  3. 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

  1. Utiliser LinkedIn :

    • Développer son réseau avec des hiring managers et des pairs
    • Gagner en visibilité en partageant son parcours d’apprentissage
  2. 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

 
joon14 2024-11-25

Le Scala est vraiment un excellent langage, mais je trouve dommage qu’il semble perdre peu à peu de son utilité en dehors de Spark.