Hallo community,
ich nehme über einen Messcontroller 24/7 Feuchtigkeitsdaten auf schicke diese über ein Netzwerk auf einen Windows XP Rechner, wo eine Visualisierungssoftware läuft, in welcher sozusagen die “live”-Daten angezeigt werden. Parallel dazu gehen die Messdaten dann noch an eine zweite Software auf dem gleichen Rechner, wo eine Filterung und Aufbereitung der Daten stattfindet, um diese dann in einer XML-Datei abzuspeichern, dies stellt eine Art History dar. Das ganze funktioniert soweit ganz gut. Im nächsten Schritt möchte ich nun die gefilterten und aufbereiteten Daten nicht mehr in einer Datei ablegen, sondern in einer Datenbank speichern. Auf der Suche danach bin ich auf PostgreSQL gestoßen.
Ein Beispiel:
Pro Monat fallen 20 GB Messdaten an.
In der Datenbank befinden sich nun die Monate Okt,Nov,Dez,Jan. (80GB)
Februar Daten werden kontinuierlich aufgenommen.
Okt. soll nun archiviert werden und aus der DB entfernt werden.
Nun die Frage:
Da die Datenaufnahme nicht unterbrochen werden darf/kann/sollte, wollte ich wissen, ob es möglich ist, z.B. Daten die älter sind als 3 Monate monatsweise zu archivieren (z.B. in ein Netzlaufwerk), um diese dann aus der DB zu entfernen, damit sie schlank bleibt?
Gibt es dafür Konzepte oder Möglichkeiten? Sollten die Daten dann besser Pro Monat in einer Tabelle sein? z.B für den Rücktransport in die DB.
Puh, sry für den vielen Text . Und danke für jede Antwort.
Herzlichst Euer Arno
Das größte Problem bei so einem Setup ist das Löschen der Daten, nachdem Du sie archiviert hast.
Für sowas wurde die Tabellepartionierung “erfunden”. Du legst pro Monat eine Partition an und wenn Du die Daten dann archiviert hast, kannst Du einfach die Partition löschen. Das geht deutlich schneller als ein entsprechendes DELETE Statement.
Archivieren kannst Du die Daten ja z.B. als Flat-Files die Du via COPY erzeugst.
Nun, ja, man könnte an dieser Stelle mit table-partitionierung arbeiten, Partitionierung nach Monat. Die Daten könnten dann aus der alten Monatstabelle als CSV rausCOPYiert werden und die Monatstabelle löschen.
Falls Du genug Platz für mehr als 3 Monate hast, kannst die Daten aber auch in der DB belassen.