Предположим, у нас есть следующий общий сценарий:
- СУБД в качестве источника данных, которая представляет собой живую базу данных (постоянно заполняется данными).
- SQL Server 2008 в качестве места назначения данных в удаленном месте.
Нам нужно написать программное решение, которое будет:
- После первого запуска
часто (скажем, несколько раз
день) извлечь некоторые конкретные данные из
источник. «Специфика»
данные заключаются в том, что когда-то
отображения / преобразования
разработаны, они останутся такими.
- Извлеченные данные будут помещены в место назначения, ожидая, что будут использованы другим процессом (вне нашей области). Ожидание употребления означает, что они временно останутся там.
со следующими характеристиками:
- Извлечение может быть бит комплекс
(это означает, что это не
прямое извлечение из
конкретная таблица, но комбинация
соединения).
- Множество данных, связанных с источниками. Обычно около десятков миллионов строк , но не ожидается, что они превысят пару сотен.
Со следующими желаемыми ограничениями:
- Быть таким же независимым от базы данных
сторона источника, насколько это возможно.
- Поддерживать минимальное вмешательство в исходную СУБД , поскольку она не «принадлежит нам», а любые изменения / добавления / запросы выполняются в «негибком» процессе.
- Мы не можем считать само собой разумеющимся, что таблицы, участвующие в извлечении из источника, будут иметь какую-то временную метку, ключ автоинкремента или что-то еще, что в конечном итоге поможет нам выполнить «запрос диапазона» и получить записи из "этого значения и после".
Вопрос (ы): Поскольку мы будем часто извлекать данные из оперативного источника, как мы можем эффективно извлекать вновь добавленные записи , учитывая вышеизложенные характеристики / ограничения? И если бы вам пришлось нарушить одно из ограничений, какое это было бы? Есть термин, который описывает эту проблему (что-то вроде разности данных или ...)? Моя главная задача заключается в том, как эффективно извлечь эту «разницу».
ПРИМЕЧАНИЕ. Я поддерживаю идею разрушения агностицизма в отношении баз данных и запуска в действие полезных механизмов, предоставляемых различными СУБД (метаданными?), Для получения последних добавленных строк из интересующих нас таблиц. Я прошу прощения за то, что был общим, но я ожидаю также общего ответа.