ThingWorx 模型和数据最佳做法 > 数据管理 > 对运行时数据进行分区 > 分离旧分区脚本和计划程序的使用
分离旧分区脚本和计划程序的使用
分离现有分区有助于更有效地管理大型 value_stream_tables。此过程可通过命令行操作和计划程序来完成。
包含大量数据的 value_stream 表可能会导致清除操作因扫描所产生的表而花费大量时间,并会增加整个服务器负载。使用删除分区操作可以简化此问题。
使用 partition_value_stream_by_range_setting 命令行对 value_stream 表进行分区 (在 PostgreSQL 中对 value_stream 表进行分区) 后,可使用 detach_partitions_from_value_stream 命令更轻松、更快速地删除或存档创建的分区。
此过程可通过命令行操作和计划程序来完成,以维护分区存档或维护过程。
名为 detach_partitions_from_value_stream 的脚本具有以下命令行参数:
参数名称
说明
默认值
备注
host
数据库主机
必填
port
数据库端口
必填
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 (可选),脚本支持将来对数据进行分区
如果选择 action drop 操作,则早于 interval_to_retain 的完整分区将从 value_stream 表中分离并删除。
如果选择存档操作,则早于 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 任务计划程序或其他 OS 计划程序来运行 detach_partitions_from_value_stream sh 脚本,例如每月运行一次。
还可以编写计划程序将执行的其他脚本。此附加脚本将使用用法示例中提及的参数运行 detach_partitions_from_value_stream
这对您有帮助吗?