Работа с большими объемами данных временных рядов в Django при сохранении Djangos ORM
Мы используем Django с его ORM в связи с базой данных PostgreSQL и хотим расширить модель данных и технологический стек для хранения огромного количества данных временных рядов (~5 million entries per day и далее).
Ближайшие вопросы, которые я нашел, были this и this, которые предлагают объединить Django с базами данных, такими как TimescaleDB или InfluxDB. Но он создает параллельные структуры со встроенным ORM Django и поэтому не кажется простым.
Как мы можем обрабатывать большие объемы данных временных рядов, сохраняя или оставаясь очень близкими к ORM Django?
Любые советы по проверенным технологическим стекам и моделям реализации приветствуются!
Ваш лучший вариант - хранить реляционные данные в Postgres, а данные временных рядов в отдельной базе данных, и объединять их при необходимости в коде.
В InfluxDB вы можете сделать это соединение с помощью скрипта Flux, передав ему SQL, который выполнит ORM Django, вместе с информацией о подключении к базе данных. Однако это вернет вам данные в формате InfluxDB, а не модели Django.
почему бы не использовать параллельно с существующим postgres timescaledb для данных временных рядов, а для последнего использовать эту интеграцию django: https://pypi.org/project/django-timescaledb/.
Использование нескольких баз данных в django возможно, также я не делал этого сам до сих пор. Посмотрите здесь, как это сделать удобным способом (перенаправить определенные модели в другую базу данных вместо стандартной postgres) Использование нескольких баз данных в django