2012-02-07 50 views
2

我想你的建議在以下Python項目的最佳設計方案。
我建立了被分爲2個部分的web服務系統:實時數據服務器架構

  1. 這部分由第三方API抓取實時數據,並把數據在DB。
  2. 這部分公開一個JSON API來從在1中提到的DB)訪問數據。

一些背景信息 - 2)在django上運行,並通過視圖方法公開API。它使用SQLAlchemy而不是django ORM。

我的問題是:
- 應該1)和2)在同一臺機器上運行,考慮到他們都訪問相同的MySQL DB?
- 應該運行什麼?我正在考慮使用也使用SQLAlchemy的Python腳本運行cron作業。這是因爲我看不到在這裏需要整個web框架,尤其是因爲這需要超快運行。這是最好的方法嗎?
- 數據大小 - 1)取約60000項,並將它們在DB每1分鐘(一個條目包含約12浮點值和幾個日期和整數)的。處理日益增長的數據量的最佳方式是什麼?你會拆分數據庫嗎?如果是這樣,進入什麼?

謝謝!

+0

因爲我沒有用的SQLAlchemy等任何經驗,我只是對數據的大小問題發表評論:你可以使用某種分片取決於datacolection的時間或使用輪詢算法。詳情請參見[http://en.wikipedia.org/wiki/RRDtool](http://en.wikipedia.org/wiki/RRDtool)。 – 2012-02-07 20:01:48

回答

0

我會說,在同一machien運行兩下手,看看性能如何。如果你不需要,爲什麼還要在第二臺機器上花錢?

至於「處理數據的不斷增長量」 -DO你需要保持周圍的舊數據?如果沒有,你的第二個任務可以簡單地刪除舊數據。如果所有記錄都有適當的時間標記,則不必擔心兩個任務之間的競爭狀況。

+0

感謝您的評論!實際上,我確實需要保留歷史數據。你的想法會是什麼? – user1094786 2012-02-09 05:53:57