私はスポーツ統計 Web サイト (究極のフリスビー) を開発する初期段階にいます。Google App Engine が私に適しているかどうか、意見をお聞かせください。
私は Django を使用して Python で作成しており、何年も標準の RDBMS に慣れてきましたが、このサイトは長期的なプロジェクトであり、非常に大量のデータが予想されるため、GAE データストアが提供する「無限」のスケーリングが必要です。データベースへのクエリの大部分は非常に標準的な結果を返すため、データストアが論理的な選択のように見えます。ただし、将来的には非常に複雑なクエリを作成して、新しい統計メトリックを作成したり、単に興味深い結果を作成したりしたいと考えています. 将来的にはこれをたくさん行う予定ですが、データがすでに収集されるまで、これらのクエリが何であるかはわかりません。
たとえば、野球の統計アナリストが次のようなばかげた統計を発表するのをよく目にします。日々"。将来的には、どんなクエリでも柔軟に作成できるようにしたいと思います。:)
ただし、bigtable のような非リレーショナル データベースでは、事前に冗長データを含むモデルを考え出す必要があり、すべての作業はフェッチではなく挿入で行われるという印象を受けます。照会する必要があるほぼすべてのデータを含む django モデルを既に構築しましたが、1 年か 2 年後にどんな非正規化モデルが必要になるかわかりません。したがって、将来的に複雑なクエリを作成することは、GAE データストアでは非常に難しくなり、Python で処理する前にサーバーから大量の情報を引き出す必要があると思います。
グーグルアプリエンジンのデータストアは、私がやりたいことに対して単に間違っていますか? または、何かが足りないだけです。よろしくお願いします!
更新: これまでの応答に感謝します。これらの複雑なクエリの多くは、ユーザーに実行してもらいたいクエリであるため、オフライン データベースは実際にはオプションではないことにも言及する必要があることを認識しています。たとえば、ユーザーは、特定のゲームまたはシーズン中に、特定の 2 人のプレーヤーが同時にフィールドにいるときのプレーのさまざまな統計を確認できる必要があります。これらのクエリは、標準の集計統計ほど頻繁ではありませんが、定期的に発生します。
リレーショナル データベースと GAE データストアがあると便利ですが、django はデフォルトで複数のデータベースをまだサポートしておらず、ソリューションをまとめてパッチを適用するのは困難で面倒に思えます。Eric Florenzano は、両方とも django モデルを使用する 2 つのデータベースに対する優れたソリューションを提供していますが、GAE データストアを使用する場合は、代わりにアプリ エンジンの db モデルを使用する必要があります。そして、彼がこの複雑な問題に対して行ったような優れた解決策を考え出すことは、現時点で私のスキルレベルを少し超えています.
現在、私のお気に入りの 2 つのオプションは、GAE タスク キューを使用して難しいクエリを実行するか、webfaction などのより標準的な Web ホストにアクセスし、後でデータが大きくなり、パフォーマンスを向上させる必要がある場合にテーブルを非正規化することです。