【问题标题】:DC and crossfilter with large datasets具有大型数据集的 DC 和交叉过滤器
【发布时间】:2014-10-12 03:12:43
【问题描述】:

我一直在研究 dc 和 crossfilter js,我目前有一个包含 550,000 行和大小为 60mb 的 csv 的大型数据集,并且面临很多问题,例如浏览器崩溃等

所以,我试图了解 dc 和 crossfilter 如何处理大型数据集。 http://dc-js.github.io/dc.js/

他们主站点上的示例运行非常顺利,在看到时间线->内存(在控制台中)后,它最大为 34 mb,并随着时间慢慢减少

我的项目在加载 json 文件并呈现整个可视化时,每个下拉选择占用 300-500mb 范围内的内存

那么,两个问题

  • dc 站点示例的后端是什么?是否可以找到确切的后端文件?
  • 如何减少我的应用程序在我的 RAM 上的数据过载,该应用程序运行非常缓慢并最终崩溃?

【问题讨论】:

  • 你能分享一个例子吗?您说的是相当大量的数据,但不一定超出可管理的范围。

标签: javascript dataset dc.js crossfilter


【解决方案1】:

您好,您可以尝试运行加载数据,并在服务器上对其进行过滤。当我的数据集太大而浏览器无法处理时,我遇到了类似的问题。 几周前我发布了一个关于实施相同的问题。 Using dc.js on the clientside with crossfilter on the server

这里是关于它的概述。

在客户端,您希望创建具有 dc.js 所期望的基本功能的假维度和假组 (https://github.com/dc-js/dc.js/wiki/FAQ#filter-the-data-before-its-charted)。您可以在客户端创建 dc.js 图表,并在需要的地方插入虚假维度和组。

现在在服务器端你已经运行了交叉过滤器(https://www.npmjs.org/package/crossfilter)。您可以在此处创建实际维度和组。

fakedimensions 有一个.filter() 函数,它基本上向服务器发送一个 ajax 请求以执行实际过滤。过滤信息可以以查询字符串的形式编码。您还需要在您的假组上使用 .all() 函数来返回过滤结果。

【讨论】:

  • 谢谢你的这个想法,你能分享一个例子如何去实现这个吗?读了好久,没能完全理解。
  • 你能分享一个例子吗?
  • 是的,请给我一天时间。
  • @lastlegion 非常感谢!!那将是超级棒的。我正在我的服务器上运行交叉过滤器。似乎无法弄清楚如何将其连接到图表
  • 这是 dc.js 主页中显示的演示的 WIP 版本。它在服务器上使用交叉过滤器:github.com/lastlegion/dc.js-server-side-crossfilter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多