Архитектура сервера данных в реальном времени - PullRequest
2 голосов
/ 07 февраля 2012

Я хотел, чтобы вы посоветовали лучший подход к проектированию в следующем проекте Python.
Я строю систему веб-службы, которая разделена на 2 части:

  1. Эта часть захватывает данные в реальном времени из стороннего API и помещает данные в БД.
  2. Эта часть предоставляет json API для доступа к данным из БД, упомянутой в 1).

Некоторая справочная информация - 2) работает на django и предоставляет API через методы просмотра. Он использует SQLAlchemy вместо django ORM.

Мои вопросы:
- Должны ли 1) и 2) работать на одной машине, учитывая, что они оба обращаются к одной и той же базе данных MySQL?
- На чем должен 1) бежать? Я думал о том, чтобы просто запустить задания cron с помощью скриптов Python, которые также используют SQLAlchemy. Это потому, что я не вижу необходимости в целой веб-среде, особенно потому, что она должна работать очень быстро. Это лучший подход?
- Размер данных - 1) извлекает около 60 000 записей и помещает их в БД каждую 1 минуту (запись содержит около 12 значений с плавающей точкой и несколько дат и целых чисел). Каков наилучший способ справиться с постоянно растущим объемом данных здесь? Вы бы разбили БД? Если да, то во что?

Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2012

Я бы сказал, для начала запустите их на одной машине и посмотрите, как идет производительность. Зачем тратить деньги на вторую машину, если вам это не нужно?

Что касается «работы с постоянно растущим объемом данных», нужно ли хранить старые данные? Если нет, ваша вторая задача может просто удалить старые данные, когда они будут выполнены. При условии, что все записи имеют правильную отметку времени, вам не нужно беспокоиться о состоянии гонки между двумя заданиями.

...