全部產品
Search
文件中心

Simple Log Service:掃描(Scan)查詢概述

更新時間:Jun 30, 2024

Log Service掃描(Scan)查詢功能支援免配置索引進行目標欄位的掃描,用於查詢相關日誌,並且支援通過SPL語句對查詢結果進行進一步的過濾、轉換、解析等操作。本文介紹掃描查詢功能的相關資訊。

背景資訊

Log Service基於索引技術,提供快速查詢日誌功能,但在某些情境下可能會遇到如下限制,無法建立或使用索引。

  • 為降低使用費用,而未對某些欄位建立索引,但臨時急需查詢歷史日誌。

  • 欄位值長度超過了索引限制,超出部分無法被查詢。

  • 欄位名較多,事先無法擷取具體的欄位名,無法建立欄位索引。

  • 欄位類型發生變化,無法查詢。

針對上述問題,Log Service推出掃描查詢和掃描分析功能,用於查詢和分析日誌,無需對掃描的目標欄位建立索引。關於掃描分析的更多資訊,請參見掃描(Scan)分析概述

說明

掃描查詢模式支援SPL(SLS Processing Language,更多資訊請參見SPL概述)。對於讀取出的未經處理資料,可以通過SPL語句做結構化資訊提取、欄位操作、資料過濾等操作,並支援多級管道級聯,最終輸出經過SPL處理後的結果資料。

優點

  • 節省費用:無需建立索引,節省索引流量和儲存空間費用。

  • 靈活:在使用時按需定義列的類型,不受是否建立索引及索引類型限制。

  • 搜尋能力增強,新支援多種函數。

使用限制

  1. 掃描模式下執行SPL,運行時相關限制請參考使用限制

  2. 不支援隨機翻頁。

工作流程

Log Service接收到掃描請求後,執行流程主要分為如下兩步。

  1. 先執行對應的查詢語句進行日誌查詢。

    重要

    第一級管道的查詢語句依賴於索引查詢,無需索引過濾時可以寫 *。例如執行status:200 | WHERE userId = '123' | extend host=upper(hostname)語句前,您需為status欄位建立索引,但無需為userId欄位和hostname欄位建立索引。

  2. 上述索引查詢結果的日誌,經過SPL語句處理(過濾、轉換、解析等操作),處理後的結果作為最終的查詢結果。

基本文法

  • 基本文法

    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指令1 | SPL指令2 | ...

是否需要配置索引

需要。

不需要。

重要

第一級豎線(|)前的索引查詢語句仍依賴於索引。

是否支援搭配分析語句

支援。

支援。

是否支援隨機翻頁

支援。

不支援。

只能連續翻頁(前翻或後翻)。

日誌長條圖

基於查詢語句的查詢結果進行展示。

基於查詢語句的查詢結果、掃描進度進行展示。

運算子與函數

支援邏輯、數學運算;支援模糊查詢;不支援SQL函數。

參考SPL指令SPL支援的SQL函數列表

欄位類型

由索引配置中的資料類型決定。更多資訊,請參見資料類型

無論欄位是否已配置索引,在掃描模式下 SP語句中出現的欄位均按照text類型處理。詳情請參考資料類型轉換

結果集大小

通過控制台或SDK指定,最大100條。

滿足下述任一條件,本次掃描結束並返回掃描結果。

  • 達到您所指定的結果條數。

    您可以控制台或SDK指定返回的結果條數。

  • 掃描超過了單次系統設定的最大條數(基於查詢語句的結果集,預設10萬條。)

  • 掃描執行時間超過45秒。

費用

索引流量和索引儲存費用。更多資訊,請參見按使用功能計費模式計費項目

掃描部分按照流量收費,即基於索引查詢後掃描命中的資料量收費。