Aggregierte Messdaten

Vorbereitung

Wenn die alte Datenaggregation (<=8.1.2) aktiv ist, muss der PostgreSQL-Synchronisierungsauftrag deaktiviert werden.

psql -U infosim -d infosim -c "SELECT delete_job((SELECT max(job_id) FROM timescaledb_information.jobs where proc_schema = 'stablenet' AND proc_name = 'update_measurement_data_aggregated'));"

Darüber hinaus ist es ratsam, die alten Aggregat-Tabellen zu entfernen und die Datenabfragen so umzugestalten, dass sie die von der neuen Datensynchronisierung erstellten verwenden.

Stellen Sie sicher, dass die Einstellungen in /etc/stablenet-fdw/stablenet-fdw.conf korrekt sind.

Anfängliche Synchronisierung

Die folgenden Befehle werden verwendet, um Messdaten von StableNet/Oracle/MySQL zu synchronisieren.

Die Befehle sollten beim ersten Mal manuell in sequenzieller Reihenfolge ausgeführt werden, um sicherzustellen, dass alles einwandfrei funktioniert.

Wenn Sie die Befehle zum ersten Mal ausführen, werden nur die Daten des aktuellen Tages synchronisiert. Historische Daten können später synchronisiert werden, nachdem die automatische Synchronisierung eingerichtet wurde.

Das Argument server_id wird nur benötigt, wenn es konfiguriert ist. Diese Befehle müssen für jeden server_id einzeln ausgeführt werden.

Synchronisierung der Messungen

sudo -u eranger /opt/stablenet-fdw/measurement-data-sync/measurement-sync.sh [server_id>]

Dieser Befehl synchronisiert die Messungen von der StableNet-API basierend auf den konfigurierten Tag-Filtern. Dies wird später bei der inkrementellen Synchronisierung verwendet, um nur Daten für erforderliche Messungen zu synchronisieren.

Inkrementelle Synchronisierung

sudo -u eranger /opt/stablenet-fdw/measurement-data-sync/incremental-sync.sh [server_id>]

Mit diesem Befehl werden Rohmessdaten von Oracle/MySQL mit PostgreSQL synchronisiert. Bei jedem Durchlauf werden nur neue Daten synchronisiert. Die Daten werden in sn_ping_data, sn_snmp_data und sn_usrscript_data gespeichert. Zusätzlich werden diese Rohdaten in der Tabelle stablenet_measurement_data_minutely aggregiert, die value_avg, value_min und value_max enthält.

Aggregierte Synchronisierung

Dieser Schritt ist optional und nur erforderlich, wenn Sie die 5- und 15-Minuten-Buckets benötigen. Wenn nicht, fahren Sie stattdessen mit der stündlichen Synchronisierung fort.

sudo -u eranger /opt/stablenet-fdw/measurement-data-sync/aggregate-sync.sh [server_id>]

Fasst die Rohdaten aus der inkrementellen Synchronisierung in 5-Minuten- und 15-Minuten-Buckets zusammen. Die Daten werden in stablenet_measurement_data_5_minutely und stablenet_measurement_data_15_minutely gespeichert. Die resultierenden Tabellen enthalten die Spalten value_avg, value_min und value_max für die aggregierten Zeilen.

Aggregierte stündliche Synchronisation

sudo -u eranger /opt/stablenet-fdw/measurement-data-sync/aggregate-hourly-sync.sh [server_id>]

Aggregiert Daten aus der Tabelle stablenet_measurement_data_minutely in stablenet_measurement_data_hourly. Diese Tabelle enthält keine Durchschnitts-, Minimal- und Maximalwerte, sondern stattdessen zeitlich skalierte Statistikspalten (stats_agg statssummary2d, stats_agg_max statssummary2d, percentile_agg uddsketch, percentile_agg_max uddsketch). Diese Spalten können später verwendet werden, um viele statistische Informationen über die aggregierten Daten zu erhalten.

Statistik-Synchronisation

sudo -u eranger /opt/stablenet-fdw/measurement-data-sync/aggregate-hourly-sync.sh [server_id>]

Führt ein Rollup der statistischen Daten von stablenet_measurement_data_hourly in stablenet_measurement_data_daily, stablenet_measurement_data_weekly, stablenet_measurement_data_monthly, stablenet_measurement_data_quartely und stablenet_measurement_data_yearly durch.

Automatische Synchronisierung

Nachdem wir die Synchronisierungsbefehle manuell ausgeführt haben, wollen wir einige Jobs in der SKOOR Engine einrichten, um die Synchronisierung automatisch durchzuführen.

  1. Erstellen Sie eine Gruppe namens StableNet Data Sync im Stammverzeichnis

    image-20250627-061619.png
  2. Erstellen Sie ein Gerät namens localhost unterhalb der Gruppe StableNet Data Sync

    image-20250627-061655.png
  3. Erstellen Sie 5 Execute-Jobs unter localhost

    1. StableNet Measurement Sync [server_id]
      Intervall: 1 hour, fix, if longer immediately
      Programmpfad: /opt/stablenet-fdw/measurement-data-sync/measurement-sync.sh [server_id]
      Ausgabe in Datei speichern: stablenet-measurement-sync.log

    2. StableNet Incremental Sync [server_id]
      Intervall: 1 minute, fix, if longer immediately
      Programmpfad: /opt/stablenet-fdw/measurement-data-sync/incremental-sync.sh [server_id]
      Ausgabe in einer Datei speichern: stablenet-incremental-sync.log

    3. StableNet Aggregate Sync (OPTIONAL, nur hinzufügen, wenn Sie 5- und 15-Minuten-Intervalle benötigen)
      Intervall: 1 minute, fix, if longer immediately
      Programmpfad: /opt/stablenet-fdw/measurement-data-sync/aggregate-sync.sh [server_id]
      Ausgabe in einer Datei speichern: stablenet-aggregate-sync[-server_id].log

    4. StableNet Aggregate Hourly Sync
      Intervall: 10 minutes, fix, if longer immediately
      Programmpfad: /opt/stablenet-fdw/measurement-data-sync/aggregate-hourly-sync.sh [server_id]
      Ausgabe in einer Datei speichern: stablenet-aggregate-hourly-sync[-server_id].log

    5. StableNet Stats Sync
      Intervall: 1 hour, fix, if longer immediately
      Programmpfad: /opt/stablenet-fdw/measurement-data-sync/stats-sync.sh [server_id]
      Ausgabe in einer Datei speichern: stablenet-stats-sync[-server_id].log

Historie Sync

Führen Sie diesen Befehl NACH der ersten Synchronisierung und NACH der Einrichtung der automatischen Synchronisierung aus.

sudo -u eranger /opt/stablenet-fdw/measurement-data-sync/history-sync.sh [server_id>]

Dieser Befehl synchronisiert historische Daten auf der Grundlage der Konfiguration [history_sync] days , start_date und end_date. In der Regel möchten Sie bei der ersten Synchronisierung nur days einstellen oder die Einstellungen unverändert lassen und einfach ein Jahr lang zurücksynchronisieren.

Es könnte auch eine gute Idee sein, nohup zu verwenden, um den Befehl auszuführen, da es einige Zeit dauern kann, bis er abgeschlossen ist.