2014-06-26 10 views
5

Ich habe auf dc und crossfilter js arbeiten, und ich habe zur Zeit einen großen Datensatz mit 550.000 Zeilen und Größe 60mb csv und bin eine Menge Probleme mit sich wie Browser mit Blick stürzt etcDC und crossfilter mit großen Datensätzen

So Ich versuche zu verstehen, wie DC und Crossfilter mit großen Datensätzen umgehen. http://dc-js.github.io/dc.js/

Das Beispiel auf ihrer Haupt-Website läuft sehr ruhig und timelines-, nachdem er> Speicher (in der Konsole) geht es zu einem Maximum von 34 mb und reduziert mit der Zeit langsam

Mein Projektspeicher Aufnahme in der Bereich der 300-500mb pro Drop-Down-Auswahl, wenn es eine jSON-Datei lädt und macht die gesamte Visualisierung

So, 2 Fragen

  • Was ist das Backend für die dc-Website Beispiel? Ist es möglich, die genaue Backend-Datei zu finden?
  • Wie kann ich die Datenüberlastung auf meinem RAM von meiner Anwendung, die sehr langsam läuft und schließlich abstürzt reduzieren?
+0

Können Sie ein Beispiel teilen? Sie sprechen von einer ziemlich großen Datenmenge, aber das liegt nicht unbedingt außerhalb des Bereichs von dem, was überschaubar ist. –

Antwort

2

Hallo, Sie können versuchen, die Daten zu laden und auf dem Server zu filtern. Ich hatte ein ähnliches Problem, als die Größe meines Datasets zu groß für den Browser war. Ich habe vor ein paar Wochen eine Frage zur Umsetzung gestellt. Using dc.js on the clientside with crossfilter on the server

Hier eine Übersicht zu gehen darüber.

Auf der Client-Seite möchten Sie falsche Dimensionen und falsche Gruppen erstellen, die grundlegende Funktionalität haben, die dc.js erwartet (https://github.com/dc-js/dc.js/wiki/FAQ#filter-the-data-before-its-charted). Sie erstellen Ihre dc.js-Diagramme auf der Client-Seite und schließen die falschen Dimensionen und Gruppen an, wo immer dies erforderlich ist.

Jetzt auf der Serverseite haben Sie Crossfilter laufen (https://www.npmjs.org/package/crossfilter). Sie erstellen hier Ihre tatsächlichen Dimensionen und Gruppen.

Die fakedimensions haben eine .filter() Funktion, die grundsätzlich eine Ajax-Anfrage an den Server sendet, um die eigentliche Filterung durchzuführen. Die Filterinformation könnte in Form einer Abfragekette codiert sein. Sie würden auch eine .all() Funktion auf dem falschen Gruppe müssen die Ergebnisse der Filterung zurückzukehren.

+1

Vielen Dank für diese Idee. Können Sie uns bitte ein Beispiel geben, wie Sie das umsetzen können? Ich habe es eine Weile gelesen, konnte es aber nicht vollständig verstehen. –

+0

Können Sie bitte ein Beispiel teilen? –

+1

Ja bitte geben Sie mir einen Tag. –

Verwandte Themen