Что мне нужно сделать, так это данные между двумя базами данных. Источником может быть что угодно (файл, разделенный запятыми, файл xls, любая база данных, ...), местом назначения является MS SQL Server.
Мне не нужно синхронизировать все данные, мне просто нужно синхронизировать отдельные таблицы.
Пример:
Мне нужно синхронизировать таблицу CUSTOMERS программного обеспечения бухгалтерского учета (работает на PostgreSQL) с CRM (работает на SQL Server).
Некоторые проблемы, с которыми должен столкнуться этот инструмент:
1) Таблица клиентов программного обеспечения для бухгалтерского учета имеет 1 поле, которое не отображается в таблице клиентов crm. (Таким образом, я хочу отобразить это дополнительное поле на поле CUSTOMERS_CUSTOM_DATA.EXTRA_FIELD)
2) Наличие некоторых правил (например, синхронизировать только клиентов с кодом от 10000 до 99999)
3) Позволяет выполнять некоторые задачи после вставки (например, я использую вручную управляемые последовательности для идентификаторов преобразования, поэтому после вставки 10 записей мне нужно добавить 10 в последовательность)
4) Наличие механизма обработки исключений, поэтому, если что-то не так, он может вызвать вызов хранимой процедуры сервера sql (которая у меня уже есть, и она отправит мне электронное письмо) или просто отправить сообщение, чтобы уведомить, что что-то было неправильно в ночной синхронизации.
5) Легко составлять расписание, когда выполнять синхронизацию данных (ежечасно, ежедневно, ВКЛЮЧАЯ РУКОВОДСТВО)
6) Выполнить преобразование данных: если поле Фамилия в исходной таблице - varchar (20), а в таблице назначения - varchar (15), я хочу явно сказать «выполнить усечение».
7) Есть разные правила для вставки или обновления. Например, в поле источника электронной почты отсутствует, но я хочу заполнить его в месте назначения. Я решил выполнить эту операцию только при вставке, а не при обновлении. (например, когда я вставляю нового клиента, я хочу заполнить поле электронной почты, объединяющее имя и фамилию, но затем я хочу позволить пользователям изменить его, эта первая вставка просто для упрощения ввода данных, но затем этот конкретный случай будет обрабатываться вручную. Поэтому я хочу сказать (при вставке заполнить поле электронной почты, при обновлении ничего не делать с полем электронной почты)
8) В случае удаления в исходной базе данных, не удаляйте в месте назначения, а только измените varchar (10) STATUS на DELETED.
Примечание: я знаю, что службы Integration Services идеально подойдут для этого, но я должен поддерживать Express Edition, поэтому SSIS не подходит.
Я создал кучу сценариев и запланированных хранимых процедур, которые в настоящее время выполняют то, что мне нужно, но это очень сложно поддерживать, и полное отсутствие графического интерфейса значительно замедляет работу. Я помню, что видел TALEND назад, может быть, этот инструмент также является тем ответом, который мне нужен, в любом случае мне нужно быстро ответить руководству, поэтому у меня нет времени исследовать все инструменты на рынке, и я предпочел бы получить предложение от эксперта.