Мне приходится ежедневно загружать много данных из файлов в таблицу базы данных. Данные находятся вне ERP-системы и содержат 5 000 000 записей и доставляются в файлах csv размером до 500 МБ. Уже есть задача службы интеграции, которая отвечает за это и преобразование, проверку данных и импорт в другую систему. Я забыл сказать, что нет единого столбца идентификаторов, иначе это было бы легко. (от 3 до 7 столбцов идентификаторов) Также невозможно, чтобы система ERP предоставляла только данные, которые изменились с момента последнего выполнения.
Проблема заключается в том, чтобы улучшить слияние файлов csv в таблицу данных. Таблица должна все время хранить все данные предыдущего выполнения.
Из-за плохой производительности я должен возобновить этот импорт. Было подтверждено следующее решение:
- TSQL-Merge: действительно плохая производительность, импорт займет слишком много времени
- Пользовательская задача DTS: мне нужно знать, какая запись является новой, обновленной или удаленной. Только загрузка таблицы db и csv вызвала исключение OutOfMemoryException
- Сравните файл вне служб интеграции с предыдущим файлом и импортируйте только дельту. Это хорошее решение, но на самом деле у нас много ошибок, потому что файл отличается от предыдущей загрузки.
Теперь вопрос, есть ли у кого-нибудь опыт работы с такими требованиями? Есть ли у кого-нибудь хорошее предложение по решению этой проблемы?
Спасибо за совет!
MH