ThingWorx 模型與資料最佳作法 > 資料管理 > 分割執行時間資料 > 分離舊分割區指令集與排程器使用情況
分離舊分割區指令集與排程器使用情況
分離現有分割區有助於更有效地管理大型 value_stream 表。此流程可透過指令行操作和排程器來完成。
包含大量資料的 value_stream 表可能會導致清除操作因掃描產生的表而花費大量時間,從而增加整體伺服器負載。使用刪除分割區操作可以簡化此問題。
使用 partition_value_stream_by_range_setting 指令行對 value_stream 表進行分割后 (在 PostgreSQL 中分割 value_stream 表),可以使用 detach_partitions_from_value_stream 指令更輕鬆快速地刪除或封存建立的分割區。
欲完成此流程,可透過指令行操作和排程器維護分割區封存或維護流程。
名為 detach_partitions_from_value_stream 的指令集具有下列指令行參數:
參數名稱
描述
預設值
註解
「主機」
資料庫主機
必填
「埠」
資料庫埠
必填
database
value_stream 表所在的資料庫名稱
必填
username
資料庫使用者
必填
password
資料庫密碼
必填
interval_to_retain
計算的保留間隔 = 目前時間減去 26 小時 (最大時區差異) 減去指定的 interval_to_retain。
必填
可能的格式:
1h 或 hours
1d 或 1day
1 month
1y 或 1year
動作
移除或封存分割區動作
必填
可能的值:
"drop"
"archive"
value_stream_archive_name
已封存的值串流表名稱
"value_stream_archive"
如果您已變更預設名稱,則之後不要再使用這些名稱:
value_stream_part_0,
value_stream_old,
value_stream_tmp,
或任何現有的表或分割區。
future_data_exists
選用
no
可能的值:
yes 或 no
如果 = yes (選用),指令集將支援未來的資料分割
如果選擇動作 drop,則會將 interval_to_retain 的完整分割區從 value_stream 表中分離並刪除。
如果選擇動作 archive,則會將早於 interval_to_retain 的完整分割區從 value_stream 表中分離,並附加至 value_stream_archive 表 (或在 value_stream_archive_name 輸入參數中設定的另一個表)。
例如,如果選擇的 interval_to_retain 為 1h,則會將超過 1 小時的完整分割區分離並將其刪除或存檔 (視動作參數而定)。
* 
為了復原的目的,在啟動分割流程之前,請先複製或備份資料庫。
欲使用 detach_partitions_from_value_stream 指令行,請執行下列操作:
1. 下載 detach_partitions_from_value_stream.sh 指令集。向 PTC 支援請求下載位置。
2. 將指令集複製到連線至 ThingWorx 資料庫的伺服器。
3. 開啟指令行並視需要使用上述參數執行指令。
例如,./detach_partitions_from_value_stream.sh -host <localhost> -port <port> -database <database> -username <username> -password <password> -interval_to_retain '1h' -action 'archive'
排程器使用
您可以使用 Windows 任務排程器或其他作業系統排程器來執行 detach_partitions_from_value_stream sh 指令集,例如每月執行一次。
也可以編寫排程器將執行的其他指令集。此附加指令集將透過使用範例中提到的參數執行 detach_partitions_from_value_stream
這是否有幫助?