TSContainerCreate 过程创建用于为指定的 TimeSeries 子类型存储时间系列数据的容器。可以在一个数据库空间中创建容器,创建跨多个分区的容器,或创建滚动窗口容器,以用于控制存储的数据量。
仅具有 TSContainerTable 表的更新特权的用户可以运行此过程。
只有具有对 TSContainerTable 表和 TSContainerWindowTable 的更新特权的用户才能运行此过程。
滚动窗口容器是一种特殊类型的容器,需要更多参数。 请参阅 滚动窗口容器的语法。使用滚动窗口容器语法可创建跨多个分区的容器。
TSContainerCreate(container_name varchar(18,1)varchar(128,1), dbspace_name varchar(128,1), ts_type varchar(18,1)varchar(128,1), container_size integer, container_grow integer);
缺省情况下,当将数据插入到时间系列时,会根据需要自动创建容器。然而,您可以通过使用 TSContainerCreate 过程来创建更多容器。
执行 TSContainerCreate 过程后,数据库服务器会在第一个时间系列插入到容器时创建该容器。您可以在相同数据库空间中创建多个容器。
创建容器时,将在 TSContainerTable 表中插入一行。
execute procedure TSContainerCreate('new_cont', 'rootdbs','stock_bar', 0, 0);
TSContainerCreate(container_name varchar(128,1),
dbspace_name varchar(128,1),
ts_type varchar(128,1),
container_size integer,
container_grow integer,
window_origin datetime year to fraction(5));
TSContainerCreate(container_name varchar(128,1),
dbspace_name varchar(128,1),
ts_type varchar(128,1),
container_size integer,
container_grow integer,
window_origin datetime year to fraction(5),
window_interval lvarchar default 'month',
active_windowsize integer default 0,
dormant_windowsize integer default 0,
window_spaces lvarchar(4096) default null,
window_control integer default 0,
rwi_firstextsize integer default 16,
rwi_nextextsize integer default 16);
滚动窗口容器用于存储有关窗口属性的信息以及有关分区的信息。分区用于存储特定日期范围的时间系列数据。TSContainerCreate 过程完成时,将创建滚动窗口容器。分区在插入时间系列元素时根据需要创建。
要创建滚动窗口容器以在多个数据库空间中存储数据并自动删除旧数据,请将以下参数设置为非缺省值:
如果对活动窗口使用缺省大小 0,那么创建的容器将增长至您手动将分区分离到休眠窗口并手动销毁休眠窗口中的分区为止。
容器分区以及活动和休眠窗口中的分区需要的存储空间量可能差别很大。请仔细规划滚动窗口容器的存储量。
创建滚动窗口容器时,将在 TSContainerTable 和 TSContainerWindowTable 表中插入一行。为时间系列数据添加分区后,将向 TSContainerUsageActiveWindowVTI 和 TSContainerUsageDormantWindowVTI 表添加行。
execute procedure TSContainerCreate('readings_container',
'containerdbs', 'rt_raw_intvl', 25600, 12800,
'2011-01-01 00:00:00.00000'::datetime year to fraction(5),
'month', 4, 10, 'dbs0, dbs1, dbs2, dbs3, dbs4', 1, 16, 8);
本示例配置具有以下属性的滚动窗口容器:
以下示例创建的容器用于在多个数据库空间中存储数据,但不使用清除策略:
execute procedure TSContainerCreate('readings_container',
'containerdbs', 'rt_raw_intvl', 25600, 12800,
'2011-01-01 00:00:00.00000'::datetime year to fraction(5),
'month', 0, 0, 'dbs0, dbs1, dbs2, dbs3, dbs4', 0, 16, 8);
本示例配置具有以下属性的容器:
容器在分区的五个数据库空间之一的分区中存储每个月的数据。由于活动窗口的大小不限,因此所有分区在将其手动分离并销毁之前都处于活动状态。