эффективный способ синхронизации двух таблиц на разных серверах с Java - PullRequest
4 голосов
/ 17 мая 2011

у нас есть исходная таблица, которая обновляется из различных внешних систем.Мне требуется, чтобы таблица назначения (на другом сервере) была синхронизирована с этой исходной таблицей.таблица назначения не является точной копией исходной таблицы, некоторая обработка данных должна быть выполнена до того, как данные будут вставлены / обновлены в таблицу назначения.

Я подумал о следующей логике

каждые 15 минут мы запускаем этот потребительский код Java, который выбирает записи, в которых создана временная метка, чем та, которая была в предыдущем обновлении, и сохранена в CachedRowSet.и вызвать хранимую процедуру с CachedRowSet в качестве параметра, где выполняется обработка данных и данные вставляются / обновляются в таблицу назначения.

считаете ли вы, что вышеупомянутое является эффективным способом, поскольку мы имеем дело смиллион записей каждое обновление?

также, когда запись удаляется в исходной таблице в, не будет реплицироваться в вышеуказанном методе!Можете ли вы предложить, что делать в таком сценарии

Ответы [ 3 ]

1 голос
/ 17 мая 2011

Что-то похожее на технику, используемую базой данных для сохранения и отката. Всякий раз, когда есть некоторые изменения в исходной таблице, например, CRUD. сохраните сценарии изменений в соответствии с форматом, необходимым для целевой таблицы. периодически вы можете отправить эти изменения на целевой сервер. Поскольку исходная таблица обновляется различными внешними системами, в исходной таблице должен быть триггер для ведения журналов сценариев.

0 голосов
/ 18 мая 2011

Вот несколько существующих решений:

https://www.symmetricds.org/

http://opensource.replicator.daffodilsw.com/

0 голосов
/ 18 мая 2011

Возможно, вы захотите проверить mk-table-sync из инструментов Maatkit:

http://www.maatkit.org/doc/mk-table-sync.html

Вы должны быть осторожны в различиях в таблицах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...