|
Перенос данных между разными схемами БД
|
|||
---|---|---|---|
#18+
Есть две подсистемы, живущие на разных схемах БД. Из одной подсистемы необходимо периодически переливать часть данных в другую подсистему. Переливка осуществляется без непосредственной связи: через формирование промежуточного пакета из БД-источника и загрузку его в БД-приемник из клиентского приложения. Данные вроде таких: основные таблицы (вроде карточки товара) и справочная информация (вроде справочников видов товара, единиц измерения и т.п.) Все принимаемые данные уже могут частично находится на приемнике. При переливке справочной информации основной алгоритм таков: если идентификатор сущности уже есть, то ничего не делать, если есть сущность с таким же уникальным полем (названием например), то изменить все коды в принимаемой схеме на код найденной сущности. Если и совпадение по уникальному полю не найдено, то вставить новую сущность. Однако для некоторых справочных таблиц логика перегонки иная. Как это сделано сейчас: мастер, на первом шаге мастера данные полностью выливаются во временные таблицы приемника. Затем пользователь отмечает в списке какие основные данные он хочет перегнать. После чего на следующих шагах ему показывается, какие справочные данные будут добавлены, а какие заменены. Наконец, на завершающем этапе выполняется переливка из временных таблиц в основные. Недостатки при таком подходе: логика переливки жестко забита в код, при малейшем изменении схемы базы-приемника или логики в заливке таблиц необходимо переделывать логику импорта, после чего его долго и мучительно ее тестировать, для переливки из разных версий подсистем нужно писать свою обработку, пользователь не может влиять на замену справочных сведений. Хотелось бы сделать функционал более гибким, не завязанным на конкретную логику и схему, расширить возможности пользователя (выбирать какие поля необходимо перегонять, какие данные заменять) Посоветуйте, какие подходы здесь можно использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2009, 15:33 |
|
Перенос данных между разными схемами БД
|
|||
---|---|---|---|
#18+
быдло_кодер Посоветуйте, какие подходы здесь можно использовать? открыть для себя стандартную репликацию ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2009, 09:26 |
|
Перенос данных между разными схемами БД
|
|||
---|---|---|---|
#18+
быдло_кодерНедостатки при таком подходе: логика переливки жестко забита в код, при малейшем изменении схемы базы-приемника или логики в заливке таблиц необходимо переделывать логику импорта, после чего его долго и мучительно ее тестировать, для переливки из разных версий подсистем нужно писать свою обработку, пользователь не может влиять на замену справочных сведений. Хотелось бы сделать функционал более гибким, не завязанным на конкретную логику и схему, расширить возможности пользователя (выбирать какие поля необходимо перегонять, какие данные заменять) Посоветуйте, какие подходы здесь можно использовать?Можно сделать специальные таблицы для репликации. Такие таблицы будут являться внешним интерфейсом модуля, подсистемы, базы данных. В них будет только та информация, которая "публикуется" разработчиком БД для внешнего использования. Схема этих данных будет более стабильна, её изменение будет отражать изменение "внешнего вида" (под)системы, а не коньюнктурные изменения, вносимые программистами в локальное приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2009, 12:13 |
|
Перенос данных между разными схемами БД
|
|||
---|---|---|---|
#18+
Дело в том что если я не ошибаюсь, для репликации нужен db_link между базами (я юзаю оракл). Но по "политике партии" я обязательно должен использовать перенос через файл без физической связи баз ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2009, 14:28 |
|
Перенос данных между разными схемами БД
|
|||
---|---|---|---|
#18+
Коллега, Купите webMethods и будет Вам счастье... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2009, 21:11 |
|
Перенос данных между разными схемами БД
|
|||
---|---|---|---|
#18+
Быдло_кодерДело в том что если я не ошибаюсь, для репликации нужен db_link между базами (я юзаю оракл). Но по "политике партии" я обязательно должен использовать перенос через файл без физической связи базВидел такую реализацию на ACCESS. Передается архив с аксесс-файлом. В нем приемные и передающие таблицы. Аксесс-макрос или внешняя прога производят двухсторонее переливание данных. Потом снова файл пакуется в архив и отсылается почтой/дискетой куда надо. Велись логи обновлений, автоматом менялись даже алгоритмы обновлений. Технология была доведена до полного автономного режима (по почте с ненадежным каналом). Так работали многие десятки магазинов с большим суточным товарооборотом. Сбои были весьма редко. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2009, 10:51 |
|
|
start [/forum/topic.php?fid=33&fpage=40&tid=1548612]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 144ms |
0 / 0 |