Ysance - Your Data in Action

    Conseil N°3 pour être un super Data Engineer

    [fa icon="calendar"] 25/01/20 09:39 / par Laurent Letourmy

    2019-12-04-Conseil3-Data-Engineer

    Nous espérons que vous avez pu tirer parti du précédent conseil, et donc compris que le management de très grands volumes de données devait vous amener à revoir...

    Conseil N°3 : “Idempotence” : un job lancé plusieurs fois de suite doit avoir le même résultat

    ...les notions de modélisation que vous avez probablement mis en oeuvre dans des projets plus traditionnels. Mais ainsi sont les BigData !

    Idempotence: Si vous n’avez jamais entendu prononcer le mot  “idempotence”, nous espérons qu’il vous restera en mémoire. Ce concept est primordial dans le traitement de la donnée.

    Les personnes assurant au quotidien le bon fonctionnement des traitements d’une plateforme data sont confrontées à des incidents pour de multiples raisons : la qualité de la donnée, un cas fonctionnel non traité, les limites techniques et les défaillances de l’infrastructure ou tout simplement un bug…

    Une fois le problème résolu, la seule action à faire doit être de relancer le traitement sans se poser de questions : “Puis-je relancer le traitement sans risque ? Va-t-il s’exécuter avec les mêmes données ? Dans quel état sont les données en destination du traitement ? Y a-t-il un risque d’insérer des données en double, ou pire, de supprimer des données ?” Bref, des questions sensibles non ?

    Un job se doit de produire le même résultat quand il est lancé plusieurs fois de suite avec les mêmes données en entrée et avec les mêmes paramètres. Un job est comme une fonction mathématique (si si, vous l’avez appris surement en cours de mathématiques de 4è...):

    • Il ne modifie pas les données qu’il a en entrée,
    • Ses paramètres sont fixes et explicites, son contexte d’exécution ne varie pas avec des paramètres cachés,
    • Il doit être capable de restaurer l’état initial des données produites s’il échoue (le fameux rollback).

    Plus facile à dire qu’à faire, surtout avec des bases de données big data où les transactions avec rollback ne sont pas implémentées et où les données sont immuables.

    Conclusion :

    En résumé, rendre vos jobs “idempotents” est crucial pour une production efficace et sans douleur.

    ____________________________________________

    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