我一直在研究 dc 和 crossfilter js,目前有一个包含 550,000 行、大小为 60mb csv 的大型数据集,并且面临着很多问题,例如浏览器崩溃等
因此,我试图了解 dc 和 crossfilter 如何处理大型数据集。http://dc-js.github.io/dc.js/ http://dc-js.github.io/dc.js/
他们主站点上的示例运行非常顺利,在看到时间线 -> 内存(在控制台中)后,它达到最大 34 mb,并随着时间慢慢减少
当我的项目加载 json 文件并渲染整个可视化时,每个下拉选项占用的内存范围为 300-500mb
那么,2个问题
- dc 站点示例的后端是什么?是否可以找到确切的后端文件?
- 我的应用程序运行速度非常慢并最终崩溃,如何减少 RAM 上的数据过载?
您好,您可以尝试运行加载数据,并在服务器上过滤它。当数据集的大小太大而浏览器无法处理时,我遇到了类似的问题。
几周前我发布了一个关于实施同样的问题。在客户端使用 dc.js,在服务器上使用 crossfilter https://stackoverflow.com/questions/24184986/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 https://github.com/dc-js/dc.js/wiki/FAQ#filter-the-data-before-its-charted)。您可以在客户端创建 dc.js 图表,并在需要的地方插入虚假维度和组。
现在在服务器端您已经运行了交叉过滤器(https://www.npmjs.org/package/crossfilter https://www.npmjs.org/package/crossfilter)。您可以在此处创建实际的维度和组。
假尺寸有一个.filter()
基本上向服务器发送 ajax 请求以执行实际过滤的函数。过滤信息可以以查询字符串的形式进行编码。你还需要一个.all()
在您的假组上运行函数以返回过滤结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)