分割執行時間資料
在 PostgreSQL 中分割 value_stream 表 (BETA)
包含大量資料的 value_stream 表可能會導致產生以時間為基礎的查詢和清除操作,因產生的表格掃描而花費大量時間,並增加整體伺服器負載。每週或每月進行分割和比對 drop-partition 操作將簡化其中一些目前的瓶頸。
對於大規模資料擷取,請使用 partition_value_stream_by_range_setting 指令行對 value_stream 表進行分割,以輕鬆控制分割範圍,例如何時開始或結束分割及分割間隔。這包括對舊資料重新分割及變更開始、結束或間隔時間。
使用 partition_value_stream_by_range_setting 指令行支援下列功能:
1. 將新分割區新增到現有表格或分割區,將停機時間縮到最短。
2. 重新分割特定時間的舊資料或所有資料。這樣做可能需要一些時間。
3. 使用不同的範圍設定重新分割。
4. 如果資料不屬於任何分割區,請使用 DEFAULT 分割區來儲存資訊。
欲對 value_stream 表進行分割,請建立定期分割區。使用資料庫排程器工具來確保未來插入的所有資料都將進入下一個分割區。
partition_value_stream_by_range_setting 指令行具有下列參數:
參數名稱
描述
預設值
註解
「主機」
資料庫主機
必填
「埠」
資料庫埠
必填
database
value_stream 表所在的資料庫名稱
必填
username
資料庫使用者
必填
password
資料庫密碼
必填
partition_start_date
* 
如果提供的資料是過去的資料,根據需要分割的資料量,可能會導致停機。建議您先在測試環境中執行此項目,然後再分析任何可能的停機。如果將 partition_start_date 保留空白,不會有停機。
定義要從哪個時間點建立分割區。它可能是過去或未來。
value_stream 表中「時間」欄的最後一個值。如果沒有資料,則開始日期=目前。
選用
可能的格式:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.MS
partition_end_date
定義要從哪個時間點停止建立分割區。
必填
可能的格式:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.MS
必須在未來且至少大於「時間」欄的最後一個值加上間隔。如果沒有資料,則必須大於目前 + 間隔。
partition_interval
每個分割區的強制間隔
可能的格式:
1h 或 hours
1d 或 1day
1 month
1y 或 1year
repartition_all_data
必填
no
可能的值:
yes 或 no
如果 = yes (選用),指令集將略過開始日期並重新分割所有資料
執行指令行後,會根據參數對 value_stream 表進行分割,並將資料推送到正確的分割區。
欲使用 partition_value_stream_by_range_setting 指令行,請執行下列操作:
1. 下載 partition_value_stream_by_range_setting.sh 指令集。從 support.ptc.com 請求下載位置。
2. 將指令集複製到連線至 ThingWorx 資料庫的伺服器。
3. 開啟指令行並視需要使用上述參數執行指令。
例如,。/partition_value_stream_by_range_setting.sh -host localhost -port 5432 -database thingworx -username DBA -password password -partition_start_date '2024-06-17 00:00:00.000' -partition_end_date '2025-06-17 00:00:00.000' -partition_interval '1 months'
* 
為防止重複提供某些參數,您可以編輯指令集並設定下列參數:DB_HOST、DB_PORT、DB_NAME、DB_USER、DB_PASSWORD。
4. 維護分割區。例如,建立一個排程器來新增未來的分割區,並封存或刪除舊分割區。但是,大量分割區會顯著增加查詢規劃時間,因此請避免使用數千個分割區。
這是否有幫助?