Проблема в том, что он синхронизирует два набора данных. Проблема полностью искажена.
Вам необходимо либо: а) вести дифференциальный журнал изменений в наборе данных A, чтобы вы могли отправить этот журнал в набор данных B, либо b) хранить две копии набора данных (прошлые ночи и текущий набор данных), а затем сравнивать их, чтобы вы могли затем отправить дифференциальный журнал от А до Б.
Добро пожаловать в мир репликации.
Проблема с (a) заключается в том, что он потенциально инвазивен для всего вашего кода, хотя, если вы используете RDBMS, вы можете сделать некоторые записи с помощью триггеров базы данных, чтобы отслеживать вставки / обновления / удаления, и писать информацию в таблицу, а затем экспортируйте соответствующие строки в виде дифференциального журнала. Но это тоже может быть неприятно.
Проблема с (b) заключается в том, что все «сравнение базы данных» происходит одновременно. Штраф за 100 рядов. Плохо для 10 ^ 9 строк. Противный противный.
На самом деле, все это может быть неприятно. Репликация противна.
Лучшим планом является поиск «реальной» системы репликации, разработанной для конкретных баз данных, которые вы используете (при условии, что вы используете базу данных). Что-то, что, возможно, отправляет записи журнала базы данных для синхронизации вместо того, чтобы пытаться свернуть свои собственные.
Большинство современных систем СУБД имеют системы репликации.