簡介:日志服務(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,敬請期待!
原文鏈接
本文為阿里雲原創內容,未經允許不得轉載。