Migration CUxD-HighChart zu CCU-Historian
Verfasst: 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 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
oder und ohne 2018 am Ende für alle Dateien
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:
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:
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
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 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
Code: Alles auswählen
cscript create_h2_script.vbs HmLog.txt.
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);
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';
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