Kusto 查詢語言 (KQL) 概觀
適用於:✅Microsoft Fabric✅Azure 數據總管✅Azure 監視器✅Microsoft Sentinel
Kusto 查詢語言 (KQL) 是一個功能強大的工具,可用來探索您的數據並探索模式、識別異常和極端值、建立統計模型等等。 KQL 是一種簡單但功能強大的語言,可查詢結構化、半結構化和非結構化數據。 語言具有表達性、易於閱讀和瞭解查詢意圖,並已針對撰寫體驗進行優化。 Kusto 查詢語言最適合用於查詢遙測、計量和記錄,並深入支援文字搜尋和剖析、時間序列運算符和函式、分析和匯總、地理空間、向量相似度搜尋,以及許多其他語言建構,以提供最適合的數據分析語言。 此查詢會使用類似 SQL 的階層中組織的架構實體:資料庫、數據表和數據行。
本文提供查詢語言的說明,並提供實際練習,讓您開始撰寫查詢。 若要存取查詢環境,請使用 Azure 資料總管 Web UI。 若要瞭解如何使用 KQL,請參閱 教學課程:瞭解常見的運算子。
本文提供查詢語言的說明,並提供實際練習,讓您開始撰寫查詢。 若要存取查詢環境,請使用 KQL 查詢集。 若要瞭解如何使用 KQL,請參閱 教學課程:瞭解常見的運算子。
什麼是 Kusto 查詢?
Kusto 查詢是處理數據和傳回結果的唯讀要求。 要求會以純文本表示,其使用易於讀取、撰寫及自動化的數據流模型。 Kusto 查詢是由一或多個查詢語句所組成。
什麼是查詢語句?
使用者 查詢語句有三種:
- 表格式表達式語句
- let 語句
- set 語句
所有查詢語句都會以 ;
分隔(分號),而且只會影響手邊的查詢。
注意
如需應用程式查詢語句的相關信息,請參閱 應用程式查詢語句。
最常見的查詢語句類型是表格式表達式 語句,這表示其輸入和輸出是由數據表或表格式數據集所組成。 表格式語句包含零個或多個 運算子,每個運算元都是以表格式輸入開頭,並傳回表格式輸出。 運算子會依 |
(pipe) 排序。 數據流或管道會從一個運算符傳送至下一個運算符。 數據會在每個步驟進行篩選或操作,然後饋送至下列步驟。
就像漏鬥圖,您從整個數據表開始。 每次數據通過另一個運算符時,都會經過篩選、重新排列或摘要。 由於從一個運算符到另一個運算子的資訊管線是循序的,因此查詢運算符順序很重要,而且可能會影響結果和效能。 在漏鬥圖結尾處,您會留下一個精簡的輸出。
讓我們看看範例查詢。
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
計數 |
---|
28 |
注意
KQL 會區分大小寫的所有專案 – 資料表名稱、資料表數據行名稱、運算元、函式等等。
關鍵詞可以用括弧和引號括住它們來做為標識碼(['
和 ']
或 ["
和 "]
)。 例如,['where']
。 如需詳細資訊,請參閱 標識符命名規則
此查詢具有單一表格式表達式語句。 語句的開頭是一個稱為 stormEvents 之數據表的參考,並包含數個運算符,where
和 count
,每一個以管道分隔。 源數據表的數據列會依 StartTime 數據行的值進行篩選,然後依 [State] 數據行的值進行篩選。 在最後一行中,查詢會傳回含有單一數據行的數據表,以及包含其餘數據列計數的單一數據列。
若要嘗試更多 Kusto 查詢,請參閱 教學課程:撰寫 Kusto 查詢。
管理命令
相較於 Kusto 查詢,Management 命令 是 Kusto 處理或修改資料或元數據的要求。 例如,下列管理命令會建立具有兩個數據行的新 Kusto 數據表,Level
和 Text
:
.create table Logs (Level:string, Text:string)
管理命令有自己的語法,這不是 Kusto 查詢語言語法的一部分,但兩者共用許多概念。 特別是,管理命令與查詢的區別是命令文字中的第一個字元是點 (.
) 字元 (無法啟動查詢)。
這種區別可防止許多種類的安全性攻擊,只是因為它會防止將管理命令內嵌在查詢中。
並非所有管理命令都會修改數據或元數據。 以 .show
開頭的大型命令類別是用來顯示元數據或數據。 例如,.show tables
命令會傳回目前資料庫中所有數據表的清單。
如需管理命令的詳細資訊,請參閱 管理命令概觀。
其他服務中的 KQL
其他許多Microsoft服務都會使用 KQL。 如需在這些環境中使用 KQL 的特定資訊,請參閱下列連結:
- Azure 監視器中的記錄查詢
- Microsoft Sentinel 中的
Kusto 查詢語言 - 瞭解 Azure Resource Graph 查詢語言
- 主動搜捕Microsoft 365 Defender 中的進階搜捕威脅
- CMPivot 查詢