Best practice per modelli e dati di ThingWorx > Gestione dei dati > Partizionamento dei dati di runtime > Script di distacco delle vecchie partizioni e utilizzo dello scheduler
Script di distacco delle vecchie partizioni e utilizzo dello scheduler
Il distacco delle partizioni esistenti può aiutare a gestire tabelle value_stream di grandi dimensioni in modo più efficiente. Questo processo può essere eseguito tramite le operazioni della riga di comando e lo scheduler.
Una tabella value_stream con una grande quantità di dati può richiedere molto tempo per le operazioni di eliminazione a causa delle analisi di tabella risultanti, aumentando così il carico complessivo del server. L'utilizzo di operazioni di eliminazione delle partizioni può semplificare questo problema.
Dopo aver partizionato la tabella value_stream con la riga di comando partition_value_stream_by_range_setting (Partizionamento della tabella value_stream in PostgreSQL), è possibile utilizzare il comando detach_partitions_from_value_stream per eliminare o archiviare le partizioni create in modo più semplice e rapido.
Questo processo può essere eseguito tramite le operazioni della riga di comando e lo scheduler per gestire l'archiviazione o la manutenzione delle partizioni.
Lo script denominato detach_partitions_from_value_stream include i seguenti parametri della riga di comando:
Nome parametro
Descrizione
Valore di default
Commento
host
Host del database
Obbligatorio
port
Porta del database
Obbligatorio
database
Nome del database in cui si trova la tabella value_stream
Obbligatorio
username
Utente del database
Obbligatorio
password
Password del database
Obbligatorio
interval_to_retain
Intervallo di conservazione calcolato = ora corrente meno 26 ore (differenza di fuso orario massima) meno il valore di interval_to_retain specificato.
Obbligatorio
Formati possibili:
1h o hours
1d o 1day
1 month
1y o 1year
action
Azione di eliminazione o archiviazione delle partizioni
Obbligatorio
Valori possibili:
"drop"
"archive"
value_stream_archive_name
Nome di tabella dello stream di valori archiviato
"value_stream_archive"
Se si modifica il nome di default, non utilizzare questi nomi:
value_stream_part_0
value_stream_old
value_stream_tmp
o qualsiasi tabella o partizione esistente.
future_data_exists
Facoltativo
no
Valori possibili:
yes o no
Se = yes (facoltativo), lo script supporta il partizionamento dei dati in futuro
Se si sceglie l'azione drop, le partizioni complete precedenti al valore di interval_to_retain vengono distaccate dalla tabella value_stream ed eliminate.
Se si sceglie l'azione archive, le partizioni complete precedenti al valore di interval_to_retain vengono distaccate dalla tabella value_stream e aggiunte alla tabella value_stream_archive (o a un'altra tabella impostata nel parametro di input value_stream_archive_name).
Ad esempio, se si sceglie 1h per interval_to_retain, le partizioni complete precedenti a 1 ora vengono distaccate ed eliminate o archiviate in base al parametro action.
* 
Ai fini del ripristino, clonare o eseguire il backup del database prima di avviare il processo di partizionamento.
Per utilizzare la riga di comando detach_partitions_from_value_stream, attenersi alla procedura descritta di seguito.
1. Scaricare lo script detach_partitions_from_value_stream.sh. Richiedere il percorso di download al supporto tecnico PTC.
2. Copiare lo script in un server connesso al database ThingWorx.
3. Aprire una riga di comando ed eseguire il comando come desiderato utilizzando i parametri precedenti.
Ad esempio, ./detach_partitions_from_value_stream.sh -host <localhost> -port <port> -database <database> -username <username> -password <password> -interval_to_retain '1h' -action 'archive'.
Utilizzo dello scheduler
Per eseguire lo script detach_partitions_from_value_stream sh, ad esempio per un'esecuzione mensile, è possibile utilizzare Utilità di pianificazione di Windows o uno scheduler di un altro sistema operativo.
È inoltre possibile scrivere un altro script che deve essere eseguito dallo scheduler. Questo script aggiuntivo esegue detach_partitions_from_value_stream con i parametri citati nell'esempio di utilizzo.
È stato utile?