【问题标题】:stream a big dataset from server and visualize the data asynchronously从服务器流式传输大数据集并异步可视化数据
【发布时间】:2017-06-11 03:31:22
【问题描述】:

有没有办法从服务器流式传输大型数据集并使用 dc.js 以异步方式可视化数据?

对数据集进行分块,然后在块到达时更新客户端上的可视化。

赞这个页面:http://vcf.iobio.io/?vcf=http://s3.amazonaws.com/vcf.files/ExAC.r0.2.sites.vep.vcf.gz&species=Human&build=GRCh37

【问题讨论】:

  • 我确定有办法。
  • @Eric,我该怎么做?
  • @EricGuan,我喜欢这个答案。我一直想这么说。答案是“是”。

标签: node.js d3.js dc.js data-stream


【解决方案1】:

我认为您需要做的就是设置所有图表,然后设置一个循环间隔计时器来获取块并调用crossfilter.add,然后调用dc.redrawAll()

var cf = crossfilter([]); // start with no data
// set up dimensions, groups, and charts, then ...
window.setInterval(function() {
    d3.csv(/* your data source with chunk parameters */, function(error, data) {
        data.forEach(function(d) {
            // preprocess data
        });
        cf.add(data);
        dc.redrawAll();
    });
}, 5000); // or choose an appropriate interval for processing your chunks

可能有一种更智能的方式来链接请求,以便始终有一个 ajax 请求在进行中,并且浏览器正在处理大量数据。 (可能在最后一个请求到达后立即开始下一个请求。)

但我认为这是最好的入门方式,因为它很容易理解。

我不知道有一个带有 restful 块 API 的公共数据源,但如果你知道一个并且可以创建一个小提琴示例,我相信一个示例会帮助很多人。

【讨论】:

  • 能否使用节点数据流功能作为数据源从服务器建立文件流?
  • 再次,我确信答案是肯定的。但我不知道节点,所以我帮不上什么忙。我想象服务器上有一个宁静的 API,它需要一个偏移量和块长度,客户端会跟踪它已经读取了多少。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2018-01-12
  • 2023-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
相关资源
最近更新 更多