Dans Apache Hop, nous réalisons très régulièrement des enchaînements de processus (séquence de « pipeline » dans un « workflow », boucle sur des « pipeline » ou des « workflow », etc.) qui mobilisent la même connexion de base de données. Par défaut, lors de l’exécution, chaque « transform » ou « action » mobilisant cette connexion est exécutée indépendamment des autres étapes qui mobilisent cette même connexion : chaque étape gère sa propre transaction de base de données.
Avec ce fonctionnement, en cas d’erreur sur le dernier « pipeline » d’une séquence de « pipeline » réalisant chacun des insertions en table, toutes les insertions réalisées en amont sans erreurs par les deux autres « pipeline » seront bien effectives. Si l’erreur sur le 3ème pipeline n’est pas captée et gérée (par exemple, pour purger les tables peuplées en amont) cela conduit à une incohérence du jeux de données importé.

Apache Hop a prévu ce cas d’usage et permet, par paramétrage, d’exécuter des « workflow » ou des « pipeline » en regroupant au sein d’une même transaction de base de données toutes les opérations réalisées sur une même connexion. Ainsi, en cas d’erreur sur au moins une des étapes mobilisant la connexion, toutes les autres opérations seront annulées. Ce dispositif évite d’avoir à prévoir ses propres mécanismes de « nettoyage »
Pour mettre en place ce mode transactionnel, il suffit de se rendre dans « metadata » puis « Pipeline Run Configuration » ou « Workflow Run Configuration » et de paramétrer vos moteurs d’exécution locaux en cochant « Make this pipeline transactionnal » ou « Make this workflow transactionnal »

Selon vos besoins, il peut être nécessaire d’ajouter des configurations différentes et de choisir celle qui sera utilisée pour exécuter le processus directement via hop-gui ou hop-run :

Plus d’informations :
💡 Nous avons consacré un billet [Décryptage] sur Apache Hop, n’hésitez pas à le consulter ➡️ https://www.agaricig.com/2024/04/09/decryptage-apache-hop-letl-open-source-allie-du-geomaticien/
✅ Agaric IG accompagne les structures dans la mise en œuvre opérationnelle de leur processus Apache Hop sur les phases de conception, de formation, de déploiement et d’assistance. Contactez-nous !
