當您需要對日誌資料進行結構化資訊提取、欄位操作和資料過濾時,可以通過使用SPL語言(SLS Processing Language)來解決這些問題。另外,Log Service還提供多級管道級聯功能,以便輸出經過SPL處理的結果資料。
背景資訊
當SPL查詢涉及到的欄位都有欄位索引(並開啟統計)的時候,SPL會按照索引模式執行查詢分析。如果SPL涉及的欄位沒有索引,會按照掃描(Scan)模式查詢和分析。更多資訊,請參見掃描(Scan)查詢概述。
支援地區
在其他地區,無論SPL語句中欄位是否有索引,都會直接按照掃描模式執行。
華東6(福州-本地地區)、印尼(雅加達)。
基本文法
基本文法
SPL指令的文法參考 SPL指令。
索引查詢語句 | <spl-cmd> ... | <spl-cmd> ...
使用樣本
按某個條件過濾原始日誌
status:200 | where host like '%www%'
計算出新的欄位,計算出的欄位也可以再次過濾。
status:200 | extend timediff = cast(endTime as bigint) - cast(beginTime as bigint) | where timediff > 100
將JSON欄位展開,丟棄原有的JSON欄位。
status:200 | parse-json body | project-away body
索引模式SPL與掃描模式SPL的對比
當SPL查詢涉及到的欄位都有欄位索引(並開啟統計)的時候,SPL會自動按照索引模式執行,否則按照掃描模式執行。
對比項 | 索引模式SPL | 掃描模式SPL |
是否需要配置索引 | 需要SPL中涉及到的欄位,開啟欄位索引並開啟統計。 | 不需要。 重要 第一級豎線(|)前的索引查詢語句仍依賴於索引。 |
效能 | 強 | 一般 |
是否支援隨機翻頁 | 支援。 | 不支援。 |
日誌長條圖 | 基於查詢語句的查詢結果進行展示。 | 基於查詢語句的查詢結果、掃描進度進行展示。 |
運算子與函數 | ||
欄位類型 | SPL語句中出現的欄位均按照text類型處理。詳情請參考資料類型轉換。 | SPL語句中出現的欄位均按照text類型處理。詳情請參考資料類型轉換。 |
結果集大小 | 通過控制台或SDK指定,最大100條。 | 滿足下述任一條件,本次掃描結束並返回掃描結果。
|
費用 | 索引流量和索引儲存費用。更多資訊,請參見按使用功能計費模式計費項目。 SPL執行本身不產生額外費用。 | 掃描部分按照流量收費,即基於索引查詢後掃描命中的資料量收費。 |
操作方式
在查詢日誌前,請確保您已採集到日誌和建立索引。索引是一種儲存結構,用於對日誌資料中的一列或多列進行排序。更多資訊,請參見建立索引。
控制台
登入Log Service控制台,在目標Logstore的查詢和分析頁面執行查詢操作。具體操作,請參見查詢和分析日誌。
樣本
原始日誌為1000萬條。查詢語句:Status:200 | where Category like '%xx%'
,滿足Status:200
且 where Category like '%xx%'
的日誌1000條。查詢結果介面中的長條圖(histogram)展示了這1000條符合整個SPL語句條件的日誌隨時間變化的分布情況。
API
通過GetLogs(返回結果不壓縮後傳輸)、GetLogsV2(返回結果壓縮後傳輸)介面執行查詢操作。