绘制大型数据集(1M +)的好策略是什么?

时间:2012-01-20 17:39:54

标签: javascript redis elasticsearch d3.js

我刚刚开始解决这个问题,我想让用户随意选择范围和过滤器,让他们在网页上绘制大型数据集(实际上它应该永远不会超过1000万个数据点) 。我使用elasticsearch作为存储和聚合数据的方法,以及用于跟踪摘要数据的redis,d3.js是我的图形库。

我对最佳解决方案的想法是在不同的分组中预先计算可用于绘图的摘要。因此,如果数据点存在多年,我可以按月和日进行分组(无论如何我都会这样做),然后分组说半天,四分之一天,一小时,半小时等等。然后在我之前查询图形数据我做了一个快速计算,看看哪些分组会给我一些理想的数据点数(比如1000)。

这是解决问题的合理方法吗?还有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您应该重新考虑数据量......

  1. 即使在桌面绘图应用程序中,每个绘图显示许多点是不常见的 - 例如origin打印一个警告,出于性能原因,它仅显示子集。例如,你可以扔掉每一个第三点以减少它们。
  2. 你应该让用户能够放大或浏览以探索数据,比如分页风格......
  3. 在Lucene社区中分组或分析它的调用当然可以使用那么多文档,但要确保你有足够的RAM + CPU

答案 1 :(得分:0)

您无法绘制(通常)比屏幕上的点数更多的点数。因此,要绘制1M点,你需要一个非常好的监视器。