如何顺利加载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 将其显示在图表上。
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 将其显示在图表上。