Вы не говорите, какая у вас база данных, но в SQL Server я написал бы это как пакет служб SSIS. У нас есть система, предназначенная для записи данных в базу метаданных, которая сообщает нам, когда файл был получен, успешно ли он обработан и почему, если нет. Он также сообщает, например, о количестве строк в файле (которые мы затем можем использовать, чтобы определить, является ли текущий размер строки ненормальным). Одной из прелестей SSIS является то, что я могу настраивать конфигурации для соединений и переменных пакета, так что переместить пакет из разработки в prod легко (мне не нужно входить и вручную менять соединения каждый раз, когда у меня есть конфигурация установить в таблице конфигурации)
В SSIS мы проводим различные проверки, чтобы убедиться, что данные верны, или очищаем данные перед их добавлением в нашу базу данных. На самом деле мы делаем много-много проверок. Сомнительные записи могут быть удалены из файловой обработки и помещены в отдельное место для проверки базой данных и, возможно, для передачи клиенту. Мы также можем проверить, соответствуют ли данные в различных столбцах (и имена столбцов, если даны, не во всех файлах), что можно ожидать. Таким образом, если поле zipcode имеет 250 символов, мы знаем, что что-то не так, и можем отклонить файл перед обработкой. Таким образом, когда клиент меняет столбец фамилии на столбец имени, не сообщая нам, мы можем отклонить файл перед импортом 100 000 новых неправильных записей. В SSIS мы также можем использовать нечеткую логику, чтобы найти существующие записи для сопоставления. Так что, если запись для Джона Смита говорит, что его адрес находится на 213 State St. это может совпадать с записями о том, что он живет на Стейт-стрит, 215.
Требуется много времени, чтобы настроить процесс таким образом, но как только вы это сделаете, дополнительная уверенность в том, что вы обрабатываете хорошие данные, на вес золота.
Даже если вы не можете использовать SSIS, это должно как минимум дать вам представление о том, что вы должны делать, чтобы получить информацию в вашу базу данных.