Ich möchte von einer 'Sicherungs-DB' bestimmte Spalten einer Tabelle innerhalb eines bestimmten Zeitraums exportieren, wobei ich nicht weis wie ich das Exportieren zu machen habe.
Die Abfrage sieht wie folgt aus:
SELECT "barometer","rain" FROM "archive" WHERE "dateTime" > '1659729600' AND "dateTime" < '1660459980'
Falls ein Export (als csv Datei) geht, kann ich diese Datei dann ich die richte DB importieren,
d.h. die falschen Werte überschreiben ?
Oder ist dieses Unterfangen so überhaupt nicht möglich?
Oder muss ich den kompletten Zeitabschnitt aus der Sicherungs-DB exportieren,
dann diesen Zeitabschnitt der richtigen DB komplett löschen und anschließend den Export importieren?
SQLite3 DB Im-Export von bestimmten Spalten einer Tabelle weewx.sdb
- Werner
- Site Admin
- Beiträge: 5681
- Registriert: 04 Dez 2001 01:00
- Wohnort: Lackenhäuser
- Danksagung erhalten: 59 mal
- Kontaktdaten:
Re: SQLite3 DB Im-Export von bestimmten Spalten einer Tabelle weewx.sdb
@Joachim,
Tagestabelle dabei nicht vergessen:
Wie schon erwähnt bietet sich dazu "DB Browser for SQLite" an.
Hier kannst Du die Tabellen (auswählbar welche) im SQL-Format exportieren.
In der dabei erzeugten SQL-Datei die Statements "INSERT" durch "REPLACE" ersetzen und dann in die andere Daten importieren.
... und immer mit BACKUP arbeiten
Im RasPI und Weewx kann man nur neuere Werte importieren, vorhandene ersetzen ist mir nicht bekannt,
könnte eventuell mit der V4.8.0 gehen ?
Wichtig ist bei Weewx auch, wenn man die Datenbank "extern" modifiziert:
Eventuell zu berechnente Werte (wie Windchill, Taupunkt ...) neu berechnen lassen, sonst fehlen sie.
Du musst auch für den geänderten Importierten Zeitraum die täglichen Werte noch aktualisieren:
--config= eventuell anpassen! und natürlich auch --from= und --to=
Ich würde vorher alle nicht zu modifizierenden Datensätze aus der Datenbank löschen (Beispiel),SELECT "barometer","rain" FROM "archive" WHERE "dateTime" > '1659729600' AND "dateTime" < '1660459980'
Tagestabelle dabei nicht vergessen:
Code: Alles auswählen
DELETE FROM archive WHERE datetime(datetime,'unixepoch','localtime') < '2022-07-20 18:05:00';
DELETE FROM archive WHERE datetime(datetime,'unixepoch','localtime') > ' 2022-04-09 23:55:00';
DELETE FROM archive_day_barometer WHERE datetime(datetime,'unixepoch','localtime') < '2022-07-20 18:05:00';
DELETE FROM archive_day_barometer WHERE datetime(datetime,'unixepoch','localtime') > '2022-04-09 23:55:00';
Hier kannst Du die Tabellen (auswählbar welche) im SQL-Format exportieren.
In der dabei erzeugten SQL-Datei die Statements "INSERT" durch "REPLACE" ersetzen und dann in die andere Daten importieren.
... und immer mit BACKUP arbeiten
Im RasPI und Weewx kann man nur neuere Werte importieren, vorhandene ersetzen ist mir nicht bekannt,
könnte eventuell mit der V4.8.0 gehen ?
Wichtig ist bei Weewx auch, wenn man die Datenbank "extern" modifiziert:
Eventuell zu berechnente Werte (wie Windchill, Taupunkt ...) neu berechnen lassen, sonst fehlen sie.
Du musst auch für den geänderten Importierten Zeitraum die täglichen Werte noch aktualisieren:
Code: Alles auswählen
sudo wee_database --config=/etc/weewx/weewx.conf --calc-missing --from=2022-??-?? --to=2022-??-??
sudo wee_database --config=/etc/weewx/weewx.conf --rebuild-daily --from=2022-??-?? --to=2022-??-??
- JoachimF
- Beiträge: 222
- Registriert: 08 Dez 2021 20:29
- Wohnort: Carces
- Hat sich bedankt: 1 mal
- Kontaktdaten:
Re: SQLite3 DB Im-Export von bestimmten Spalten einer Tabelle weewx.sdb [erledigt]
@Werner,
das Überspielen der Daten aus der Sicherungsdatei gestaltet sich fast unmöglich, weil, ich hatte es vergessen, der Sicherungsraspi alle 60 sec. aufzeichnet und der 2-Instanzen alle 120 sec.. Die Anzahl passt nicht und dann stimmen die dateTime's der beiden DB's auch nicht.
Die Datensätze von 6 betroffenen Spalten über ca. 7 Tage manuell zu bearbeiten, werde ich nicht machen.
das Überspielen der Daten aus der Sicherungsdatei gestaltet sich fast unmöglich, weil, ich hatte es vergessen, der Sicherungsraspi alle 60 sec. aufzeichnet und der 2-Instanzen alle 120 sec.. Die Anzahl passt nicht und dann stimmen die dateTime's der beiden DB's auch nicht.
Die Datensätze von 6 betroffenen Spalten über ca. 7 Tage manuell zu bearbeiten, werde ich nicht machen.