Passer

Conseil N°3 pour être un super Data Engineer

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.