零基礎玩轉SLS日誌查詢-SLS Query Builder釋出
簡介:日誌服務(Log Service,簡稱 SLS) 是阿里雲提供的行業領先的日誌大資料解決方案,一站式提供資料收集、清洗、分析、視覺化、告警等功能。智慧查詢分析是資料中臺重要的一環,SLS支援秒級查詢10億到千億級別的日誌資料,為萬級開發者提供每日百億級的查詢服務。SLS查詢語句是日誌服務的專有語法,為了幫助使用者簡單、快速地構建查詢語句,降低使用者的學習成本,SLS推出了查詢輔助輸入(Query Builder)功能,讓使用者無需關注語法細節也可完成查詢。
背景
日誌服務(SLS)
智慧查詢分析是資料中臺重要的一環,SLS支援秒級查詢10億到千億級別的日誌資料,為萬級開發者提供每日百億級的查詢服務。SLS非常適合於做監控報表/告警/運營探索式互動分析,更可以通過API呼叫整合資料分析能力,整合到第三方的視覺化平臺,BI工具,或自研程式。
SLS查詢分析
SLS的日誌查詢分為兩部分:查詢語句和分析語句。查詢語句和分析語句以豎線(|)分割,查詢語句的語法為日誌服務專有語法,分析語句採用標準的SQL92語法。
查詢語句|分析語句
語句型別 |
說明 |
查詢語句 |
查詢語句用於指定日誌查詢時的過濾規則,返回符合條件的日誌。 查詢語句可以為關鍵詞、數值、數值範圍、空格、星號(*)等。 如果為空格或星號(*),表示無過濾條件。更多資訊,請參見 |
分析語句 |
分析語句用於對查詢結果或全量資料進行計算和統計。更多資訊,請參見 |
其中,查詢語句可單獨使用,分析語句必須與查詢語句一起使用。即分析功能是基於查詢結果或全量資料進行的。
示例:
// 僅查詢 status > 200 // 僅統計 * | SELECT status, count(*) AS PV GROUP BY status // 查詢 + 統計 status > 200 | SELECT status, count(*) AS PV GROUP BY status
Query Builder介紹
SLS查詢語句是日誌服務的專有語法,為了幫助使用者簡單、快速地構建查詢語句,降低使用者的學習成本,SLS推出了查詢輔助輸入(Query Builder)功能,讓使用者無需關注語法細節也可完成查詢。
(注:當前版本只支援查詢語句,SQL分析語句的輔助輸入功能SQL Builder將在後續版本推出,敬請期待)
1. 功能入口
登入
圖示,喚起Query Builder面板。隨後在配置查詢條件面板中,配置查詢條件即可。
2. 使用模式
- 簡潔模式
簡潔模式中的多個查詢條件是平鋪展示的,各個查詢條件之間為同級關係。
- 高階模式
高階模式中的多個查詢條件是換行展示的,各個查詢條件之間可設定層級關係,即對應於查詢語句中的括號運算子。使用者可以通過點選且、或兩側的<圖示或>圖示,定義各個查詢條件之間的層級關係。
- 雙向同步
為了最大程度的保證使用者使用的靈活性,Query Builder的查詢條件與使用者手動輸入的查詢語句是實時雙向同步的。使用者既可以通過Query Builder生成查詢語句,也可以在查詢框中修改生成的查詢語句。Query Builder會實時解析使用者手動輸入的查詢語句並同步到面板上。
3. 功能概述
3.1 查詢型別
- 全文查詢和欄位查詢
查詢方式 |
說明 |
示例 |
全文查詢 |
配置全文索引後,日誌服務根據使用者設定的分詞符將整條日誌拆分成多個詞。使用者可以指定關鍵字(欄位名、欄位值)和查詢規則進行查詢。 |
|
欄位查詢 |
配置欄位索引後,使用者可以指定欄位名稱和欄位值(Key:Value)進行查詢。根據欄位索引中設定的資料型別,使用者可以進行多種型別的基礎查詢和組合查詢。 |
- 精確查詢和模糊查詢
查詢方式 |
說明 |
示例 |
精確查詢 |
使用完整的詞進行查詢。 |
|
模糊查詢 |
使用萬用字元*或者?來進行模糊查詢,參考 |
3.2 邏輯連線符
邏輯連線符 |
說明 |
且 |
對應於查詢語法中的and運算子 |
或 |
對應於查詢語法中的or運算子 |
縮排 |
在高階模式下,您可以使用縮排設定各個查詢條件之間的層級關係。對應於( )運算子。 |
所有值 |
為一個欄位設定了多個查詢值時,會出現此邏輯連線符。對應於and運算子。 |
任意值 |
為一個欄位設定了多個查詢值時,會出現此邏輯連線符。對應於or運算子。 |
示例
3.3 運算子
Query Builder功能支援如下運算子。更多資訊,請參見
- 針對全文查詢,提供包含、不包含運算子。
- 針對text型別的欄位,提供包含、不包含、(欄位)存在、(欄位)不存在運算子。
- 針對long型別或double型別的欄位,提供=、!=、>、<、>=、<=、(欄位)存在、(欄位)不存在運算子。
4. 使用示例
示例1
- 查詢包含GET、PUT、POST中任意值的日誌
- 查詢同時包含GET、PUT、POST中的日誌
示例2
- 查詢user_agent欄位的值中包含Chrome的日誌
- 查詢slbid欄位的值以slb-開頭且client_ip欄位的值是在127.0.0.x範圍內的日誌
示例3
查詢請求時間小於1秒的成功請求的日誌中包含SLS字串的日誌
常見問題
簡潔模式和高階模式有什麼區別?
- 簡潔模式中的多個查詢條件是平鋪展示的,各個查詢條件之間為同級關係。
- 高階模式中的多個查詢條件是換行展示的,各個查詢條件之間可設定層級關係,即對應於查詢語句中的括號運算子。
是否支援構建SQL分析語句?
目前,Query Builder功能只支援構建查詢語句,不支援構建SQL分析語句。我們將在後續版本推出針對SQL分析語句的構建能力,敬請期待後續版本。
如果您在輸入框中輸入了SQL分析語句,Query Builder面板將消失且面板喚起按鈕被禁用。刪除SQL分析語句部分後,可重新開啟Query Builder面板。
更多Query Builder使用過程中的問題參考
寫在最後
SLS Query Builder可以幫助使用者簡單、快速地構建查詢語句,讓使用者無需關注語法細節也可完成查詢。正如前面提到,SLS的查詢分析能力由查詢語句和分析語句兩部分構成,分析語句能夠在秒級查詢的基礎上進行實時統計分析,適合於做監控報表/告警/運營探索式互動分析,更可以通過API呼叫整合資料分析能力,整合到第三方的視覺化平臺,BI工具,或自研程式。
相較於查詢語句,分析語句具有更強大的能力和更豐富的應用場景。SLS分析語句採用標準的SQL92語法,相較於查詢語法,使用門檻和學習成本更高,因此我們也將在不久的將來推出針對SQL分析語句的輔助輸入工具SQL Builder,敬請期待!
原文連結
本文為阿里雲原創內容,未經允許不得轉載。