wpforge
Goto Top

Datenbank oder doch textfiles

Hallo,
Ich möchte Orderbücher aus einem Exchange auslesen und später auswerten.
Ein Orderbuch ist dabei ein JSON Objekt, das durchaus mal 200kb groß werden kann.

Bisher speichere ich diese Orderbücher für je 24h in einer MYSQL Tabelle (id, timestamp, json). Dabei erreiche ich in 24h eine Tabellengröße von ~1,5GB
Ich verarbeite 15 Währungspaare,das wären also ~100mb/Tag und Währungspaar.

Wenn die Daten nun für 1 Jahr erfasst würden, ergäben sich pro Währungspaar Tabellen mit ~36GB größe.

Einmal im Monat sollen nun einige Kennwerte aus den gesammelten Daten ermittelt werden.
Dazu werden die JSON Objekte in Monatsschritten durchgearbeitet. Dies geschieht pro JSON Objekt etwa 10000 mal.

Macht es in so einem Fall das JSON Objekt in der DB zu speichern oder nur den timestamp und dann das jsonobejkt in einem text file das zum beispiel PAAR_TIMESTAMP.json heißt ?

Danke schon mal für eure Antworten.

Content-Key: 456277

Url: https://administrator.de/contentid/456277

Printed on: April 25, 2024 at 09:04 o'clock

Member: Pjordorf
Pjordorf May 26, 2019 at 13:13:51 (UTC)
Goto Top
Hallo,

Zitat von @WPFORGE:
Bisher speichere ich diese Orderbücher für je 24h in einer MYSQL Tabelle (id, timestamp, json). Dabei erreiche ich in 24h eine Tabellengröße von ~1,5GB
Und wenn du das alles per Textdatei tust, was wird gesparrt bzw. wie klein ist dann alles?

Gruß,
Peter
Member: StefanKittel
StefanKittel May 26, 2019 at 18:57:41 (UTC)
Goto Top
Moin,

es geht ja wohl um die ewige Frage ob man Binär- oder andere größe Daten in einer DB speichern soll.
Grundsätzliche Antwort: Nein, aber...

Zuerst würde ich die Datei [id].json nennen.
Das ist absolut eindeutet.
Dann noch das Feld [created] dazu.

Aber: Wenn Du Informationen aus dem JSON für Deine Suche benötigst, funktioniert das natürlich nicht.
Dann entweder
A) Doch JSON in der DB speichern
oder
B) Relevante Daten extrahieren und JSON in Datei speichern.

Stefan
Member: ukulele-7
ukulele-7 May 27, 2019 at 06:43:57 (UTC)
Goto Top
Ich würde vermuten das Textdateien minimal mehr Speicher konsumieren als die selben Daten in der DB. Das ist aber eigentlich egal, speichern musst du es ja. Eigentlich ist nur relevant wie viel schneller du darauf zugreifen und es verarbeiten kann.

Ich kenne JSON leider nicht sehr gut aber selbst MySQL scheint Funktionen für JSON zu bieten. Oder auch
https://www.postgresql.org/docs/9.3/functions-json.html
Member: SachsenHessi
SachsenHessi May 27, 2019 at 06:47:55 (UTC)
Goto Top
Hallo,

versuche die Daten, nach denen Du suchen bzw. die Du verarbeiten willst (z.Bsp. Kennzahlen) zusammen mit dem Speicherort der JASON-Datei in einer Tabelle in der DB abzulegen.
Falls Du die "anderen" Daten brauchst kannst Du immer noch dann auf die Datei zugreifen.
Gruß
SH
Member: akretschmer
akretschmer May 27, 2019 at 08:41:54 (UTC)
Goto Top
Moin,

bitte nicht auf PostgreSQL 9.3 verweisen, das ist schon gar nicht mehr unter Support. Aktuell ist Version 11. Dieses kann JSON in binärer Form speichern und indexbasiert durchsuchen. (JSONB).

Für unsere Kunden haben wir auch noch eine extra Extension:

"The zson2q extension provides a datatype for compressed JSONB, using a compression dictionary. The type is almost exactly like the JSONB type, but where commonly occurring strings are stored as indexes into a dictionary, thus allowing for reduced storage requirements and access times."
Member: TheJoker2305
TheJoker2305 Jun 20, 2019 at 12:49:49 (UTC)
Goto Top
Hallo,

wie gelangen die Dateien der JSON Dateien in die Datenbank?
In der JSON Datei ist vermutlich aufgrund der vielen Tags viel Overhead enthalten.
Um welche Anzahl an Datensätzen und welche Datentypen geht es in den Dateien / insgesamt?

Ich habe kürzlich ETL Jobs für den automatisierten Abruf / Download und Import in eine Datenbank erstellt.
Es ging dabei um eine geringe Anzahl an Datensätzen, jedoch war hierbei der Overhead der JSON Datei deutlioch größer als der Nutzdatenanteil.

Als Tool habe ich hierfür Talend Open Studio verwendet. Schnell umgesetzt und automatisiert.

VG
the joker2305
Member: TheJoker2305
TheJoker2305 Jul 01, 2019 at 12:46:09 (UTC)
Goto Top
Hallo,

ist die Frage noch aktuell?

Greetz
thejoker2305