本文主要介紹結構化資料SQL計算指令的用法和樣本。
extend
通過SQL運算式計算結果產生新欄位。支援的SQL函數列表,請參見SPL支援的SQL函數列表。
文法
| extend <output>=<sql-expr>, ...參數說明
參數 | 類型 | 必填 | 說明 |
output | Field | 是 | 添加的目標欄位名稱。不支援多個運算式結果輸出至相同的目標欄位。 重要 如果目標欄位與輸入資料中欄位重名,則直接使用新的類型以及值將其覆蓋。 |
sql-expr | SQLExpr | 是 | 資料處理運算式。 重要 關於null值處理,請參見SPL運算式null值處理。 |
樣本
樣本1:使用計算運算式。
* | extend Duration = EndTime - StartTime樣本2:使用Regex。
* | extend server_protocol_version=regexp_extract(server_protocol, '\d+')樣本3:提取JSON路徑內容,並轉換部分欄位的資料類型。
SPL語句
* | extend a=json_extract(content, '$.body.a'), b=json_extract(content, '$.body.b') | extend b=cast(b as BIGINT)輸入資料
content: '{"body": {"a": 1, "b": 2}}'輸出結果
content: '{"body": {"a": 1, "b": 2}}' a: '1' b: 2
where
根據SQL運算式過濾資料,保留滿足SQL運算式的資料條目。where指令支援的SQL函數列表,參見SPL支援的SQL函數列表。
文法
| where <sql-expr>參數說明
參數 | 類型 | 必填 | 說明 |
sql-expr | SQLExp | 是 | SQL運算式,保留滿足此運算式的資料條目。 重要 SQL運算式中null值處理,請參見SPL運算式null值處理。 |
樣本
樣本1:根據欄位內容過濾資料條目。
* | where userId='123'樣本2:使用匹配欄位名的Regex過濾資料條目。
* | where regexp_like(server_protocol, '\d+')樣本3:轉換資料類型後,匹配所有服務端錯誤資料。
* | where cast(status as BIGINT) >= 500
SPL支援的SQL函數列表
分類 | 說明 | 常用函數 |
對目標資料集進行匯總計算,產生單一統計結果。 | ||
處理文本資料,包括尋找、替換、截取、拼接、格式化等。 | ||
對日誌中的日期和時間進行格式轉換,分組彙總等處理。 | ||
處理 JSON 對象,包括提取、轉換和統計。 | ||
模式比對與文本處理。 | ||
計算時間序列資料的相對變化。 | ||
對數組進行增刪改查、遍曆和轉換。 | ||
操作索引值對。 | ||
數值計算、取整、隨機數、三角函數等。 | ||
資料分布分析與數值計算。 | ||
處理資料類型間的轉換。 | ||
基於資料視窗的彙總或排序。 | ||
處理 IP 位址的解析與計算。 | ||
解析 URL 結構。 | ||
基於資料預測或填充缺失值。 | ||
處理二進位類型的資料。 | ||
直接操作二進位位。 | ||
處理空間幾何體。 | ||
地理位置分析與地圖計算。 | ||
顏色表示與轉換。 | ||
對巨量資料集進行統計處理,犧牲精度以節省記憶體。 | ||
判斷參數的大小關係,適用於任意可比較的資料類型(double、bigint、varchar、timestamp和date)。 | ||
組合多個布爾條件,控制邏輯流程。 | ||
換算資料量或時間間隔的單位。 | ||
分析使用者行為、APP流量、產品目標轉化等資料。 | ||
在SQL分析語句和SPL語句中定義Lambda運算式,並將該運算式傳遞給指定函數,豐富函數的表達。 | ||
基於條件分支返回不同值。 |