2012-03-13 16 views
6

統計システムを構築する必要がありますが、MongoDBが最適なソリューションかどうかはわかりません。システムは、いくつかのものを追跡し、情報を表示する必要があります。たとえば、サイトと同様のもの - サイトに最初にアクセスしたすべてのユーザーが、彼に関する情報を含む行を追加します。システムはできるだけ早くデータを保存する必要があります。たとえば、Google Chromeを使用してページを閲覧しているユーザーの増加チャートを作成します。また、ユーザーが再度訪問すると、ユーザーの既に行のフィールドが更新されます(たとえば、「Days」と呼ばれるフィールド)。統計システムのベストデータベース

システムは、1日に20万人の新規訪問(新規レコード)、1日に20,000,000人のユーザーが再び(更新)訪問し、800,000,000のDBレコードを処理する必要があります。また、データを高速に出力する必要があります。たとえば、イングランドから毎日どのくらい多くのユーザーが訪れているか、Google Chromeなどのチャートを作成する必要があります。

このデータを処理するにはどのようなDBが最適でしょうか? MongoDBはこの問題を処理できますか?

ありがとうございます!

+1

ウェブ解析ソフトウェアを使用する代わりに、なぜあなた自身で作成していますか? –

答えて

3

Mongodbでは、原子の更新とスケールが非常にうまくいきます。それはまさにそのために設計されたものです。ただし、ディスク容量に注意してください。非常に迅速に実行され、迅速な統計情報(地域のカバレッジ、トラフィックソースなど)が必要な場合は、あらかじめ計算しておく必要があります。最も速い方法は、すべての数値をメモリに保持し、それを毎時/毎日保存する単純なデーモンを構築することです。

3

大量のRAMが必要な場合や、複数のノードでデータを断片化する場合は、Redisが非常に適しています。 (私はbit.lyのリアルタイムの統計がそれを使用すると思います)、それはメモリ内にある

  1. ので、あなたは、リアルタイム分析を行うことができますので、それは良いことです。実際、それはもともとそれのために作られたものです。

  2. 非常に速く、数十万回の更新を簡単に行うことができます。

  3. これはアトミックな操作です。

  4. これは時系列に適したソートセットです。

+0

私はRedisを少なくとも速い報告部分に使用することを検討したいと思います。すべてがメモリに残り、一般的なトラフィックロギングには適していません。 –

0

RDM Workgroupは、デスクトップおよびサーバー環境用のデータベース管理システムで、メモリ内の速度も可能です。

また、永続性機能を使用することもできます。メモリ内のデータを管理し、アプリケーションがシャットダウンしたときにそのデータをディスクに転送し、データが失われないようにします。

これは直感的なインターフェイスを備えたネットワークモデルに基づいているため、スケーラビリティが一流であり、期待している新しいビジターの大部分を処理することができます。