2012-02-07 4 views
2

다음 파이썬 프로젝트에서 최고의 디자인 접근법에 대한 조언을 원했습니다.실시간 데이터 서버 아키텍처

  1. 이 부분은 제 3 자 API에서 실시간으로 데이터를 잡고하고 DB에 데이터를 넣습니다 :
    나는 두 부분으로 분할되어있는 웹 서비스 시스템을 구축하고있다.
  2. 이 부분은 1)에서 언급 한 DB의 데이터에 액세스 할 수있는 json API를 제공합니다.

일부 배경 정보 -2)는 django에서 실행되며 뷰 메소드를 통해 API를 노출합니다. 그것은 django ORM 대신 SQLAlchemy를 사용합니다.

내 질문은 다음과 같습니다 :
- 1)과 2) 모두 동일한 MySQL 데이터베이스에 액세스하는 것을 고려하여 동일한 컴퓨터에서 실행해야합니까?
- 1) 실행해야하는 항목은 무엇입니까? 나는 SQLAlchemy도 사용하는 Python 스크립트로 cron 작업을 실행하는 것에 대해서 생각하고있었습니다. 이것은 특히 여기에 초고속으로 작업해야하기 때문에 전체 웹 프레임 워크가 필요하지 않기 때문입니다. 이것이 최선의 접근 방법입니까?
- 데이터 크기 - 1)는 약 60,000 개의 항목을 가져 와서 1 분마다 DB에 저장합니다 (항목에 약 12 ​​개의 Float 값과 몇 개의 날짜 및 정수가 포함됨). 계속 증가하는 데이터 양을 처리하는 가장 좋은 방법은 무엇입니까? DB를 나눠 줄래? 그렇다면 무엇으로?

감사합니다.

+0

SQLAlchemy에 대한 경험이 없으므로 데이터 크기 질문에 대한 의견을 말씀드립니다. 데이터 수집 시간에 따라 일종의 샤딩을 사용하거나 라운드 로빈 알고리즘을 사용할 수 있습니다. 자세한 내용은 [http://en.wikipedia.org/wiki/RRDtool](http://en.wikipedia.org/wiki/RRDtool)을 참조하십시오. 코멘트를 주신 덕분에 –

답변

0

같은 machien에서 두 개를 실행하고 성능이 어떻게 변하는 지 확인할 수 있습니다. 할 필요가 없다면 두 번째 기계에 돈을 쓰는 이유는 무엇입니까?

"점점 더 많은 양의 데이터를 다루는"- 오래된 데이터를 보존해야합니까? 그렇지 않은 경우 두 번째 작업은 이전 데이터가 완료되면 간단히 삭제할 수 있습니다. 모든 기록에 타임 스탬프가 적절히 제공되면 두 작업 간의 경쟁 조건에 대해 걱정할 필요가 없습니다.

+0

! 사실, 나는 불행히도 역사적인 데이터를 유지할 필요가있다. 그 생각은 어떨까요? – user1094786