В некоторых случаях ваш вопрос слишком широк и требует мнения (SQL против NoSQL).
Однако суть вопроса заключается в том, следует ли загружать данные по одному за раз или в хорошо разработанную модель данных. Определенно последний.
Моя рекомендация следующая.
Во-первых, спроектируйте модель данных вокруг того, как данные должны храниться в базе данных, а не как они предоставляются. Может быть одна таблица на файл CSV. Я был бы немного удивлен, хотя. Данные часто хотят быть реструктурированными.
Во-вторых, спроектируйте структуру архива для файлов CSV.
Вы должны архивировать все входящие файлы в хорошую структуру каталогов с файлами каждого месяца. Эта структура должна быть в состоянии разместить несколько загрузок в месяц, либо для всех файлов, либо для некоторых из них. Ошибки случаются, и вы хотите убедиться, что входные данные доступны.
В-третьих, скопируйте (это команда Postgres) данные в промежуточные таблицы. Это начало ежемесячного процесса.
В-четвертых, обработка данных, в том числе проверка достоверности для загрузки их в модель данных.
В этом процессе могут быть изменения, основанные на таких вопросах, как:
- Должны ли данные быть доступны 24/7 даже во время процесса загрузки?
- Помешает ли сбой проверки в одной части данных загрузить какие-либо данные?
- Достаточны ли проверки SQL (ссылочная целостность и
check
) для проверки данных?
- Вам нужно иметь возможность "откатить" систему до какого-либо конкретного обновления?
Это всего лишь вопросы, которыми можно руководствоваться при реализации. Они не предназначены для ответа здесь.