本文介紹SPL指令的詳細資料。
參數類型說明
SPL指令中的參數類型說明如下表所示。
參數類型 | 說明 |
Bool | 布爾型別參數。使用SPL時,該參數為切換參數。 |
Char | ASCII字元型別參數,需使用單引號('')包裹,例如 |
Integer | 整數型別參數。 |
String | 字串型別參數,需使用單引號('')包裹,例如 |
RegExp | RE2Regex型別參數,需使用單引號('')包裹,例如 文法定義,請參見Syntax。 |
JSONPath | JSON路徑型別參數,需使用單引號('')包裹,例如 文法定義,請參見JsonPath。 |
Field | 欄位名型別參數,例如 如果欄位名中包含字母、數字、底線以外的特殊字元,需使用雙引號("")包裹,例如 說明 關於欄位名稱大小寫敏感詳情,請參見通用參考。 |
FieldPattern | 欄位名和萬用字元組合或者欄位名型別參數。支援萬用字元號*,表示匹配0個或多個任一字元。需使用雙引號("")包裹,例如 說明 關於欄位名稱大小寫敏感詳情,請參見通用參考。 |
SPLExp | SPL運算式型別參數。 |
SQLExp | SQL運算式型別參數。 |
SPL指令列表
指令類別 | 指令名稱 | 說明 | 資料加工 | 寫入處理器 | 消費處理器 | 掃描模式(SCAN) | Logtail採集 |
控制指令 | 定義命名資料集,SPL資料集詳情請參見通用參考。 | √ | × | × | √ | × | |
欄位操作指令 | 保留與給定模式相匹配的欄位、同時可重新命名指定欄位。指令執行過程中,先完成所有欄位保留運算式的執行,再執行重新命名運算式。 | √ | √ | √ | √ | √ | |
移除與給定模式相匹配的欄位,原樣保留其他所有欄位。 | √ | √ | √ | √ | √ | ||
重新命名指定欄位,並保留其他所有欄位原樣。 | √ | √ | √ | √ | √ | ||
展開指定欄位的第一層JSON對象,產生多條結果。 | √ | × | √ | × | × | ||
結構化資料SQL計算指令 | 通過SQL運算式計算結果產生新欄位。支援的SQL函數列表,請參見SPL支援的SQL函數列表。 | √ | √ | √ | √ | √ | |
根據SQL運算式過濾資料,保留滿足SQL運算式的資料條目。where指令支援的SQL函數列表,請參見SPL支援的SQL函數列表。 | √ | √ | √ | √ | √ | ||
弱結構化資料提取指令 | 提取指定欄位中的Regex分組匹配資訊。 | √ | √ | √ | √ | √ | |
提取指定欄位中的CSV格式的資訊。 | √ | √ | √ | √ | √ | ||
提取指定欄位中的第一層JSON資訊。 | √ | √ | √ | √ | √ | ||
提取指定欄位中的索引值對資訊。 | √ | √ | √ | √ | √ | ||
資料加工(新版)指令 | 將日誌欄位進行打包,以JSON序列化輸出到新欄位,適用於需要結構化傳輸的情境(如API請求體構建)。 | √ | × | √ | √ | × | |
將日誌格式轉化為時序儲存的格式。 | √ | × | × | × | × | ||
對已有時序資料進一步加工(如添加/修改/刪除標籤)。 | √ | × | × | × | × | ||
彙總指令 | 用於統計分析日誌的指令,類似 SQL 中的彙總函式(如 | × | × | × | √ | × | |
對查詢結果進行排序,支援對欄位值或統計結果進行升序( | × | × | × | √ | × | ||
用於限制查詢結果返回的日誌行數,是控制資料量的核心指令之一。通過 | × | × | × | √ | × |
函數概覽
SPL指令支援使用大多數SQL函數,但具體函數的可用性及適用情境需參考相應的函數文檔。
分類 | 說明 | 常用函數 |
對目標資料集進行匯總計算,產生單一統計結果。 | ||
處理文本資料,包括尋找、替換、截取、拼接、格式化等。 | ||
對日誌中的日期和時間進行格式轉換,分組彙總等處理。 | ||
處理 JSON 對象,包括提取、轉換和統計。 | ||
模式比對與文本處理。 | ||
計算時間序列資料的相對變化。 | ||
對數組進行增刪改查、遍曆和轉換。 | ||
操作索引值對。 | ||
數值計算、取整、隨機數、三角函數等。 | ||
資料分布分析與數值計算。 | ||
處理資料類型間的轉換。 | ||
基於資料視窗的彙總或排序。 | ||
處理 IP 位址的解析與計算。 | ||
解析 URL 結構。 | ||
基於資料預測或填充缺失值。 | ||
處理二進位類型的資料。 | ||
直接操作二進位位。 | ||
處理空間幾何體。 | ||
地理位置分析與地圖計算。 | ||
顏色表示與轉換。 | ||
對巨量資料集進行統計處理,犧牲精度以節省記憶體。 | ||
判斷參數的大小關係,適用於任意可比較的資料類型(double、bigint、varchar、timestamp和date)。 | ||
組合多個布爾條件,控制邏輯流程。 | ||
換算資料量或時間間隔的單位。 | ||
分析使用者行為、APP流量、產品目標轉化等資料。 | ||
在SQL分析語句和SPL語句中定義Lambda運算式,並將該運算式傳遞給指定函數,豐富函數的表達。 | ||
基於條件分支返回不同值。 |