Синхронизация данных между двумя базами данных - PullRequest
3 голосов
/ 09 сентября 2011

Мне нужно синхронизировать между двумя источниками данных:

У меня есть веб-сервис, работающий в сети. Он непрерывно собирает данные из сети и сохраняет их в базе данных. Он также предоставляет данные клиенту на основании запроса клиента. Я хочу сохранить хранилище данных в качестве объекта для более быстрого обслуживания.

На стороне клиента есть служба Windows, которая вызывает упомянутый ранее веб-сервис и синхронизирует свою локальную базу данных с сервером.

Несколько моих ограничений:

  • Веб-служба имеет очень маленький лимит буфера и может передавать только менее 200 записей за вызов, что недостаточно для данных, собранных за день.
  • Я также не могу скопировать файлы базы данных, поскольку структура базы данных сильно отличается (sql и прочее - это доступ)
  • Данные обновляются ежечасно, и для передачи потребуется большой объем данных.
  • Синхронизация по дате или другой группе невозможна с ограничением размера. Пейджинг может быть выполнен, но удаленный репозиторий продолжает меняться (и я не знаю, как извлечь кусок данных из середины таблицы базы данных SQL)

Как использовать хранилище для недавнего обновления данных или полной базы данных, синхронизированной с этим ограничением?

В качестве правильного ответа будет принят лучший подход к проблеме или усовершенствование существующего подхода

1 Ответ

1 голос
/ 09 сентября 2011

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

Например, если вам нужно извлекать данные ежечасно, поскольку каждый час истекает (то есть, когда они идут с 8:59 до 9:00 утра), вы начинаете извлекать данные, которые были добавлены между 8 и 9 часами утра. куски 200 или любой другой размер, который может обработать служба.

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