全部產品
Search
文件中心

Simple Log Service:SQL分析文法與功能

更新時間:Dec 13, 2024

Simple Log ServiceProject支援使用SQL語句對查詢結果進行分析。本文介紹SQL分析語句基礎文法。

基礎文法

查詢語句和分析語句以|分割。其格式為:

查詢語句|分析語句

查詢語句可單獨使用,分析語句必須與查詢語句一起使用。即分析功能是基於查詢結果或全量資料進行的。

重要
  • 查詢語句中建議不超過30個條件。

  • 分析語句中不寫FROM子句和WHERE子句時,預設分析當前Logstore中的資料。分析語句不支援使用offset,不區分大小寫,末尾無需加分號。

語句類型

說明

查詢語句

查詢條件,可以為關鍵詞、數值、數值範圍、空格、星號(*)等。

如果為空白格或星號(*),表示無過濾條件。

分析語句

對查詢結果或全量資料進行計算和統計。Log Service支援的分析函數和文法,請參見:

SQL分析語句樣本:

* | SELECT status, count(*) AS PV GROUP BY status

SQL函數

SQL函數通常嵌入在SQL子句中,用於在查詢過程中對資料進行計算或轉換。例如,在SELECT子句中使用彙總函式或字串函數。

使用情境

  • SQL函數通常用於對資料進行計算、轉換和格式化。例如,計算總和、平均值、字串操作、日期處理等。

樣本

  • 查詢昨天的日誌。

    * |
    SELECT
      *
    FROM  log
    WHERE
      __time__ < to_unixtime(current_date)
      AND __time__ > to_unixtime(date_add('day', -1, current_date))
  • 計算Results欄位值中JSON元素的數量。

    • 欄位範例

      Results:[{"EndTime":1626314920},{"FireResult":2}]
    • 查詢和分析語句

      * | SELECT json_array_length(Results)

SQL子句

SQL子句構成了SQL語句的結構化架構,而SQL函數則用於在這些子句中進行具體的資料操作。

使用情境

  • SQL子句用於構建完整的SQL查詢或資料動作陳述式,決定資料的來源、條件、分組、排序等。

樣本

  • 判斷Logstore讀寫資料的延時是否大於1000。如果存在1000的延時,則返回消費組資訊。

    * |
    SELECT
      consumer_group
    FROM  "internal-diagnostic_log"
    WHERE
      EXISTS (
        SELECT
         Latency
        FROM     internal-operation_log
        WHERE
          "internal-diagnostic_log".LogStore = "internal-operation_log".logstore and latency >1000
      )
  • 返回計算結果中的前200行。

    * | SELECT request_time LIMIT 200