Optimale Vorgehensweisen für ThingWorx Modell und Daten > Datenverwaltung > Laufzeitdaten partitionieren > Alte Partitionen abtrennen: Verwendung von Skripten und Scheduler
Alte Partitionen abtrennen: Verwendung von Skripten und Scheduler
Das Trennen vorhandener Partitionen kann dazu beitragen, große value_stream-Tabellen effizienter zu verwalten. Dieser Prozess kann über Befehlszeilenschnittstellen-Operationen und den Scheduler erfolgen.
Eine value_stream-Tabelle mit einer großen Datenmenge kann dazu führen, dass Bereinigungsoperationen aufgrund der resultierenden Tabellenscans viel Zeit in Anspruch nehmen und somit die Gesamtlast des Servers erhöhen. Die Verwendung von Operationen zum Entfernen von Partitionen kann dieses Problem rationalisieren.
Nachdem Sie die value_stream-Tabelle mit der Befehlszeilenschnittstelle partition_value_stream_by_range_setting (value_stream-Tabelle in PostgreSQL partitionieren) partitioniert haben, können Sie den Befehl detach_partitions_from_value_stream verwenden, um die erstellten Partitionen einfacher und schneller zu entfernen oder zu archivieren.
Dieser Prozess kann über Befehlszeilenschnittstellen-Operationen und den Scheduler zur Verwaltung des Partitionsarchivs oder des Wartungsprozesses erfolgen.
Das Skript mit dem Namen detach_partitions_from_value_stream hat die folgenden Befehlszeilenschnittstellen-Parameter:
Parametername
Beschreibung
Standardwert
Kommentar
host
Datenbank-Host
Obligatorisch
Port
Datenbank-Port
Obligatorisch
database
Name der Datenbank, in der sich die value_stream-Tabelle befindet
Obligatorisch
username
Datenbankbenutzer
Obligatorisch
password
Datenbank-Passwort
Obligatorisch
interval_to_retain
Berechnetes beizubehaltendes Intervall = aktuelle Zeit minus 26 Stunden (maximaler Zeitzonenunterschied) abzüglich des interval_to_retain-Wertes.
Obligatorisch
Mögliche Formate:
1h oder Stunden
1d oder 1 Tag
1 Monat
1y oder 1 Jahr
action
Aktion zum Entfernen oder Archivieren von Partitionen
Obligatorisch
Mögliche Werte:
‘drop’
‘archive’
value_stream_archive_name
Archivierter Wert-Stream-Tabellenname
'value_stream_archive'
Wenn Sie den Standardnamen ändern, sollten Sie nicht die folgenden Namen verwenden:
value_stream_part_0,
value_stream_old,
value_stream_tmp,
oder eine vorhandene Tabelle oder Partition.
future_data_exists
Optional
no
Mögliche Werte:
yes oder no
Wenn "yes" (optional), dann unterstützt das Skript zukünftige Datenpartitionierungen.
Wenn Sie die Aktion drop wählen, werden vollständige Partitionen, die älter als "interval_to_retain" sind, von der value_stream-Tabelle getrennt und entfernt.
Wenn Sie die Aktion archive wählen, werden vollständige Partitionen, die älter als "interval_to_retain" sind, von der value_stream-Tabelle getrennt und an die value_stream_archive-Tabelle angehängt (oder an eine andere Tabelle, die im value_stream_archive_name-Eingabeparameter festgelegt ist).
Wenn Sie beispielsweise interval_to_retain als 1h auswählen, werden vollständige Partitionen, die älter als 1 Stunde sind, getrennt und entsprechend dem Parameter "action" gelöscht oder archiviert.
* 
Klonen oder sichern Sie die Datenbank, bevor Sie den Partitionierungsprozess initiieren, damit sie später wiederhergestellt werden kann.
Gehen Sie wie folgt vor, um die Befehlszeile detach_partitions_from_value_stream zu verwenden:
1. Laden Sie das Skript detach_partitions_from_value_stream.sh herunter. Fordern Sie den Download-Speicherort vom PTC Support an.
2. Kopieren Sie das Skript auf einen Server, der mit der ThingWorx Datenbank verbunden ist.
3. Öffnen Sie eine Befehlszeile, und führen Sie den Befehl wie gewünscht mit den obigen Parametern aus.
Beispiel: ./detach_partitions_from_value_stream.sh -host <localhost> -port <port> -database <database> -username <username> -password <password> -interval_to_retain '1h' -action 'archive'.
Scheduler-Verwendung
Sie können die Windows-Aufgabenplanung oder andere Betriebssystem-Scheduler verwenden, um das Skript detach_partitions_from_value_stream sh auszuführen, z.B. für eine monatliche Ausführung.
Sie können auch ein anderes Skript schreiben, das der Scheduler ausführt. Dieses zusätzliche Skript führt detach_partitions_from_value_stream mit den im Verwendungsbeispiel erwähnten Parametern aus.
War dies hilfreich?