Ce que je dois faire, c'est transférer des données entre deux bases de données. La source peut être n'importe quoi (fichier séparé par des virgules, fichier xls, n'importe quelle base de données, ...), la destination est MS SQL Server.
Je n'ai pas besoin de synchroniser toutes les données, je dois juste synchroniser des tables particulières.
Ejemplo:
J'ai besoin de synchroniser la table CUSTOMERS du logiciel de comptabilité (qui fonctionne avec PostgreSQL) avec le CRM (qui fonctionne avec SQL Server).
Quelques problèmes auxquels cet outil devrait pouvoir faire face :
1) La table des clients du logiciel de comptabilité a un champ qui n'est pas mappé dans la table des clients de Crm. (Je veux ainsi mapper ce champ supplémentaire au champ CUSTOMERS_CUSTOM_DATA.EXTRA_FIELD)
2) Avoir quelques règles (comme synchroniser seulement les clients dont le code est entre 10000 et 99999)
3) Permettre d'effectuer certaines tâches après l'insertion (par exemple, j'utilise des seuqences gérées manuellement pour les ID de tanble, donc après avoir inséré 10 enregistrements, je dois ajouter 10 à la séquence).
4) Disposer d'un mécanisme de traitement des exceptions, de sorte que si quelque chose ne va pas, il peut soit appeler une procédure stockée du serveur SQL (que j'ai déjà et qui m'enverra un e-mail), soit simplement envoyer un message pour signaler que quelque chose n'allait pas dans la synchronisation nocturne.
5) Il est facile de programmer le moment où la synchronisation des données doit être effectuée (toutes les heures, tous les jours, y compris la MANUEL).
6) Effectuer la conversion des données : si le champ Nom de famille dans la table source est varchar(20) et dans la table destination est varchar(15), je veux dire explicitement "effectuer une troncature".
7) Avoir des règles différentes pour l'insertion ou la mise à jour. Par exemple, dans la source, le champ e-mail n'est pas présent, mais je veux le remplir dans la destination. Je décide d'effectuer cette opération sur l'insertion seulement, et non sur la mise à jour. (par exemple, lorsque j'insère un nouveau client, je veux remplir le champ e-mail en concaténant le nom et le prénom, mais ensuite je veux laisser les utilisateurs le modifier, cette première insertion est juste pour simplifier la saisie des données, mais ensuite ce cas particulier sera traité manuellement. Donc, je veux dire (à l'insertion, remplir le champ e-mail, à la mise à jour, ne rien faire avec le champ e-mail).
8) En cas de suppression dans la base de données source, ne pas supprimer sur la destination mais seulement changer le varchar(10) STATUS en DELETED.
Remarque : je sais que les services d'intégration seraient parfaits pour cela, mais je dois prendre en charge l'édition Express, donc SSIS n'est pas une option.
J'ai créé un tas de scripts et de procédures stockées planifiées qui font actuellement ce dont j'ai besoin, mais c'est très difficile à maintenir et l'absence totale d'interface graphique rend le travail beaucoup plus lent. Je me souviens avoir vu TALEND Il y a longtemps, peut-être que cet outil est aussi la réponse dont j'ai besoin, de toute façon je dois fournir une réponse rapide à la direction, donc je n'ai pas le temps d'étudier tous les outils sur le marché, et je préférerais avoir une suggestion d'un expert.