azure-kusto

azure-kusto

熱門

使用 KQL 查詢與分析 Azure Data Explorer (Kusto/ADX) 中的資料,適用於日誌分析、遙測資料與時間序列分析。使用時機:KQL 查詢、Kusto 資料庫查詢、Azure Data Explorer、ADX 叢集、日誌分析、時間序列資料、IoT 遙測、異常偵測。

1196星標
196分支
更新於 2026/6/9
SKILL.md
readonlyread-only
name
azure-kusto
description

使用 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 查詢
  • 結構描述探索:探索資料表、資料行與資料類型
  • 資源管理:列出叢集與資料庫
  • 分析:彙總、時間序列、異常偵測、機器學習

核心工作流程

  1. 探索資源:列出訂用帳戶中可用的叢集與資料庫
  2. 探索結構描述:擷取資料表結構以了解資料模型
  3. 查詢資料:執行 KQL 查詢以進行分析、篩選、彙總
  4. 分析結果:處理查詢輸出以獲得深入見解與報告

查詢模式

模式 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
  • 限制結果大小:使用 takelimit 減少資料傳輸
  • 時間篩選:時間序列資料務必依時間範圍篩選
  • 索引欄位:優先篩選索引欄位

🔵 查詢模式:

  • 使用 summarize 進行彙總,而非單獨使用 count()
  • 時間序列中使用 bin() 進行時間分桶
  • 使用 project 僅選取所需欄位
  • 使用 extend 新增計算欄位

🟡 常用函數:

  • ago(timespan):相對時間 (ago(1h)、ago(7d))
  • between(start .. end):範圍篩選
  • startswith()contains()matches regex:字串篩選
  • parseextract:從字串中擷取值
  • percentiles()avg()sum()max()min():彙總函數

最佳做法

  • 務必包含時間範圍篩選以最佳化查詢效能
  • 探索性查詢使用 takelimit 以避免大量結果集
  • 利用 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