2 votes

Existe-t-il un outil GUI gratuit pour la synchronisation des données entre les DB dans lequel il est possible de script règles ?

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.

1voto

Brett Rossier Points 1411

Je crois que SQL Server Integration Services fait tout cela, et je crois que SQL Server Management Studio vous permet de créer et de conditionner vos tâches SSIS afin qu'elles puissent être déployées ailleurs.

1voto

user193655 Points 2013

Finalement, j'ai opté pour TALEND, je n'ai jamais vraiment utilisé SSIS, j'en ai juste vu une démonstration en direct lors d'une conférence SQL Server. De toute façon, Talend est une alternative gratuite (et assez riche) à SSIS, il répondra donc aux besoins de tous les clients, y compris ceux (95%) qui ont SQL Server Express.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X