Free Trial

Blog

Les analyses et les idées des plus grands esprits de l'analyse.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
Ladarthure
14 - Magnetar
14 - Magnetar

Cela fait une semaine que je travaille sur ce projet, je viens de terminer mon workflow, jai validé la mise en production de celui-ci avec mes collègues, et cest parti, terminé pour ce projet. Place à la suite !

 

En réalité pas tout à fait, la mise en production dun workflow peut parfois être plus complexe, mais il est très important de vérifier quelques points. Voici ma checklist des points que jaime vérifier et quelques astuces qui peuvent permettre de gagner un temps précieux une fois le workflow en production. Bien sûr, ces éléments sont à adapter à chaque environnement et organisation, mais cela peut vous donner des idées !

 

Documenter :

Oui, cest bête, mais cest la première étape à réaliser avant la mise en production. Il faut profiter davoir tous les éléments en tête pour bien documenter son workflow. En fonction de la complexité, on peut soit utiliser la palette documentation dans Alteryx soit rédiger un document à part qui détaille les règles utiles et les raisons de ces choix. Dans le même ordre didées, on peut organiser son workflow en mettant par exemple les entrées de données à un endroit spécifique (en haut à gauche par exemple) et les sorties à un autre endroit (en haut à droite par exemple). Faire ce travail nest pas la partie que je préfère, mais cela permet de sy retrouver plus facilement si on doit retourner sur ce travail plus tard ou encore si un collègue était amené à devoir travailler dessus. En résumé, documentez, documentez, documentez ! Et surtout profitez davoir toutes les informations en tête pour le faire (ce sera beaucoup moins pénible plutôt que de devoir se replonger dedans plus tard !).

 

Mettre en place des contrôles et alerter :

Il est important de mettre en place des contrôles avant la mise en production, quand on parle de contrôle, il y en a beaucoup qui peuvent être différents d’un cas à un autre. Il est aussi possible d’arrêter le workflow si jamais il y a une erreur. En utilisant les bons outils, on peut vérifier plusieurs éléments simplement. En voici quelques exemples :

 

  • Mon nombre d’enregistrements est cohérent
    • Si par exemple je travaille sur un jeu de données où je dois avoir une ligne par collaborateur par jour, que l’on est en Mai et que j’ai environ 100 employés, je dirais que je dois avoir a minima 500 lignes dans mon jeu de données. Si je n’ai pas cette valeur, alors je ne génère pas mon fichier et je garde les données à leur arrêté précédent, cela évite d’avoir tout un process planté !
  • J’ai autant en valeur entre le détail et l’agrégé
    • Raisonnement basique mais si je fais la somme de mes données de détail, je suis censé obtenir le total de mes données agrégées, c’est simple mais efficace !
  • Je n’ai pas de valeurs nulles
    • Si par exemple je mesure la production d’un magasin, je ne suis pas censé avoir de valeurs nulles, je peux avoir 0 de production, mais pas de valeur nulle (à nuancer, mais si on veut exploiter les données derrière, cela est plus simple)
  • Je n’ai pas de doublons superflus
    • Vérifier que l’on n’a pas de doublons par exemple avec l’outil unique pour éviter les produits cartésiens
  • J’ai un résumé de ce qui a été produit
    • J’adore ajouter à mes workflows en dernière étape une petite alerte mail qui me dit que le workflow a tourné, et qui me donne en synthèse quelques informations (nombre de lignes traitées, nombre de lignes écrites en bases, production totale…)
  • J’ai plus d’enregistrements aujourd’hui qu’hier
    • Je compare mon nombre d’enregistrements entre les données extraites le jour précédent et le jour même et je vérifie qu’il y en ait plus. Si par exemple je mesure le nombre d’évènements organisés par mon entreprise, celui-ci n’est pas censé décroître et je ne peux donc pas en avoir moins.

Pour lensemble de ces tests, jutilise généralement les outils Message et Test de la catégorie développeur (ainsi que le Block Until Done pour massurer que mon contrôle se fasse avant que le reste du workflow sexécute). En fonction de la criticité du test, je vais cocher loption du workflow permettant « Cancel Running Workflow on error », si je veux que le workflow ne sexécute pas du tout, ou si je préfère simplement en être informé.

 

En bref, prenez le temps de mettre en place quelques contrôles, ils peuvent éviter des drames et vous permettre de réagir de manière pro-active par rapport à vos clients (internes ou externes) et de leur dire si il y a eu un problème. De mon expérience, ceux-ci seront beaucoup plus compréhensifs si vous les alertez que ce nest pas à jour avant qu’ils ne le découvrent !

 

Enlever le superflu

Votre workflow a été documenté et vous avez ajouté des contrôles. Maintenant, pensez à enlever tout ce qui est superflu, les Browse/Explorateur quon a mis partout pour regarder les données lors du développement, on enlève, ça prend du temps pour réaliser le traitement et on ne devrait plus en avoir besoin (en théorie) et si jamais jen ai de nouveau besoin, je les ajouterai ! De même pour ce fichier intermédiaire que jai voulu regarder ou envoyer à un collègue, on enlève, on ne va pas écrire un fichier qui ne sert à rien ! Et cest la même chose pour ce filtre quon a mis pour vérifier les données dune journée spécifique. On va enlever tout ce qui ne sert pas pour ne garder que lessentiel, cest-à-dire ce qui permet au workflow de fonctionner correctement !

 

