在Logstore中存在很多時序資料,Log Service支援通過時序SPL指令和SPL函數處理Logstore中的時序資料。
什麼是Series
Series是由時間維度序列和指標維度序列組成的二維資料結構,適用於表達隨時間變化的觀測值集合。和Series相對應的是Table資料。
與Table模型的對比
對比維度 | Table模型 | Series模型 |
對比維度 | Table模型 | Series模型 |
資料群組織方式 | 離散時間點記錄(行式儲存) | 連續時間序列(列式儲存) |
查詢模式 | 基於離散點的彙總計算 | 支援滑動視窗等時序運算 |
儲存效率 | 適合低頻離散事件 | 最佳化高頻連續指標儲存 |
樣本
以Nginx訪問日誌分析為例,計算URI維度分鐘級平均回應時間。
Table模型
*
| extend ts = to_unixtime(date_trunc('hour',date_parse(time_local, '%d/%b/%Y:%H:%i:%s')))
| stats avg_latency = avg(cast(upstream_response_time as double)) by ts,request_uri
離散時間點彙總結果樣本:
Series模型實現
*
| stats avg_latency=avg(cast(upstream_response_time as double)) by time_local, request_uri
| make-series avg_latency default = 'last'
on time_local
from 'sls_begin_time' to 'sls_end_time'
step '1m'
by request_uri
連續時間序列可視化樣本:
SPL指令
SPL指令用於將Table資料轉換為Series資料。
指令名稱 | 說明 |
指令名稱 | 說明 |
用於計算資料集的統計資訊,支援按分組欄位彙總。 | |
將Table資料構建成Series資料。 | |
將SPL查詢結果渲染為圖表以實現可視化。 |
SPL函數
通過make-series處理資料得到serie後,可調用SPL函數進行可視化。
函數名稱 | 說明 |
函數名稱 | 說明 |
時間轉換函式:將秒級時間戳記轉為納秒級,適用於高精度情境。 | |
時間序列預測函數:基於歷史資料預測未來趨勢,適用於監控、分析和規劃。 | |
異常檢測函數:基於機器學習演算法,識別時間序列中的異常點或異常模式,適用於監控、警示和資料分析等情境。 | |
時間序列分解與異常檢測函數:基於時間序列分解演算法,將未經處理資料拆分為趨勢性、季節性和殘差分量,並通過統計方法分析殘差分量以識別異常點,適用於即時監控、根因分析及資料品質檢測等情境。 |