瞭解 Kusto 查詢語言陳述式結構

已完成

KQL 查詢是一種負責處理資料並傳回結果的唯讀要求。 要求會以純文字陳述,並使用針對讓語法易於理解、撰寫及自動執行所設計的資料流程模型。 查詢會使用依類似 SQL 階層組織的結構描述實體:資料庫、資料表和資料行。

查詢會由一連串查詢陳述式所組成。 至少有一個陳述式是表格式運算式陳述式,這個陳述式產生的資料會以由資料行和資料列組成的類表格網格整理。 查詢的表格運算式陳述式會產生查詢的結果。

表格式運算式陳述式的語法具有從一個表格式查詢運算子到另一個表格式查詢運算子的表格式資料流程。 起始自資料來源,然後流經一組以直立線 (|) 分隔符號繫結在一起的資料轉換運算子。

例如,下列查詢具備單一陳述式,其為表格式運算式陳述式。 此陳述式會以名為 SecurityEvent 的資料表開始。 EventID 資料行的值會篩選資料 (資料列),然後由 [帳戶] 建立 count() 的新資料行來匯總結果。 接下來,在準備階段中,結果會限制為 10 個資料列。

Diagram of K Q L Statement showing data, condition and evidence.

重要

務必要了解結果是如何流經直立線「|」。 在直立線左側的所有項目都會經過處理,然後傳送至直立線右側。

存取 Log Analytics 示範環境

Microsoft 會提供用於練習撰寫 KQL 陳述式的環境存取權。 唯一的需求是要有帳戶登入 Azure。 存取此環境不會導致您的 Azure 帳戶產生任何費用。 您可以在示範環境中執行此課程模組中的 KQL 陳述式。

您可以在 https://aka.ms/lademo 存取示範環境

重要

記錄分析示範資料庫是個動態環境。 在該環境中的資料表所記錄的事件會以不同的安全性事件持續更新。 這類似於在真實世界的安全性作業設定中,實際會遇到的狀況。 因此,此定型中的有限查詢可能會根據執行查詢時示範資料庫的狀態,而未顯示出任何結果。 例如,若針對 SecurityEvent 資料表查詢 "discardEventID = 4688" 過去一天的資料,如果該特定事件發生在三天前,則可能不會顯示出任何結果。 因此,您可能需要根據您執行指令碼時在示範資料庫中的資料,視情況調整此定型所列指令碼中的變數,以讓查詢能顯示出結果。 這些指令碼調整類似於您在真實狀況下會執行的內容,而且應該能協助您了解指令碼函式的特定部分。

Screenshot of the Log Analytics Demo Environment.

查詢視窗有三個主要區段:

  • 左側區域是環境中資料表的參考清單。

  • 中上區域是查詢編輯器。

  • 底部區域是查詢結果。

在執行查詢之前,請調整時間範圍以定義資料範圍。 若要變更顯示的結果資料行,請選取 [資料行] 方塊,然後選擇所需的資料行。