0

システムに (ID ごとに) アイテムの投票を保存する必要があります。500万票くらいはあると思います。各投票は次のもので構成されます。

  • 投票されたアイテムのID
  • ユーザーデータ1
  • ユーザーデータ2
  • 日付時刻

「userdata」フィールドは、投票の最後に不正行為者を検出するために使用されます。投票中は、すべての投票を登録する必要があります。

2 種類の情報を取得できる必要があります。

  • 約 1 分ごと) 各「投票アイテムの id」が持っている投票数
  • 約1時間ごと)「ユーザーデータ」フィールドにいくつかのフィルターを適用した後、各「投票されたアイテムのID」が持っている投票数(両方が特定の日時間隔で一意である必要があるなど)...私はしませんこれらのフィルターを SQL クエリの形式で記述できるようにする必要があります... ~500 万票すべてを反復処理し、結果を持つ新しいテーブル/データ構造を作成して、それをアプリケーションに返したい

投票のINSERTionsは大したことではありません(1秒あたり約2なので、どのDBでもうまく処理できると思います)

DBの反復処理とフィルターの作成に必要な「スクリプト」のため、mongoDBのようなものに傾いています。しかし、ストアド プロシージャまたはキー値 (Redis? 5mi 票は 2 GB 未満の RAM に収まる必要があります) DB の SQL で解決できるのでしょうか?

4

1 に答える 1

2

グラフDBが必要だと思います。OrientDB (http://www.orientechnologies.com/) をお勧めします。これは非常にクールでフル機能のオープン ソース グラフ データベースです。Java で書かれていますが、さまざまなクライアント ドライバーを使用できます。1.0 の安定版リリースはもうすぐです (< 2 週間)。試してみたい場合は、クラウド (http://www.nuvolabase.com/) で無料で使用できるので、インストールや設定は必要ありません。スキーマ フル、スキーマ混合、スキーマレスであり、グラフ、SQL、クラスタリングなどをサポートしており、必要に応じてデータを柔軟にモデル化できます。

于 2012-04-07T17:05:01.220 に答える