具有大型数据集的 DC 和交叉过滤器

2023-09-29前端开发问题
3

本文介绍了具有大型数据集的 DC 和交叉过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I have been working on dc and crossfilter js and I currently have a large dataset with 550,000 rows and size 60mb csv and am facing a lot of issues with it like browser crashes etc

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

So , I'm trying to understand how dc and crossfilter deals with large datasets. http://dc-js.github.io/dc.js/

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

The example on their main site runs very smoothly and after seeing timelines->memory (in console) it goes to a max of 34 mb and slowly reduces with time

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

My project is taking up memory in the range of 300-500mb per dropdown selection, when it loads a json file and renders the entire visualization

那么,两个问题

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

推荐答案

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

Hi you can try running loading the data, and filtering it on the server. I faced a similar problem when the size of my dataset was being too big for the browser to handle. I posted a question a few weeks back as to implementing the same. 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-它的图表).您可以在客户端创建 dc.js 图表,并在需要的地方插入虚假维度和组.

On the client side, you'd want to create fake dimensions and fake groups that have basic functionality that dc.js expects(https://github.com/dc-js/dc.js/wiki/FAQ#filter-the-data-before-its-charted). You create your dc.js charts on the client side and plug in the fake dimensions and groups wherever required.

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

Now on the server side you have crossfilter running(https://www.npmjs.org/package/crossfilter). You create your actual dimensions and groups here.

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

The fakedimensions have a .filter() function that basically sends an ajax request to the server to perform the actual filtering. The filtering information could be encoded in the form of a query string. You'd also need a .all() function on your fake group to return the results of the filtering.

这篇关于具有大型数据集的 DC 和交叉过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

js删除数组中指定元素的5种方法
在JavaScript中,我们有多种方法可以删除数组中的指定元素。以下给出了5种常见的方法并提供了相应的代码示例: 1.使用splice()方法: let array = [0, 1, 2, 3, 4, 5];let index = array.indexOf(2);if (index -1) { array.splice(index, 1);}// array = [0,...
2024-11-22 前端开发问题
182

JavaScript小数运算出现多位的解决办法
在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会...
2024-10-18 前端开发问题
301

JavaScript(js)文件字符串中丢失"\"斜线的解决方法
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转...
2024-10-17 前端开发问题
437

layui中table列表 增加属性 edit="date",不生效怎么办?
如果你想在 layui 的 table 列表中增加 edit=date 属性但不生效,可能是以下问题导致的: 1. 缺少日期组件的初始化 如果想在表格中使用日期组件,需要在页面中引入 layui 的日期组件,并初始化: script type="text/javascript" src="/layui/layui.js"/scrip...
2024-06-11 前端开发问题
455

Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)...
2024-04-20 前端开发问题
5

CoffeeScript 总是以匿名函数返回
CoffeeScript always returns in anonymous function(CoffeeScript 总是以匿名函数返回)...
2024-04-20 前端开发问题
13