2012-01-20 10 views
3

私はこの問題に近づき始めています。ウェブページ上で大規模なデータセットをグラフ化できる範囲とフィルタをユーザが任意に選択できるようにしたい(実際には1000万データポイント以上にするべきではありません)。私は要約データを追跡するためのredisと一緒にデータの格納と集計の方法としてelasticsearchを使用し、d3.jsは私のグラフ化ライブラリです。大きなデータセット(1M +)をグラフ化するための良い戦略は何ですか?

グラフ化に使用できるさまざまなグループにあらかじめ計算された集計を用意することをお勧めします。だから、データポイントが数年に渡って存在するならば、私は月と日(私はとにかくやっているだろう)でグループ化することができますが、半日、四半期、時間、半時間などのグループ分けでグループ化することができます。グラフデータのクエリ私はこれらのグループのどれが理想的な数のデータポイント(1000など)を与えるかを簡単に計算します。

これは問題に近づくための合理的な方法ですか?より良い方法がありますか?あなたは、データの量を再考する必要があり

+1

10Mポイント?人々はそれをしますか? :shocked: –

+1

私は10Mポイントをグラフ化することによる影響がサーバー、データベース、およびスループットにどのような影響を与えるかを確認するためにいくつかのテストを実行します。ユーザーは、他のユーザーのためにシステムのパフォーマンスに重大な影響を与える場合、ユーザーが望むことをする必要はありません。テストし、それが遅くなる場合は、選択できる数に上限を設定します。自分のサイトのDOSを回避するための防御的な戦術です。 –

+1

私は、それが画面を表示する能力をはるかに超えているので、多くのデータポイントを利用できるような理由はありませんか?私は明らかにDOSを念頭に置いていますが、基本的には少数のMリクエストでK個のデータポイントを提供しているだけでは、それほど問題になりません。 –

答えて

2

...それは珍しいことでもデスクトッププロットするアプリケーションで

  1. を表示することプロットごとに多くのポイント - 例えばoriginは、パフォーマンス上の理由からサブセットのみを表示するという警告を表示します。たとえば、3点ごとに投げ捨てることで、それを少なくすることができます。
  2. ページズームのようなデータをズームインまたはナビゲートする機能をユーザに与える必要があります。
  3. Luceneコミュニティでどのように呼び出されるかをグループ化するか、 RAM + CPUが十分にあることを確認してください。
0

ドットを画面に表示するよりも多くのポイントをグラフ化することはできません(通常は)。だから1Mポイントをグラフ化するには、本当に良いモニターが必要です。

関連する問題