Это сложная область, обычно называемая «Извлечение, преобразование, загрузка» или ETL.Там нет правильного ответа, и ни одна из книг, которые я нашел, не была настолько убедительной - Ральф Кимбалл, кажется, пишет самые полезные.
Для начала я бы посоветовал добавить столбцы меток времени в вашу реляционную систему;затем вы можете создавать ночные запросы для извлечения данных моложе, чем последний успешный прогон.Возможно, вы захотите создать дополнительные таблицы для хранения статуса передачи - поэтому запись в исходной таблице должна иметь соответствующую запись в таблице передачи;если эта запись не существует, это означает, что запись не была передана.
Если ваша модель транзакционных данных сильно нормализована, управление зависимостями может быть сложным - сначала нужно перенести все значения внешнего ключа., что может привести к длинным цепочкам зависимости.
Если производительность снижается, вам может потребоваться использовать зеркало вашей транзакционной базы данных для выполнения задач ETL - это совершенно новый уровень сложности.
Я бы прочиталСначала книги Кимбалла, и посмотрите, выглядят ли какие-либо идеи непосредственно применимыми.