DC et crossfilter avec de gros ensembles de données

J'ai travaillé sur dc et crossfilter js et j'ai actuellement un grand ensemble de données avec 550 000 lignes et une taille de 60 mb csv et je suis confronté à beaucoup de problèmes, comme les crashs du navigateur, etc.

Donc, j'essaie de comprendre comment DCC et Crossfilter traite de gros 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 des chronomètres-> mémoire (dans la console), il passe à un maximum de 34 mb et diminue lentement avec le temps

Mon projet prend la mémoire dans la gamme de 300-500mb par sélection déroulante, lorsqu'il charge un fichier json et rend toute la visualisation

Donc, 2 questions

  • Quel est le backend pour l'exemple du site DC? Est-il possible de trouver le fichier backend exact?
  • Comment puis-je réduire la surcharge de données sur ma RAM de ma application, qui fonctionne très lentement et finit par s'effondrer?

Bonjour, vous pouvez essayer d'exécuter le chargement des données et de les filtrer sur le serveur. J'ai été confronté à un problème similaire lorsque la taille de mon ensemble de données était trop importante pour le navigateur. J'ai posté une question quelques semaines environ pour mettre en œuvre la même chose. En utilisant dc.js sur le client avec filtre croisé sur le serveur

Voici un aperçu de ce sujet.

Du côté du client, vous souhaitez créer des fausses dimensions et des groupes faux qui ont des fonctionnalités de base que dc.js attend ( https://github.com/dc-js/dc.js/wiki/FAQ#filter-the- Données avant son classement ). Vous créez vos tableaux dc.js côté client et connectez les fausses dimensions et les groupes là où cela est nécessaire.

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

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