У меня есть CSV-файл с ~ 1 миллионом записей, которые я хочу смоделировать и импортировать в мою Django DB. Схема выглядит примерно так: id, name, address, num_employees
.
Каждые несколько недель файл CSV обновляется - записи добавляются и удаляются, но большинство остается прежним. И редко схема меняется незначительно.
Я читал о таких вещах, как схемы звездного неба, озера данных, приемные конвейеры, адаптеры данных ... но есть МНОГИЕ варианты и идеи. Некоторые кажутся излишними, некоторые кажутся слишком наивными. У меня проблемы с пониманием, с чего начать. Какие-либо лучшие практики или образцы, которым я должен следовать для этого?
Кстати, некоторые вещи, которые меня интересуют:
- Запрос самых актуальных данных.
- Выполните некоторые проверки работоспособности и обработайте такие вещи, как «сохранить старый адрес, если он присутствует в старой записи, но отсутствует в текущей версии».
- Уметь проверять историю и вручную исправлять записи, которые признаны недействительными.
- Обработка редких изменений схемы. Может быть, в следующем году
address
будет разделен на street_address, city, state, zip_code
. Как я могу сохранить это в здравом уме?
- Загрузка больших файлов (10-100 МБ) без остановки моего сервера или загрузки базы данных при обновлении.