使用 KQL 查詢與分析 Azure Data Explorer (Kusto/ADX) 中的資料,適用於日誌分析、遙測資料與時間序列分析。使用時機:KQL 查詢、Kusto 資料庫查詢、Azure Data Explorer、ADX 叢集、日誌分析、時間序列資料、IoT 遙測、異常偵測。
Azure Data Explorer (Kusto) 查詢與分析
執行 KQL 查詢並管理 Azure Data Explorer 資源,實現對日誌、遙測與時間序列資料的快速、可擴展大數據分析。
技能觸發條件
當使用者要求以下事項時,立即使用此技能:
- "查詢我的 Kusto 資料庫中的 [資料模式]"
- "顯示 Azure Data Explorer 過去一小時的事件"
- "分析我的 ADX 叢集中的日誌"
- "在 [資料庫] 上執行 KQL 查詢"
- "我的 Kusto 資料庫中有哪些資料表?"
- "顯示 [資料表] 的結構描述"
- "列出我的 Azure Data Explorer 叢集"
- "按 [維度] 彙總遙測資料"
- "從我的日誌建立時間序列圖表"
關鍵指標:
- 提及 "Kusto"、"Azure Data Explorer"、"ADX" 或 "KQL"
- 日誌分析或遙測分析請求
- 時間序列資料探索
- IoT 資料分析查詢
- SIEM 或安全分析任務
- 大型資料集的資料彙總請求
- 效能監控或 APM 查詢
概觀
此技能可查詢與管理 Azure Data Explorer (Kusto),這是一項專為日誌與遙測資料最佳化的快速、高度可擴展資料探索服務。Azure Data Explorer 使用 Kusto 查詢語言 (KQL) 在數十億筆記錄上提供次秒級查詢效能。
主要功能:
- 查詢執行:針對大量資料集執行 KQL 查詢
- 結構描述探索:探索資料表、資料行與資料類型
- 資源管理:列出叢集與資料庫
- 分析:彙總、時間序列、異常偵測、機器學習
核心工作流程
- 探索資源:列出訂用帳戶中可用的叢集與資料庫
- 探索結構描述:擷取資料表結構以了解資料模型
- 查詢資料:執行 KQL 查詢以進行分析、篩選、彙總
- 分析結果:處理查詢輸出以獲得深入見解與報告
查詢模式
模式 1:基本資料擷取
從資料表中擷取最近的記錄,並進行簡單篩選。
範例 KQL:
Events
| where Timestamp > ago(1h)
| take 100
用途:快速資料檢查、最近事件擷取
模式 2:彙總分析
按維度彙總資料以獲得深入見解與報告。
範例 KQL:
Events
| summarize count() by EventType, bin(Timestamp, 1h)
| order by count_ desc
用途:事件計數、分佈分析、Top-N 查詢
模式 3:時間序列分析
分析時間視窗內的資料以找出趨勢與模式。
範例 KQL:
Telemetry
| where Timestamp > ago(24h)
| summarize avg(ResponseTime), percentiles(ResponseTime, 50, 95, 99) by bin(Timestamp, 5m)
| render timechart
用途:效能監控、趨勢分析、異常偵測
模式 4:聯結與關聯
結合多個資料表進行跨資料集分析。
範例 KQL:
Events
| where EventType == "Error"
| join kind=inner (
Logs
| where Severity == "Critical"
) on CorrelationId
| project Timestamp, EventType, LogMessage, Severity
用途:根本原因分析、關聯事件追蹤
模式 5:結構描述探索
在查詢前探索資料表結構。
工具:kusto_table_schema_get
用途:了解資料模型、查詢規劃
關鍵資料欄位
執行查詢時,常見的欄位模式:
- Timestamp:事件時間 (datetime) - 使用
ago()、between()、bin()進行時間篩選 - EventType/Category:用於分組的分類欄位
- CorrelationId/SessionId:用於追蹤相關事件
- Severity/Level:用於按重要性篩選
- Dimensions:用於分組與篩選的自訂屬性
結果格式
查詢結果包含:
- Columns:欄位名稱與資料類型
- Rows:符合查詢的資料記錄
- Statistics:資料列數、執行時間、資源使用量
- Visualization:圖表繪製提示 (timechart、barchart 等)
KQL 最佳做法
🟢 效能最佳化:
- 及早篩選:在聯結與彙總之前使用
where - 限制結果大小:使用
take或limit減少資料傳輸 - 時間篩選:時間序列資料務必依時間範圍篩選
- 索引欄位:優先篩選索引欄位
🔵 查詢模式:
- 使用
summarize進行彙總,而非單獨使用count() - 時間序列中使用
bin()進行時間分桶 - 使用
project僅選取所需欄位 - 使用
extend新增計算欄位
🟡 常用函數:
ago(timespan):相對時間 (ago(1h)、ago(7d))between(start .. end):範圍篩選startswith()、contains()、matches regex:字串篩選parse、extract:從字串中擷取值percentiles()、avg()、sum()、max()、min():彙總函數
最佳做法
- 務必包含時間範圍篩選以最佳化查詢效能
- 探索性查詢使用
take或limit以避免大量結果集 - 利用
summarize進行彙總,而非用戶端處理 - 將常用查詢儲存為資料庫中的函數
- 對重複彙總使用具體化檢視
- 監控查詢效能與資源消耗
- 套用資料保留原則以管理儲存成本
- 使用串流擷取以實現即時分析 (延遲 < 1 秒)
- 與 Azure Monitor 整合以獲得營運深入見解
MCP 工具使用
| 工具 | 用途 |
|---|---|
kusto_cluster_list |
列出訂用帳戶中的所有 Azure Data Explorer 叢集 |
kusto_database_list |
列出特定 Kusto 叢集中的所有資料庫 |
kusto_query |
對 Kusto 資料庫執行 KQL 查詢 |
kusto_table_schema_get |
擷取特定資料表的結構描述資訊 |
必要參數:
subscription:Azure 訂用帳戶 ID 或顯示名稱cluster:Kusto 叢集名稱 (例如 "mycluster")database:資料庫名稱query:KQL 查詢字串 (用於查詢操作)table:資料表名稱 (用於結構描述操作)
選擇性參數:
resource-group:資源群組名稱 (用於列出操作)tenant:Azure AD 租用戶 ID
備援策略:Azure CLI 命令
如果 Azure MCP Kusto 工具失敗、逾時或無法使用,請使用 Azure CLI 命令作為備援。
CLI 命令參考
| 操作 | Azure CLI 命令 |
|---|---|
| 列出叢集 | az kusto cluster list --resource-group <rg-name> |
| 列出資料庫 | az kusto database list --cluster-name <cluster> --resource-group <rg-name> |
| 顯示叢集 | az kusto cluster show --name <cluster> --resource-group <rg-name> |
| 顯示資料庫 | az kusto database show --cluster-name <cluster> --database-name <db> --resource-group <rg-name> |
透過 Azure CLI 執行 KQL 查詢
對於查詢,請使用 Kusto REST API 或直接叢集 URL:
az rest --method post \
--url "https://<cluster>.<region>.kusto.windows.net/v1/rest/query" \
--body "{ \"db\": \"<database>\", \"csl\": \"<kql-query>\" }"
何時使用備援
在以下情況切換至 Azure CLI:
- MCP 工具傳回逾時錯誤 (查詢超過 60 秒)
- MCP 工具傳回 "服務無法使用" 或連線錯誤
- MCP 工具驗證失敗
- 已知資料庫有資料但傳回空回應
常見問題
- 存取遭拒:確認資料庫權限 (查詢至少需要檢視者角色)
- 查詢逾時:使用時間篩選最佳化查詢、減少結果集或增加逾時時間
- 語法錯誤:驗證 KQL 語法 - 常見問題:缺少管線符號、運算子錯誤
- 空結果:檢查時間範圍篩選 (可能過於嚴格)、確認資料表名稱
- 找不到叢集:檢查叢集名稱格式 (排除 ".kusto.windows.net" 尾碼)
- 高 CPU 使用率:查詢範圍過大 - 新增篩選條件、縮小時間範圍、限制彙總
- 擷取延遲:串流資料可能因擷取方式而有 1-30 秒延遲
使用案例
- 日誌分析:應用程式日誌、系統日誌、稽核日誌
- IoT 分析:感應器資料、裝置遙測、即時監控
- 安全分析:SIEM 資料、威脅偵測、安全事件關聯
- APM:應用程式效能指標、使用者行為、錯誤追蹤
- 商業智慧:點擊流分析、使用者分析、營運 KPI






