2017-09-20 2 views
0

ich zur Zeit über das Layout eines Features für unsere App denke, und da diese bei weitem die schwerste Teil ist, ich bin nicht sicher, wie es zu entwerfen:Javascript - Umgang mit 3 GB Daten für die regelmäßige Berechnungen

Wir wollen Benutzer die Möglichkeit zu geben, ihre Annahmen gegen einen großen Datensatz zu testen.

  • Der Datensatz ist über 3 GB groß (json)
  • Es vorverarbeitet werden muss (Format geändert werden muss), bevor verwendbar für Berechnungen
  • Es in kleinere Dateien wie die Themen innerhalb der großen aufgeteilt werden könnte Datensatz ist trennbar.

Am Anfang dachte ich, ich lese die gesamte Datei in unserem Laden und arbeiten von dort. Ich beginne gerade zu bezweifeln, dass die Erinnerung das überleben wird (welche Art von Konsum anzunehmen, läuft auf aws).

Die Alternative, über die ich nachgedacht habe, liest direkt aus den Dateien, aber dann müsste ich sie teilen (250mb Javascript max?) Oder streamen sie (gute Idee?).

Bevor ich mit dem Schreiben von Code beginne, würde ich gerne verstehen, wie man diese Art von massiven (oder?) Daten am effizientesten in Javascript anwendet. Fürs Erste ist alles möglich.

Danke! Jan

+2

Haben Sie überlegt, eine Datenbank zu verwenden? – connexo

+0

wird das tun, ja –

Antwort

3

Ich würde Ihre Daten in eine Datenbank und Server verschieben. Ich würde persönlich eine RESTful API erstellen, die die Daten in einer Datenbank ändert, die Sie in Ihrer App aufrufen würden.

Da Sie in Javascript schreiben, können Sie einen Knotenserver für eine RESTful API erstellen und die Daten in einer Datenbank wie SQL oder noSQL speichern. Dann nimm die Daten aus der JSON-Datei und lege sie in die Datenbank.

Ich würde vorschlagen, in die verschiedenen Datenbanktypen zu suchen und eine Datenbank zu verwenden, um Ihre Daten zu manipulieren und zu halten. Die große Frage ist relationale gegenüber nicht-relationalen Datenbanken. Lesen Sie dies, um weitere Informationen zu erhalten: http://jlamere.github.io/databases/

+0

Danke für die gute Antwort! Die Daten stammen eigentlich von unserem Firebase, aber das Lesen von dort wäre zu teuer. Also werde ich wahrscheinlich einen Mongodb auf einem Amazon-Server einrichten und die Daten von dort lesen. Wie viele Daten wären im Lager ratsam, oder sollte ich die Datenbank für alle Anfragen verwenden? Ist es auch nützlich, Daten zwischenzuspeichern und wenn, wie könnte dies hier gelten? Danke nochmal! –

+0

@JanRuno Es ist am besten, alle aktualisierten Daten in einer Datenbank zu behalten und lokale Daten zwischenzuspeichern, sobald ein Benutzer danach fragt. Wenn ein Benutzer die Datenclientseite ändert, senden Sie ein Update an die Serverdatenbank. Das kann auch anders funktionieren, wenn Daten auf dem Server geändert werden, dann senden Sie die neuen Informationen an den Benutzer, damit die zwischengespeicherten Daten auf dem neuesten Stand sind (Sockets wären hier am besten). Wenn meine App bootet, bekomme ich alle Informationen vom Server und verbinde mich mit einem Socket mit socket.io und wenn Informationen geändert werden, habe ich einen Stream, um die neuen Informationen zu erhalten und neue Informationen zu senden. Es wird komplizierter, aber das ist ein Weg. – Avery246813579

Verwandte Themen