平滑函數是針對輸入的時序曲線進行平滑和簡單的濾波操作,濾波操作通常是發現時序曲線形態的第一步。
函數列表
函數 | 說明 |
| 默認平滑函數,使用Holt-Winters算法對時序數據進行濾波操作。 |
| 使用FIR濾波器對時序數據進行濾波操作。 |
| 使用IIR濾波器對時序數據進行濾波操作。 |
ts_smooth_simple
函數格式:
select ts_smooth_simple(x, y)
參數說明:
參數
說明
取值
x
時間列,順序為從小到大。
Unixtime時間戳,單位為秒。
y
數值列,對應某時刻的數據。
-
示例
查詢分析語句:
* | select ts_smooth_simple(stamp, value) from ( select '("__time__" - ("__time__" % 120))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
輸出結果:
顯示項:
顯示項
說明
橫軸
unixtime
數據的時間戳,單位為秒。
縱軸
src
濾波前的數據。
filter
濾波后的數據。
ts_smooth_fir
函數格式:
若您無法確定濾波參數,請使用內置窗口的參數進行濾波操作。
select ts_smooth_fir(x, y,winType,winSize)
若您可以確定濾波參數,可以根據需求自定義設置濾波參數。
select ts_smooth_fir(x, y,array[])
參數說明:
參數
說明
取值
x
時間列,從小到大排列。
格式為Unixtime時間戳,單位為秒。
y
數值列,對應某時刻的數據。
-
winType
濾波的窗口類型。
取值包括:
rectangle:矩形窗口。
hanning:漢寧窗。
hamming:漢明窗。
blackman:布萊克曼窗。
說明推薦您選擇rectangle類型以獲得更好的顯示效果。
winSize
濾波窗口的長度。
long類型,取值范圍為2~15。
array[]
FIR濾波的具體參數。
格式為數組,且數組中元素的和為1。例如array[0.2, 0.4, 0.3, 0.1]。
示例1
查詢分析語句:
* | select ts_smooth_fir(stamp, value, 'rectangle', 4) from ( select '("__time__" - ("__time__" % 120))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
輸出結果:
示例2
查詢分析語句:
* | select ts_smooth_fir(stamp, value, array[0.2, 0.4, 0.3, 0.1]) from ( select '("__time__" - ("__time__" % 120))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
輸出結果:
顯示項:
顯示項
說明
橫軸
unixtime
數據的Unixtime時間戳,單位為秒。
縱軸
src
濾波前的數據。
filter
濾波后的數據。
ts_smooth_iir
函數格式:
select ts_smooth_iir(x, y, array[], array[] )
參數說明:
參數
說明
取值
x
時間列,從小到大排列。
格式為Unixtime時間戳,單位為秒。
y
數值列,對應某時刻的數據。
-
array[]
IIR濾波算法中關于x i的具體參數。
數組格式,長度(length)的取值范圍為2~15,且數組中元素的和為1。例如array[0.2, 0.4, 0.3, 0.1]。
array[]
IIR濾波算法中關于y i?1的具體參數。
數組格式,長度(length)的取值范圍為2~15,且數組中元素的和為1。例如array[0.2, 0.4, 0.3, 0.1]。
示例
查詢分析語句:
* | select ts_smooth_iir(stamp, value, array[0.2, 0.4, 0.3, 0.1], array[0.4, 0.3, 0.3]) from ( select '("__time__" - ("__time__" % 120))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
輸出結果:
顯示項:
顯示項
說明
橫軸
unixtime
數據的Unixtime時間戳,單位為秒。
縱軸
src
濾波前的數據。
filter
濾波后的數據。