Migration CUxD-HighChart zu CCU-Historian

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Antworten
Benutzeravatar
wak
Beiträge: 253
Registriert: 05.05.2014, 00:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 31 Mal

Migration CUxD-HighChart zu CCU-Historian

Beitrag von wak » 07.03.2019, 23:14

Hallo,

da ich nun CCU-Historian zum Protokullieren verwende, wollte ich natürlich meine alten CUxD-Log teilweise migrieren.

Hier meine Vorgehensweise:

1. Neues Verzeichnis auf einen Win-PC erstellen

2. Alle CUxD-Log (HmLog.txt.2019... ) in dieses Verzeichnis kopieren.

3. Erzeugen einer Liste der zu migrierenden Daten-Punkte über die bereits laufende CCU-Historian.
Dazu habe ich das H2-Datenbank Web-Tool verwendet und folgenden SQL-Befehl abgesetzt:
SELECT CONCAT(address ,'.' , identifier,'|', display_name,'|', table_name ) FROM DATA_POINTS where BITAND(state,16) = 16;
Die erzeugte Liste habe ich via Texteditor in folgende Dateigespeichert: ImportFilter.csv
Bitte nur die Zeilen in der ImportFilter.csv aufnehmen, die wirklich gebraucht werden und ebenso in obiges Verzeichnis ablegen.

4. folgendes VB-Script in obiges Verzeichnis kopieren und entpacken
create_h2_script.zip
(1.12 KiB) 73-mal heruntergeladen
5. im Create_h2_script.vbs auf Zeile 86 sollte man noch das maximale Datum anpassen, bis dahin werden TS+Werte für CCU-Historian erzeugt
if cdate(strDate + " " + strTime) < cdate("2019-01-22 20:37:59") and dictLast.Item(arrItem(1)) <> arrItem(2) then

6. das vb-script kann man mit folgendem Befehl aus der cmd-Line für nur 2018 wie folgt starten

Code: Alles auswählen

cscript create_h2_script.vbs HmLog.txt.2018
oder und ohne 2018 am Ende für alle Dateien

Code: Alles auswählen

cscript create_h2_script.vbs HmLog.txt.
Das Script läuft über alle gefunden Dateien mit Anfang HmLog.txt.... und sucht nach Einträgen aus ImportFilter.csv, damit erzeugt es dann eine SQL-Script Datei die wie folgt aussieht, es werden bei Datenpunkte nur geänderte Werte übergeben, gleiche werden unterdrückt, falls das nicht gewünscht wird einfach Zeile 84 und 89,90 auskommentieren oder löschen:
Name: h2_script.sql
Inhalt:

Code: Alles auswählen

MERGE INTO D_CUXD_CUX9001004_1_STATE (TS, VALUE, STATE) key(TS) VALUES (TIMESTAMP '2015-12-31 00:00:01.000', 0, 0);
MERGE INTO D_CUXD_CUX9002016_1_TEMPERATURE (TS, VALUE, STATE) key(TS) VALUES (TIMESTAMP '2015-12-31 00:00:04.000', 43.250000, 0);
MERGE INTO D_CUXD_CUX9000002_1_HELLIGKEIT (TS, VALUE, STATE) key(TS) VALUES (TIMESTAMP '2015-12-31 00:00:05.000', 2.000000, 0);
MERGE INTO D_CUXD_CUX9002016_1_TEMPERATURE (TS, VALUE, STATE) key(TS) VALUES (TIMESTAMP '2015-12-31 00:03:01.000', 42.000000, 0);
MERGE INTO D_CUXD_CUX9000002_1_HELLIGKEIT (TS, VALUE, STATE) key(TS) VALUES (TIMESTAMP '2015-12-31 00:03:01.000', 1.000000, 0);
7. Nach dem erstellen der h2_script.sql kopiert man diese via winscp auf den CCU-Historian server in z.b. Verzeichnis /tmp

8. nun kann man über das H2-Datenbank Web-Tool das SQL-Script mit folgendem Befehlt starten:

Code: Alles auswählen

RUNSCRIPT FROM '/tmp/h2_script.sql';
Hier bekommt man leider keine Anzeige wie lang das ganze noch läuft ....

Bitte unbedingt vorher eine Sicherung das Datenbank machen und etwas Gedult mitbringen. Bei mir habe ich über diese Vorgehensweise über 1 Mio. Datensätze bereits erfolgreich migriert.

Den MERGE habe ich bewußt statt den Befehlt INSERT verwendet, damit man das SQL-Script bei einem Abbruch einfach nochmals starten könnte.

Viel Spaß beim Migrieren
wak

SavageDeath
Beiträge: 15
Registriert: 01.01.2020, 23:37
Hat sich bedankt: 6 Mal

Re: Migration CUxD-HighChart zu CCU-Historian

Beitrag von SavageDeath » 29.03.2021, 22:53

Hallo wak,

das Script ist genau das was ich suche - da ich bisher über CuXD die Daten gespeichert habe, nun aber auf Historian gewechsel bin und die Historie dort wiederherstellen will.

Leider muss ich gestehen, dass ich beim 3. Punkt bereits scheitere, d.h. wenn ich den SQL-Befehl ausführe, wird dieser mittels error abgewiesen?

"Bei der Skriptausführung ist ein Fehler aufgetreten:
startup failed:
UserScript: 1: unexpected token: . @ line 1, column 24.
SELECT CONCAT(address ,'.' , identifier,'|', display_name,'|', table_name ) FROM DATA_POINTS where BITAND(state,16) = 16;
^

1 error"


Vielleicht kannst du mir helfen?

Beste Grüße und vorab Danke
SavageDeath

Benutzeravatar
wak
Beiträge: 253
Registriert: 05.05.2014, 00:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 31 Mal

Re: Migration CUxD-HighChart zu CCU-Historian

Beitrag von wak » 01.04.2021, 11:47

Hallo SavageDeath,

bei mir funktioniert der Befehl noch, hast du den auch im H2-Datenbank Web-Tool gestartet?

Das müßte dann so aussehen:
H2-WebConsole.jpg
LG wak

SavageDeath
Beiträge: 15
Registriert: 01.01.2020, 23:37
Hat sich bedankt: 6 Mal

Re: Migration CUxD-HighChart zu CCU-Historian

Beitrag von SavageDeath » 05.04.2021, 11:38

Hallo Wak,

Danke für deine Rückmeldung.
Ich muss gestehen, dass ich versucht hatte das SQL Statement innerhalb der Weboberfläche abzusetzen :(...

Werde es heute Abend auf dem korrekten Wege probieren, danke !!

Beste Grüße
SavageDeath

Antworten

Zurück zu „CCU-Historian“