Zum Hauptinhalt springen

Datenbankmodell

Dieses Dokument beschreibt, wo und in welcher Form das Gateway seine Daten ablegt. Es ist relevant, wenn Sie die Aufbewahrungsdauer anpassen, die Festplatte volläuft oder Sie direkt Abfragen durchführen müssen.

Im Gateway läuft eine eigene Cassandra-Instanz

Edge speichert seine eigenen Daten in einer lokalen Cassandra-Instanz (127.0.0.1:9042, Keyspace PE). Das ist etwas anderes als die Cassandra der übergeordneten Plattform (pp) — es handelt sich um einen eigenen Speicher, damit die Erfassung auch bei getrenntem Gateway alleine weiterlaufen kann.

Es gibt nur 11 Tabellen, die sich in zwei Gruppen aufteilen.

PräfixBedeutung
APP_Konfiguration — was erfasst werden soll
TM_Zeitreihen- und Betriebsprotokolle — was erfasst wurde und wie

APP_ — Erfassungskonfiguration

Was auf den Bildschirmen (Verbindung · Tag) erstellt wird, landet unverändert hier.

TabelleInhalt
APP_OPCVerbindungsdefinition — OPC_ID · Name · Protokoll (OPC_TYPE) · Ziel-IP/Port · Erfassungsintervall (TIMECYCLE) · automatische Erfassung ja/nein
APP_TAGTag-Definition — zu lesende Adresse und Datentyp
Ohne diese beiden Tabellen stoppt die Erfassung

Zeitreihendaten lassen sich erneut sammeln, aber die Konfiguration wurde von Menschen erstellt und kann nicht wiederhergestellt werden. Vergessen Sie diese beiden Tabellen nicht bei Backups → Backup.


TM_ — Erfasste Werte und Betriebsprotokolle

TabelleInhalt
TM_TAG_POINTRohdaten der Erfassung — der Kern dieses Speichers
TM_TAG_POINT_ARCHIVEKopie zur Archivierung
TM_TAG_ERRORErfassungsfehler pro Tag
TM_TAG_STATStatistiken pro Tag
TM_TAG_WRITESchreib-(Steuerungs-)Historie
TM_OPC_STATStatistiken pro Verbindung
TM_PLC_PINGVerlauf der Antwortprüfung des Zielgeräts
TM_MONITORRessourcen/Status des Gateways
TM_API_LOGProtokoll der REST API-Aufrufe

Aufbau von TM_TAG_POINT

PRIMARY KEY (TAG_ID, TIMESTAMP)
WITH CLUSTERING ORDER BY (TIMESTAMP DESC)
EigenschaftWert
PartitionsschlüsselTAG_ID — ein Tag entspricht einer Partition
ClusteringTIMESTAMP absteigend — Lesen beginnt beim neuesten Wert
SpaltenVALUE · QUALITY · ERROR_CODE · TYPE · ATTRIBUTE (Map)
CompactionTimeWindowCompactionStrategy, 10-Minuten-Fenster
Warum TimeWindow

Das Gateway macht im Wesentlichen nur „schreiben, kurz lesen, per TTL verwerfen“. Wenn SSTables nach Zeitfenstern gebündelt werden, können abgelaufene Fenster komplett verworfen werden, wodurch die Compaction-Kosten kaum ins Gewicht fallen.


Aufbewahrungsdauer — der Wert steht an zwei Stellen

Die 30 Tage im Schema sind nicht der tatsächliche Wert

default_time_to_live in scheme.cql steht auf 30 Tage (2592000 Sekunden), wird aber beim Start durch den Wert von edge.ttl in app.properties per ALTER TABLE überschrieben, um die Tabellen-TTL zu setzen.

Der Werkseinstellungswert ist edge.ttl = 60 (Tage), daher beträgt die tatsächliche Aufbewahrungsdauer 60 Tage. Verlassen Sie sich nicht allein auf die Schema-Datei und schließen Sie nicht auf 30 Tage.

Um den Wert zu ändern, passen Sie edge.ttl an und starten Sie neu.

cd /opt/kopens/plantpulse-edge/bin
./config.sh --get edge.ttl
./config.sh --set edge.ttl 90
./config.sh --restart # 기동 시 ALTER TABLE 로 반영된다
Eine Verkürzung wirkt sofort

Wird die TTL verkürzt, werden ältere Daten beim nächsten Compaction-Lauf entfernt. Das ist nicht rückgängig zu machen. Wenn Sie wegen Platzmangels verkürzen müssen, prüfen Sie vorher, ob die benötigten Zeiträume bereits an die übergeordnete Plattform übertragen wurden.


Wenn die Festplatte voll wird

Der Speicherbedarf ergibt sich aus Anzahl der Tags × Erfassungsintervall × Aufbewahrungstage. Einer dieser drei Faktoren muss reduziert werden.

AnsatzpunktMethode
Aufbewahrungstageedge.ttl reduzieren (siehe oben)
ErfassungsintervallTIMECYCLE der Verbindung erhöhen — nur Tags behalten, die wirklich eine Erfassung im Sekundentakt benötigen
Anzahl der Tagsautomatische Erfassung nicht genutzter Tags deaktivieren

Zur Diagnose siehe Diagnose.


Verwandte Dokumente