Example: Accelerating time series data

Use this step-by-step example as a guide to accelerate Informix® time series data by using Informix® Warehouse Accelerator.

The SQL statements that are used in this example are run in the DB-Access utility, and are preceded by >. Commands that are run from the shell are preceded by $.

This example uses the stores_demo database that is created by the command dbaccessdemo. To create the stores_demo database, run the following command:
$ dbaccessdemo stores_demo -log
The workload in this example consists of the following two queries:
select min(tstamp), max(tstamp) from ts_data_v;
select first 3 state,avg(value) average
  from ts_data_v v, Customer_ts_data l, customer c
  where v.loc_esi_id = l.loc_esi_id and l.customer_num = c.customer_num
  group by 1 order by 2 desc;

The first query selects the minimum and maximum time stamp from the ts_data_v table. The second query selects the top three states and the average of the 'value' column.

Step 1: Connect to database stores_demo

$ dbaccess - -
> database stores_demo;
Database selected.

Step 2: Run and analyze workload on Informix®

> set environment use_dwa 'probe cleanup';
Environment set.
> set environment use_dwa 'probe start';
Environment set.
> select min(tstamp), max(tstamp) from ts_data_v;
(min)                     (max)                     
2012-11-10 00:00:00.00000 2011-02-07 23:45:00.00000
1 row(s) retrieved.
> select first 3 state,avg(value) average
  from ts_data_v v, Customer_ts_data l, customer c
  where v.loc_esi_id = l.loc_esi_id and l.customer_num = c.customer_num
  group by 1 order by 2 desc;
state          average 
DE    0.70850671296296
NY    0.47548564814815
FL    0.42491203703704
3 row(s) retrieved.
> set environment use_dwa 'probe stop';
Environment set.

Step 3: Convert results of workload analysis to data mart definition, create and load the data mart

> execute procedure ifx_probe2Mart('stores_demo','demo_mart');
Routine executed.
> execute function ifx_createMart('demo_dwa','demo_mart');
(expression)  The operation was completed successfully. 
1 row(s) retrieved.
> execute function ifx_loadMart('demo_dwa','demo_mart','NONE');
(expression)   The operation was completed successfully. 
1 row(s) retrieved.

Step 4: Run workload on Informix® Warehouse Accelerator

> set environment use_dwa 'accelerate on';
Environment set.
> select min(tstamp), max(tstamp) from ts_data_v;
(min)                     (max)                     
2012-11-10 00:00:00.00000 2011-02-07 23:45:00.00000
1 row(s) retrieved.
> select first 3 state,avg(value) average
  from ts_data_v v, Customer_ts_data l, customer c
  where v.loc_esi_id = l.loc_esi_id and l.customer_num = c.customer_num
  group by 1 order by 2 desc;
state          average 
DE    0.70850671296296
NY    0.47548564814814
FL    0.42491203703704
3 row(s) retrieved.

Step 5: Drop the data mart

> execute function ifx_dropMart('demo_dwa','demo_mart');
(expression)   The operation was completed successfully. 
1 row(s) retrieved.

Step 6: Create the data mart again

> execute function ifx_createMart('demo_dwa','demo_mart');
(expression)  The operation was completed successfully. 
1 row(s) retrieved.

Step 7: Assign calendar 'ts_1month' to table 'ts_data_v'

> execute function ifx_TSDW_setCalendar(
  'demo_dwa','demo_mart','informix','ts_data_v','ts_1month');
(expression)  The operation was completed successfully. 
1 row(s) retrieved.

Step 8: Create time window for January 2011

> execute function ifx_TSDW_createWindow(
  'demo_dwa','demo_mart','informix','ts_data_v',
  '2011-01'::datetime year to month, '2011-02'::datetime year to month);
(expression)  The operation was completed successfully. 
1 row(s) retrieved.

Step 9: Load the data mart

> execute function ifx_loadMart('demo_dwa','demo_mart','NONE');
(expression)   The operation was completed successfully. 
1 row(s) retrieved.

Step 10: Run workload on Informix® Warehouse Accelerator

> select min(tstamp), max(tstamp) from ts_data_v;
(min)                     (max)                     
2011-01-01 00:00:00.00000 2011-01-31 23:45:00.00000
1 row(s) retrieved.
> select first 3 state,avg(value) average
  from ts_data_v v, Customer_ts_data l, customer c
  where v.loc_esi_id = l.loc_esi_id and l.customer_num = c.customer_num
  group by 1 order by 2 desc;
state          average 
DE    1.36793313172043
NY    0.51537264784946
OK    0.51153326612903
3 row(s) retrieved.

Step 11: Move time window forward one month from January to February

> execute function ifx_TSDW_moveWindows(
  'demo_dwa','demo_mart','informix','ts_data_v');
(expression)  The operation was completed successfully. 
1 row(s) retrieved.

Step 12: Run workload on Informix® Warehouse Accelerator

> select min(tstamp), max(tstamp) from ts_data_v;
(min)                     (max)                     
2011-02-01 00:00:00.00000 2011-02-07 23:45:00.00000
1 row(s) retrieved.
> select first 3 state,avg(value) average
  from ts_data_v v, Customer_ts_data l, customer c
  where v.loc_esi_id = l.loc_esi_id and l.customer_num = c.customer_num
  group by 1 order by 2 desc;
state          average 
MA    0.92973660714286
NY    0.46185416666667
NJ    0.38778348214286
3 row(s) retrieved.

Step 13: Add a new measurement reading for a customer in NY

> insert into ts_data_v(loc_esi_id,measure_unit,direction,tstamp,value) values
  ('4727354321757220','KWH','P',
   '2011-02-08 00:15'::datetime year to minute, 500);
1 row(s) inserted.

Step 14: Update the virtual partition of February 2011

> execute function ifx_TSDW_updatePartition(
  'demo_dwa','demo_mart','informix','ts_data_v',
  '2011-02'::datetime year to month);
(expression)  The operation was completed successfully. 
1 row(s) retrieved.

Step 15: Run workload on Informix® Warehouse Accelerator

> select min(tstamp), max(tstamp) from ts_data_v;
(min)                     (max)                     
2011-02-01 00:00:00.00000 2011-02-08 00:15:00.00000
1 row(s) retrieved.
> select first 3 state,avg(value) average
  from ts_data_v v, Customer_ts_data l, customer c
  where v.loc_esi_id = l.loc_esi_id and l.customer_num = c.customer_num
  group by 1 order by 2 desc;
state          average 
NY    1.20410995542348
MA    0.92973660714286
NJ    0.38778348214286
3 row(s) retrieved.

Step 16: Remove time window for February 2011

> execute function ifx_TSDW_dropWindow(
  'demo_dwa','demo_mart','informix','ts_data_v',
  '2011-02'::datetime year to month);
(expression)  The operation was completed successfully. 
1 row(s) retrieved.

Step 17: Run workload on Informix® Warehouse Accelerator

> select min(tstamp), max(tstamp) from ts_data_v;
(min)                     (max)                     
                                                   
1 row(s) retrieved.
> select first 3 state,avg(value) average
  from ts_data_v v, Customer_ts_data l, customer c
  where v.loc_esi_id = l.loc_esi_id and l.customer_num = c.customer_num
  group by 1 order by 2 desc;
state          average 
No rows found.

Step 18: Drop the data mart

> execute function ifx_dropMart('demo_dwa','demo_mart');
(expression)   The operation was completed successfully. 
1 row(s) retrieved.
Database closed.