本文主要介紹結構化資料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