Мне нужно определить наилучший подход для определения структуры моделей моего приложения Django во время выполнения на основе структуры выгруженного файла CSV, который будет поддерживаться постоянным после создания моделей в Django.
Я столкнулся с несколькими вопросами, касающимися динамического создания / изменения моделей Django во время выполнения. Все согласились с тем, что это плохая практика, и нужно заранее знать, что это за поля.
Я создаю сайт, на котором пользователь может загрузить CSV-файл на основе временных рядов со множеством столбцов, представляющих сенсорные каналы. Затем пользователь должен иметь возможность выбрать поле для построения соответствующих данных этого поля. Данные будут примерно 1 миллиард строк.
По сути, я стараюсь кодировать в следующих шагах, но информации мало, и я никогда раньше не выполнял такую работу:
- Пользователь выбирает файл CSV (или DAT).
- Затем приложение загружает только строку заголовка (эти файлы> 4 ГБ).
- Строка заголовка разделена на ",".
- Я использую результаты 3 для создания таблицы для каждого канала (столбцов) с именем поля, совпадающим с отдельной записью заголовка для этого конкретного канала.
- Затем я загружаю соответствующие данные в соответствующие таблицы и записываю свои модели для своего приложения, которые затем не будут изменены.
Другой вариант, который я рассматриваю, - это создание модели с 10 полями, поскольку я знаю, что никогда не будет более 10 каналов. Затем читая мой CSV в таблицу, когда пользователь загружает файл, и просто оставляя эти поля пустыми.
Кто-нибудь имел опыт работы с подобными приложениями?