2017-03-10 4 views
0

Das Endziel besteht darin, dass 1,6 Millionen Datensätze in Postgres zur Erkennung in meiner Rails 5-API-Anwendung aufgenommen werden. Ich habe 45 JSON-Dateien, die jeweils ein Array von JSON-Objekten enthalten. Jede Datei hat zwischen 2k bis 30k Objekte. Die Dateigrößen reichen von 6 MB bis 188 MB. Ich habe versucht, die seed.db-Datei zu verwenden und die Dateien auf diese Weise zu lesen, aber die Speicherauslastung war zu hoch. Ich benutzte dann das yajl-Juwel, um die Dateien als Streams zu behandeln, aber in größeren Dateien würde ich nach einiger Zeit einen Netzwerkfehler bekommen, da der Prozess zum Schreiben jedes Objekts bis zu einer Stunde dauern würde.Laden von .json-Dateidaten in Postgres for Rails 5 API

Gibt es einen effizienteren Weg, speichertechnisch, um die Aufnahme großer Dateien über seed.db oder einen anderen Mechanismus innerhalb von Rails selbst abzuwickeln?

Gibt es ein Tool speziell für die Handhabung der Aufnahme von JSON-Dateien mit einem Array von Objekten in Postgres? Ich sehe pgfutter, aber ich kann dieses Tool nicht auf meinem Mac initialisieren.

+0

Ja, Sie können samen.rb, oder eine Migration, oder ein paar verschiedene Möglichkeiten verwenden. Können Sie weitere Einzelheiten zur Struktur Ihrer json-Datendateien und zu deren Beziehung zu den Modellen in Ihrer App angeben? –

Antwort

0

Gelöst dies mit Sqlize, um die JSON-Dateien in eine SQL-Abfrage zu konvertieren. Einfach von dort.