如何顺利加载200MB数据到浏览器进行可视化?

How to smoothly load 200MB data to browser for visualization?

200MB的数据是在300天内收集的,每天大约600kb。

目前我在用 d3.tsv 加载一个包含所有数据的文件, 然后使用 setTimeout 循环每一天。

但是问题是加载200MB的数据到客户端的浏览器,这可能需要几分钟...

如何克服这个问题?我们可以使用一些预取和捕获技术吗?

Kibana 和 Hue 可以处理千兆字节的数据可视化。而且他们俩好像都是用D3做可视化。

他们如何解决从服务器端加载数据到客户端的时间延迟问题?

我想到的一种方法是每秒加载每天的数据,然后将这些数据合并到客户端的内存中。但是如何在 d3.tsv 中进行数据合并?

   mergedData = []

   for (f in filelist) {
     d3.tsv(f, function(error, data)){
      //Following code cannot work as expected
      mergedData = mergedData.concat(data)
     }
   }

因为d3.tsv是onload,任何全局变量都不能在其中工作。

有什么技巧可以解决这个问题吗?

就 kibana 而言,它适用于对数百万条记录进行操作的弹性搜索,并使用 aggregates 提取分析数字并将其显示为图表。

Hue 适用于 hadoop。

所以简而言之,他们使用 elasticsearch 的后端支持(如果是 kibana)获取大数据的统计数据,并使用 d3 将数字显示为条形图或其他图表。

因此对于大数据,您应该考虑采用后端支持合并所有数据获取数字并让 d3 将其显示在图表上。