2014-06-26 5 views
5

je travaille sur js dc et crossfilter et moi avons actuellement un grand ensemble de données avec 550.000 lignes et la taille 60mb csv et je suis face à beaucoup de problèmes avec comme navigateur plante etcDC et crossfilter avec de grands ensembles de données

Alors , J'essaie de comprendre comment DC et crossfilter traitent de grands ensembles de données. http://dc-js.github.io/dc.js/

L'exemple sur leur site principal fonctionne très bien et après avoir vu timelines-> mémoire (dans la console), il va à un maximum de 34 mb et réduit lentement avec le temps

Mon projet prend de la mémoire dans la gamme de 300-500mb par sélection de menu déroulant, quand il charge un fichier JSON et rend la visualisation entière

Alors, 2 questions

  • Quel est le back-end pour l'exemple du site en courant continu? Est-il possible de trouver le fichier backend exact?
  • Comment puis-je réduire la surcharge de données sur ma RAM à partir de mon application, qui fonctionne très lentement et finit par se bloquer?
+0

Pouvez-vous partager un exemple? Vous parlez d'une assez grande quantité de données, mais ce n'est pas nécessairement hors de portée de ce qui est gérable. –

Répondre

2

Bonjour, vous pouvez essayer d'exécuter le chargement des données et de les filtrer sur le serveur. J'ai fait face à un problème similaire lorsque la taille de mon ensemble de données était trop grande pour le navigateur à gérer. J'ai posté une question il y a quelques semaines quant à la mise en œuvre de la même chose. Using dc.js on the clientside with crossfilter on the server

Voici un aperçu de ce sujet. Du côté client, vous voudriez créer de fausses dimensions et de faux groupes avec les fonctionnalités de base attendues par dc.js (https://github.com/dc-js/dc.js/wiki/FAQ#filter-the-data-before-its-charted). Vous créez vos graphiques dc.js du côté client et branchez les fausses dimensions et groupes là où vous le souhaitez.

Maintenant sur le côté serveur vous avez crossfilter en cours d'exécution (https://www.npmjs.org/package/crossfilter). Vous créez vos dimensions et groupes actuels ici.

Les fakedimensions ont une fonction .filter() qui envoie essentiellement une requête ajax au serveur pour effectuer le filtrage réel. Les informations de filtrage pourraient être codées sous la forme d'une chaîne de requête. Vous aurez également besoin d'une fonction .all() sur votre faux groupe pour retourner les résultats du filtrage.

+1

Merci pour cette idée, pouvez-vous s'il vous plaît partager un exemple comment s'y prendre pour mettre en œuvre cela? Je l'ai lu pendant un moment mais je ne pouvais pas comprendre complètement. –

+0

Pouvez-vous s'il vous plaît partager un exemple? –

+1

Oui s'il vous plaît donnez-moi un jour. –

Questions connexes