2012-02-07 4 views
2

次のPythonプロジェクトでは、最高の設計アプローチについてアドバイスをしたかったのです。
私は2つの部分に分割されたWebサービスシステムを構築しています:この部分は、サードパーティのAPIからのリアルタイムデータをつかみ、DBにデータを置くリアルタイムデータサーバのアーキテクチャ

  1. この部分は、1)で述べたDBのデータにアクセスするためのjson APIを公開しています。

いくつかの背景情報-2)はdjangoで実行され、ビューメソッドを介してAPIを公開します。これは、django ORMの代わりにSQLAlchemyを使用します。

私の質問は次の通りです:
- 同じマシン上で、1)と2)を実行して、どちらも同じMySQL DBにアクセスすることを考慮してください。
- 1)何を実行する必要がありますか?私は、SQLAlchemyも使用するPythonスクリプトでcronジョブを実行することを考えていました。なぜなら、これは超高速で動作する必要があるからです。これが最善のアプローチですか?
- データサイズ-1)は約60,000エントリを取り出し、1分ごとにDBに格納します(エントリには約12個の浮動小数点数といくつかの日付と整数が入ります)。ここでますます増え続けるデータに対処する最善の方法は何ですか?あなたはDBを分割しますか?もしそうなら、何に?

ありがとうございます!

+0

私はSQLAlchemyなどの経験がないので、データサイズに関する質問にコメントするだけです。データ収集の時間に応じて何らかのシャーディングを使用することも、ラウンドロビンアルゴリズムを使用することもできます。詳細については、[http://en.wikipedia.org/wiki/RRDtool](http://en.wikipedia.org/wiki/RRDtool)を参照してください。コメントのために –

答えて

0

私は、最初に同じマシーンで2人を実行して、パフォーマンスがどうなるかを見ていきます。あなたがする必要がない場合、なぜ2番目のマシンにお金を使うのですか?

「ますます増大するデータ量を処理する」として、古いデータを保存する必要がありますか?そうでない場合は、2番目のタスクで古いデータを削除することができます。すべてのレコードにタイムスタンプが正しく設定されていれば、2つのタスク間の競合状態を心配する必要はありません。

+0

ありがとう!実際には、歴史的なデータを残念ながら残しておく必要があります。あなたの考えはどうなっていますか? – user1094786

関連する問題