Configuring additional container pools
You can create a container pool to manage how time series data is inserted into multiple containers. You can insert data into containers in round-robin order or by using a user-defined method.
Before you begin
Procedure
- Create containers by running the TSContainerCreate procedure.
- Add each container to the container pool by using the TSContainerSetPool procedure.
- Insert data into the time series by including the TSContainerPoolRoundRobin function with the container pool name or by including your user-defined container pool policy function in the container argument.
Example
This example uses a TimeSeries subtype named smartmeter_row that is in a column named rawreadings, which is in a table named smartmeters. Suppose you want to store the data for the time series in three containers, in a container pool you created.
The following statements create three containers for the TimeSeries subtype smartmeter_row:
EXECUTE PROCEDURE TSContainerCreate
('ctn_sm0','tsspace0','smartmeter_row',0,0);
EXECUTE PROCEDURE TSContainerCreate
('ctn_sm1','tsspace1','smartmeter_row',0,0);
EXECUTE PROCEDURE TSContainerCreate
('ctn_sm2','tsspace2','smartmeter_row',0,0);
The following statements add the containers to a container pool named readings:
EXECUTE PROCEDURE TSContainerSetPool('ctn_sm0','readings');
EXECUTE PROCEDURE TSContainerSetPool('ctn_sm1','readings');
EXECUTE PROCEDURE TSContainerSetPool('ctn_sm2','readings');
The following statement inserts time series data into the column rawreadings. The TSContainerPoolRoundRobin function that specifies the container pool named readings is used instead of a container name in the container argument.
INSERT INTO smartmeters(meter_id,rawreadings)
VALUES('met00001','origin(2006-01-01 00:00:00.00000),
calendar(smartmeter),regular,threshold(0),
container(TSContainerPoolRoundRobin(readings)),
[(33070,-13.00,100.00,9.98e+34),
(19347,-4.00,100.00,1.007e+35),
(17782,-18.00,100.00,9.83e+34)]');
During the running of the INSERT statement, the TSContainerPoolRoundRobin function runs with the following values:
TSContainerPoolRoundRobin('smartmeters','rawreadings',
'smartmeter_row',0,'readings')
The TSContainerPoolRoundRobin function sorts the container names alphabetically, returns the container name ctn_sm0 to the INSERT statement, and the data is stored in the ctn_sm0 container. The TSContainerPoolRoundRobin function specifies to store the data from the next INSERT statement in the container named ctn_sm1 and the data from the third INSERT statement in the container named ctn_sm2. For the fourth INSERT statement, the TSContainerPoolRoundRobin function returns to the beginning of the container list and specifies to store the data in the container named ctn_sm0, and so on.