Vérifier les chemins d’accès aux fichiers (s’applique quand on va publier sur un serveur):

Un oubli qui peut se révéler coûteux dans certains cas, bien vérifier les chemins daccès aux différents fichiers utilisés (que ce soit pour écrire sur un fichier ou en lire un), vérifier que les fichiers ne sont pas sur le disque de votre ordinateur, ou que les connexions aux différentes bases de données fonctionnent sur le serveur.

Première étape, vérifier les chemins daccès aux fichiers :

Aller dans les options, puis options avancées, et dépendances du workflow

 

options avancées.png

 

Puis vérifier les différents fichiers utilisés

fichier utilisé.png

On voit ici la liste des chemins utilisés ainsi que le nombre d’éléments qui les utilisent, cest un moyen rapide et il est facile de le faire.

On voit aussi dans ce menu les connexions aux bases de données, si il y en a.

Ici on vérifie donc que le workflow écrit bien sur des répertoires réseau et non sur le disque local de son poste.

 

 

Deuxième étape :

On va ensuite vérifier si le serveur a bien accès à ces répertoires et ces connexions. Pour cette partie, cela dépend vraiment de votre organisation, mais une méthode pour le faire est dutiliser des versions simplifiées du workflow, de le publier et de lancer celui-ci pour voir si le fichier est bien écrit ou non. Une autre possibilité serait de demander à linformatique ou aux personnes en charge du serveur si celui-ci a bien accès à ces éléments.

 

 

Dernière étape avant la mise en production, la programmation du workflow et la mesure de la charge.

Pour cette dernière étape on va lancer le workflow en local mais avant, on va aller dans les options du workflow (cliquer sur le canevas pour voir cette fenêtre dans la partie configuration), puis on va cocher « Enable Performance Profiling ».

 

workflow configuration.png

 

Activer cette option va permettre de mesurer outil par outil le temps pour lexécution et va permettre de voir s’il y a un goulot d’étranglement. On peut par exemple voir une jointure chronophage suivie dun filtre, dans ce cas, peut-être, faire le filtre avant de faire la jointure. Dans certains cas, on ne peut pas optimiser mais au moins, on est au courant de ce qui se passe dans la machine et on peut donc estimer le temps dexécution.

 

Un dernier pour la fin, si je veux être sûr de ne pas ajouter de champs ou plutôt que si un nouveau champ venait à être créé dans la base, jajoute un outil select au début de mon workflow et je décoche le « * Unknown » ce qui fait que si un nouveau champ venait à apparaître, celui-ci ne sera pas automatiquement sélectionné.

 

Enfin, la dernière étape, si je peux la réaliser, si par exemple jai accès à une autre application doù viennent les informations, consiste à faire un échantillonnage aléatoire pour faire mes derniers contrôles .

Voici les éléments de ma checklist avant la mise en production .

 

 

En espérant que cela vous aide ! Nhésitez pas à ajouter en commentaire les contrôles que vous réalisez !

Commentaires
StephaneP
Alteryx Alumni (Retired)

Simple, efficace et à intégrer dans sa panoplie de réflexe de bon analyste.
Bravo.

StephaneP
Alteryx Alumni (Retired)

En travaillant sur une autre thématique il me vient en tête un nouveau point d'attention que je gère d'habitude en réalisant mes workflows mais qu'il serait intéressant d'ajouter dans cette check list:

 

Mon workflow prends t'il bien en compte toutes les évolutions naturelles de mon environnement métier/IT ?

Est il dynamique ?

 

Mon workflow est il totalement automatisé aujourd'hui ? C'est à dire n'ai-je bien aucune opération à réaliser manuellement lorsque je le lance ?

Et si oui, est ce que ce sera le cas demain, dans 1 mois, dans 1 an...

Si non, que puis-je rajouter pour le rendre encore plus automatique ?

 

L'idée n'est pas de faire de nos workflows des usines à gaz (on s'éloignerai de la philosophie de la solution) mais d'anticiper les changements prévisibles dans l'environnement que l'on sait déjà que l'on devra traiter manuellement demain si rien n'est fait.

 

Typiquement devrais je modifier mon workfow si:

  • j'ai de nouveaux fichiers qui apparaissent ?
  • j'ai plus de produit demain qu'aujourd’hui ?
  • je change d'année ?
  • je sais que le nom du répertoire source/cible va changer tous les mois, années... ?

 

Toujours en pesant la maintenabilité vs le temps de mise en place, je réfléchi alors à si je dois investir dans plus de dynamisme dans mon workflow.

 

J'en profite d'ailleurs pour renvoyer vers cette excellente vidéo qui décris les principales techniques pour rendre dynamiques vos traitements:

https://community.alteryx.com/t5/Videos/Making-Dynamic-Workflows/td-p/330579

 

Enjoy !

StephV
Alteryx Alumni (Retired)

Merci @StephaneP pour ce partage ! 

Étiquettes