Suivi des modifications SQL pour l'ETL


Le mode « Suivi des modifications » est lié à la fonctionnalité « Data tracking » de Microsoft SQL Server. Plus d'informations sur le site internet de Microsoft.
Le principe en bref est de tracer, dans la base de données source, les modifications (ajout, modification, suppression) avec un numéro de modification et la clé primaire concernée. Chaque numéro correspond à une modification des données source.
Le PDWB va, à partir du dernier numéro de synchronisation mémorisé dans la base cible, traiter les modifications de la source depuis ce dernier numéro jusqu'à l'état courant. Chaque évènement sur la source est donc répliqué sur la cible.
(Attention, ne cocher la case « Mémoriser le dernier numéro de modification » que si le Data Tracking a été activé sur le serveur. Si cette case est cochée mais le suivi des modifications non actif une erreur arrêtera le programme sans traitement)

Ce mécanisme, très rapide, doit être lancé fréquemment pour réduire au maximum le volume de données à synchroniser. De plus, l'activation de la fonctionnalité « Data tracking » requiert un paramètre de durée de rétention (configuré sur la base de données) : c'est la durée pendant laquelle SQL Server conserve l'historique des modifications. La durée de rétention doit être adéquate à la fréquence de lancement du mode suivi des modifications (par exemple un lancement quotidien PDWB pour une rétention sur 6 jours).
L'activation du suivi des modifications est proposée par une étape de l'installeur décisionnel BI.
Attention : dans le cadre d'une migration ou d'une modification de structure de table de la base ERP , il convient de prêter attention au data tracking. En effet l'action de suppression/re-création d'une table perd toute information de tracking sur les données de cette table. Une l'action de suppression/re-création de table peut être volontaire ou non , car la modification du type d'un champ suivie d'une synchronisation de dictionnaire Diva par Harmony XPSQL va renommer la table existante et en créer une nouvelle afin de pouvoir recopier les valeurs.