2011-09-09 2 views
3

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

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

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

Мало кто из моих ограничений:

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

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

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

ответ

1

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

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

+0

Я делаю это, но благодарю anyways за ответ. :) – thewayman

Смежные вопросы