Ysance - Your Data in Action

    Conseil N°5 pour être un super Data Engineer

    [fa icon="calendar"] 21/02/20 10:29 / par Laurent Letourmy

    2019-12-04-Conseil5-Data-Engineer

    Le conseil précédent avait pour but de rappeler la responsabilité d’un job sur son propre environnement de travail, ce que l’on oublie assez facilement lorsqu’on code. Nous allons maintenant voir comment et pourquoi il faut découper ses traitements, simple, mais tellement évident et efficace en pratique.

    Conseil N°5 : Restreindre vos jobs à une petite taille et leur donner un rôle bien précis

    Nous pourrions être tentés de faire un job qui fait tout. Celui-ci va enchaîner un ensemble d’opérations jusqu’à obtenir le résultat souhaité : intégrer de la donnée externe, valider le contenu des données, effectuer des agrégats, des calculs et enfin rendre disponible son résultat pour un autre usage.

     

    Soyons clair: cette pratique est absolument à proscrire ! Des dizaines d’années de bonnes pratiques (nous nous référons encore à Ralph Kimball) ne nous contrediront pas.

     

    Le découpage des jobs en “petits” traitements a trois objectifs :

    1. Faciliter la maintenance du job : découper vos traitements en plusieurs jobs vous aidera à garantir un niveau de qualité et de compréhension du rôle du job en ayant recours à moins de documentation. Moins un job réalise d’opérations, plus il est facile à comprendre et donc à faire évoluer sans régression (Never forget: “Keep It Simple and Stupid”).
    2. Etre efficace en cas d’incidents : il vous sera plus facile de diagnostiquer l’origine d’un incident avec un pipeline de petits jobs plutôt qu’avec un gros job monolithique. De plus, vous allez pouvoir reprendre l’exécution d’un pipeline de traitements en cas d’échec sans ré-exécuter l'enchaînement des opérations depuis le début.
    3. Pouvoir paralléliser les actions qui peuvent l’être : en confiant à la technologie adaptée vos jobs (Hadoop, Celery...), vous pourrez exécuter en même temps les opérations sans dépendance entre elles afin de gagner sur le temps d’exécution du pipeline complet.

     

    Il existe un modèle de découpage des jobs en rôle éprouvé qu’il faut continuer à suivre :

    • des jobs d’intégration de données dans une zone de “staging”
    • des jobs de contrôle de l’intégrité et de la qualité des données
    • des jobs d’enrichissement, d’analyse et d'agrégation
    • des jobs d’exposition des données pour leur usage suivant

     

    Gardez  en tête que cette structuration vous aidera à concevoir des pipelines de data où vous pourrez, éventuellement, ré-utiliser des jobs pour des objectifs différents. Sur nos plateformes, nous utilisons par exemple un même job d’export de fichiers vers des destinations externes (Amazon S3, SFTP, GCS…) dans plusieurs pipelines.

     

    Conclusion:

    Que pensez-vous de ce conseil ? Ces pratiques, simples à retenir, datent en fait de plusieurs dizaines d’années en arrière, lorsque les ressources informatiques étaient rares et chères. C’est d’ailleurs utilisables très souvent en développement, pas uniquement en Data. N’hésitez pas à laisser des commentaires et venez discuter avec nos experts, qui se feront un plaisir de vous accueillir dans nos locaux rue du Sentier à Paris.

    ____________________________________________

    Pour relire le conseil N°4 c'est par ici

    Pour relire le conseil N°3 c'est par ici

    Pour relire le conseil N°2 c'est par ici

    Pour relire le conseil N°1 c'est par ici

     

    Pour postuler directement et joindre notre équipe de Data Engineer, c'est par ici.

    Thèmes : Actu Ysance, Data Services, Data Engineer

    Laurent Letourmy

    Par Laurent Letourmy

    Ingénieur Epita, il a débuté sa carrière dans le groupe Cross Systems dont il a co-fondé la filiale parisienne en 1996. La société connaît une forte croissance et le groupe s'introduit sur le Nouveau Marché en 1999 et atteindra une capitalisation de 800M€. Spécialiste reconnu des architecture transactionnelles, il y exerce diverses responsabilités techniques, managériales et commerciales et travaille avec des clients tels que le Club Med, Voyages-Sncf.com, Orange. Entrepreneur passionné de technologies innovantes, vainqueur de deux hackathons dans la Silicon Valley, investisseur actif au sein de nombreux de nombreux projets pionniers B2B et B2C. En 2005, il co-fonde et dirige Ysance qui connaît un fort développement depuis ses débuts.

    S'abonner au blog