TSContainerManage 函数更改容器的属性。
只有具有对 TSContainerTable 表和 TSContainerWindowTable 表的更新特权的用户才能运行此函数。
语法
TSContainerManage(container_name lvarchar,
command lvarchar);
- container_name
- 容器的名称。容器名称必须存在。
- command
- 更改容器属性的命令:
- detach active partitions before datetime
- 对于滚动窗口容器,将指定时间戳记之前的所有活动分区分离到休眠窗口。
关键字 active partitipants 和 before 是可选的,不会更改命令。
- attach dormant partitions after datetime
- 对于滚动窗口容器,将指定时间戳记之后的所有休眠分区附加到活动窗口。但是,不会超出活动窗口中的最大分区数,即使有更多分区满足时间戳记条件。
关键字 dormant partitions 和 after 是可选的,不会更改命令。
- destroy dormant partitions before datetime
- 对于滚动窗口容器,销毁指定时间戳记之前的所有休眠分区。这些分区可能包含数据。不会销毁满足时间戳记条件的任何活动分区。
关键字 dormant partitions 和 before 是可选的,不会更改命令。
- set active window size to number
- 对于滚动窗口容器,设置活动窗口中的分区数:
- 0 = 无大小限制。
- 正整数 = 活动窗口中的最大分区数。如果减小此大小,超出活动窗口大小的数量的最旧活动分区将分离到休眠窗口。如果增加此大小,休眠窗口中的分区不会附加到活动窗口。
关键字 window size 和 to 是可选的,不会更改命令。
- set dormant window size to number
- 对于滚动窗口容器,设置休眠窗口中的分区数:
- 0 = 缺省值。无大小限制。
- 正整数 = 休眠窗口中的最大分区数。如果减小此大小,将销毁超出休眠窗口大小的数量的休眠分区。
关键字 window size 和 to 是可选的,不会更改命令。
- set pool containerpool
- 将容器移入指定的容器池。
- set pool
- 将该容器从其容器池中除去。与 TSContainerSetPool 过程相同。
- set extent container first first_ext next next_ext
- 设置容器分区的第一个和下一个扩展数据块的大小(以 KB 为单位)。
- 关键字 first 和 next 是可选的,不会更改命令。
- set extent first first_ext next next_ext
- 为包含时间系列元素的分区设置第一个和下一个扩展数据块的大小(以 KB 为单位)。对于滚动窗口容器,更改活动和休眠窗口中现有分区的大小,并设置新分区的大小。
- 关键字 first 和 next 是可选的,不会更改命令。
- set wcontrol flag
- 一种标志,用于指示手动或自动分离活动分区时如何处理这些分区:
- 0 = 缺省值。不会自动销毁无法放入休眠窗口中的分区。如果活动和休眠窗口已满,那么只有在销毁某个休眠分区之后,才能添加分区。
- 1 = 将自动销毁无法放入休眠窗口中的分区。请谨慎使用此设置。销毁的数据无法恢复。
用法
对于所有容器,可以更改分区的容器池和扩展数据块大小。对于滚动窗口容器,还可以更改窗口大小,并附加、分离或销毁分区。
示例
以下示例基于滚动窗口容器 readings_container,该容器的时间间隔为 day,活动窗口大小为 5,休眠窗口大小为 10。时间系列元素使用 15 分钟日历,范围从 2012-01-01 00:00:00.00000
到 2012-01-10 23:45:00.00000。
分区按以下方式在活动窗口和休眠窗口之间分布:
- 位于活动窗口中的分区:
- P6:2012-01-06 的元素
- P7:2012-01-07 的元素
- P8:2012-01-08 的元素
- P9:2012-01-09 的元素
- P10:2012-01-10 的元素
- 位于休眠窗口中的分区:
- P1:2012-01-01 的元素
- P2:2012-01-02 的元素
- P3:2012-01-03 的元素
- P4:2012-01-04 的元素
- P5:2012-01-05 的元素
示例 1:分离分区
以下示例将分区从活动窗口移至休眠窗口:
execute function TSContainerManage(
"readings_container",
"detach active partitions before 2012-01-08")
以下消息描述结果:
分离成功:已移动 2 个分区
现在分区按以下方式在活动窗口和休眠窗口之间分布:
- 位于活动窗口中的分区:
- P8:2012-01-08 的元素
- P9:2012-01-09 的元素
- P10:2012-01-10 的元素
- 位于休眠窗口中的分区:
- P1:2012-01-01 的元素
- P2:2012-01-02 的元素
- P3:2012-01-03 的元素
- P4:2012-01-04 的元素
- P5:2012-01-05 的元素
- P6:2012-01-06 的元素
- P7:2012-01-07 的元素
分区 P6 和 P7 已移入休眠窗口。
示例 2:附加分区
以下示例将分区从休眠窗口移至活动窗口:
execute function TSContainerManage(
"readings_container",
"attach dormant partitions after 2012-01-06")
以下消息描述结果:
附加成功:已移动 1 个分区
现在分区按以下方式在活动窗口和休眠窗口之间分布:
- 位于活动窗口中的分区:
- P7:2012-01-07 的元素
- P8:2012-01-08 的元素
- P9:2012-01-09 的元素
- P10:2012-01-10 的元素
- 位于休眠窗口中的分区:
- P1:2012-01-01 的元素
- P2:2012-01-02 的元素
- P3:2012-01-03 的元素
- P4:2012-01-04 的元素
- P5:2012-01-05 的元素
- P6:2012-01-06 的元素
分区 P7 已移入活动窗口。
示例 3:增加活动窗口大小
以下示例将活动窗口大小增加到 10:
execute function TSContainerManage(
"readings_container",
"set active window size to 10");
以下消息描述结果:
设置活动窗口大小成功:已移动 0 个分区
虽然活动窗口大小更大,但休眠窗口中的分区并未移回活动窗口。
示例 4:销毁分区
以下示例销毁休眠窗口中的分区:
execute function TSContainerManage(
"readings_container",
"destroy dormant partitions before 2012-01-08");
以下消息描述结果:
销毁成功:已销毁 6 个分区
现在分区按以下方式在活动窗口和休眠窗口之间分布:
- 位于活动窗口中的分区:
- P7:2012-01-07 的元素
- P8:2012-01-08 的元素
- P9:2012-01-09 的元素
- P10:2012-01-10 的元素
- 休眠窗口中无分区。
尽管某些活动分区早于 2012-01-08,但也不会销毁这些分区。