This topic describes multiperiod estimation functions that you can use to estimate the periodicity of time series data distributed in different time intervals. This topic also describes how to extract the periodicity by using a series of operations such as Fourier transform (FT).
Function list
Function  Description 

ts_period_detect  Estimates the periodicity of time series data distributed in different time intervals. 
ts_period_classify  Uses FT to calculate the periodicity of specified time series curves. This function can be used to identify periodic curves. 
ts_period_detect
select ts_period_detect(x,y,minPeriod,maxPeriod)
Parameter  Description  Value 

x  The time sequence. Points in time are sorted in ascending order along the horizontal axis.  Each point in time is a UNIX timestamp. Unit: seconds. 
y  The sequence of numeric data at a specific point in time.  None. 
minPeriod  The ratio of the minimum length of a time series data within a period to the total length of the time series data. The ratio is estimated based on your time series curve.  The parameter value must be a decimal number. Valid values: (0.0, 1.0]. 
maxPeriod  The ratio of the maximum length of a time series within a period to the total length
of the time series data. The ratio is estimated based on your time series curve.
Notice The value of the maxPeriod parameter must be greater than that of the minPeriod parameter. The value must be less than 0.5. If you set the maxPeriod parameter to a value greater than 0.5, the system automatically changes the value
to 0.5.

The parameter value must be a decimal number. Valid values: (0.0, 1.0]. 
 The following query statement is executed:
*  select ts_period_detect(stamp, value, 0.2, 0.5) from ( select __time__  __time__ % 120 as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
 Output result
The output result is of the array type. The result contains UNIX timestamps, statistical values (such as average traffic), and status codes. Each red circle in the following figure represents a status code whose value is 1.0. The following figure shows the output result.
Each shaded part between two consecutive red circles in the following figure represents a period. The curve of each period tends to be the same.
ts_period_classify
select ts_period_classify(stamp,value,instanceName)
Parameter  Description  Value 

stamp  The time sequence. Points in time are sorted in ascending order along the horizontal axis.  Each point in time is a UINX timestamp. Unit: seconds. 
value  The sequence of numeric data at a specific point in time.  None. 
instanceName  The name of the time series curve.  None. 
 The following query statement is executed:
* and h : nu2h05202.nu8  select ts_period_classify(stamp, value, name) from log
 Response
Display item  Description 

line_name  The name of the time series curve. 
prob  The ratio of the number of values within the primary period to the total number of values on the time series curve. Valid values: [0, 1]. You can set the value to 0.15 for testing. 
type  The type of the time series curve. Valid values: 1, 2, and 0.
