Ситуация, с которой я сталкиваюсь, выглядит следующим образом:
Существует большое количество «плоских» файлов, из которых данные извлекаются приложением C # для создания записей, которые в свою очередь записываются в базу данных (сервер MS SQL). Полный выпуск базы данных содержит около 97 миллионов записей на 220 ГБ.
Задача состоит в том, чтобы создать дифференциальное обновление данных в базе данных, проанализировав новый полный выпуск и выяснив, какие из существующих записей были обновлены. Запись считается обновленной, если какое-либо из ее свойств было изменено.
[ОБНОВЛЕНИЕ] Каждая запись имеет уникальный идентификатор.
Проблема в том, что поставщик данных не предоставляет никаких указаний на изменение записи (номер версии или дату последней модификации) - только полные версии.
Решение, которое я нашел до сих пор, состоит в том, чтобы сгенерировать хэш-сумму для каждой записи, а затем сравнить новую со старой.
Другим аспектом проблемы, который делает нежелательными хеш-суммы, является сочетание размера данных и количества записей - это просто ошеломляет.
Итак, есть ли лучшее решение, чем это?
Любая помощь с делом будет принята с благодарностью!
Всего наилучшего,
Борислав