[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-eventhouse-consumption-cli":3,"mdc-c2vt3d-key":37,"related-repo-microsoft-eventhouse-consumption-cli":4620,"related-org-microsoft-eventhouse-consumption-cli":4720},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"eventhouse-consumption-cli","query Fabric Eventhouse with KQL","Run KQL queries against Fabric Eventhouse for real-time intelligence and time-series analytics using `az rest` against the Kusto REST API. Covers KQL operators (where, summarize, join, render), Eventhouse schema discovery (.show tables), time-series patterns with bin(), and ingestion monitoring. Use when the user wants to:\n  1. Run read-only KQL queries against an Eventhouse or KQL Database\n  2. Discover Eventhouse table schema and metadata\n  3. Analyse real-time or time-series data with KQL operators\n  4. Monitor ingestion health and active KQL queries\n  5. Export KQL results to JSON\nTriggers: \"kql query\", \"kusto query\", \"eventhouse query\", \"kql database\", \"real-time intelligence\", \"time-series kql\", \"query eventhouse\", \"explore eventhouse\", \"show tables kql\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,20,23],{"name":13,"slug":14,"type":15},"KQL","kql","tag",{"name":17,"slug":18,"type":15},"Real-Time Intelligence","real-time-intelligence",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Microsoft Fabric","microsoft-fabric",{"name":24,"slug":25,"type":15},"Analytics","analytics",858,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-fabric","2026-04-06T18:36:45.018807",null,237,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"A collection of skills and MCP systems to enable users of CLI, VSCode, Claude to operate over Microsoft Fabric","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-fabric\u002Ftree\u002FHEAD\u002Fskills\u002Feventhouse-consumption-cli","---\nname: eventhouse-consumption-cli\ndescription: >\n  Run KQL queries against Fabric Eventhouse for real-time intelligence\n  and time-series analytics using `az rest` against the Kusto REST API. Covers KQL operators\n  (where, summarize, join, render), Eventhouse schema discovery (.show tables), time-series\n  patterns with bin(), and ingestion monitoring.\n  Use when the user wants to:\n    1. Run read-only KQL queries against an Eventhouse or KQL Database\n    2. Discover Eventhouse table schema and metadata\n    3. Analyse real-time or time-series data with KQL operators\n    4. Monitor ingestion health and active KQL queries\n    5. Export KQL results to JSON\n  Triggers: \"kql query\", \"kusto query\", \"eventhouse query\", \"kql database\",\n  \"real-time intelligence\", \"time-series kql\", \"query eventhouse\",\n  \"explore eventhouse\", \"show tables kql\"\n---\n\n> **Update Check — ONCE PER SESSION (mandatory)**\n> The first time this skill is used in a session, run the **check-updates** skill before proceeding.\n> - **GitHub Copilot CLI \u002F VS Code**: invoke the `check-updates` skill.\n> - **Claude Code \u002F Cowork \u002F Cursor \u002F Windsurf \u002F Codex**: compare local vs remote package.json version.\n> - Skip if the check was already performed earlier in this session.\n\n> **CRITICAL NOTES**\n> 1. To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering\n> 2. To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering\n\n# eventhouse-consumption-cli — Read-Only KQL Queries via CLI\n\n## Table of Contents\n\n| Task | Reference | Notes |\n|---|---|---|\n| Finding Workspaces and Items in Fabric | [COMMON-CLI.md § Finding Workspaces and Items in Fabric](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#finding-workspaces-and-items-in-fabric) | **Mandatory** — *READ link first* [needed for finding workspace id by its name or item id by its name, item type, and workspace id] |\n| Fabric Topology & Key Concepts | [COMMON-CORE.md § Fabric Topology & Key Concepts](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#fabric-topology--key-concepts) | |\n| Environment URLs | [COMMON-CORE.md § Environment URLs](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#environment-urls) | KQL Cluster URI is per-item |\n| Authentication & Token Acquisition | [COMMON-CORE.md § Authentication & Token Acquisition](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#authentication--token-acquisition) | Wrong audience = 401; read before any auth issue |\n| Core Control-Plane REST APIs | [COMMON-CORE.md § Core Control-Plane REST APIs](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#core-control-plane-rest-apis) | |\n| Pagination | [COMMON-CORE.md § Pagination](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#pagination) | |\n| Long-Running Operations (LRO) | [COMMON-CORE.md § Long-Running Operations (LRO)](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#long-running-operations-lro) | |\n| Rate Limiting & Throttling | [COMMON-CORE.md § Rate Limiting & Throttling](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#rate-limiting--throttling) | |\n| OneLake Data Access | [COMMON-CORE.md § OneLake Data Access](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#onelake-data-access) | Requires `storage.azure.com` token, not Fabric token |\n| Job Execution | [COMMON-CORE.md § Job Execution](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#job-execution) | |\n| Capacity Management | [COMMON-CORE.md § Capacity Management](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#capacity-management) | |\n| Gotchas & Troubleshooting | [COMMON-CORE.md § Gotchas & Troubleshooting](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#gotchas--troubleshooting) | |\n| Best Practices | [COMMON-CORE.md § Best Practices](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#best-practices) | |\n| Tool Selection Rationale | [COMMON-CLI.md § Tool Selection Rationale](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#tool-selection-rationale) | |\n| Authentication Recipes | [COMMON-CLI.md § Authentication Recipes](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#authentication-recipes) | `az login` flows and token acquisition |\n| Fabric Control-Plane API via `az rest` | [COMMON-CLI.md § Fabric Control-Plane API via az rest](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#fabric-control-plane-api-via-az-rest) | **Always pass `--resource https:\u002F\u002Fapi.fabric.microsoft.com`** or `az rest` fails |\n| Pagination Pattern | [COMMON-CLI.md § Pagination Pattern](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#pagination-pattern) | |\n| Long-Running Operations (LRO) Pattern | [COMMON-CLI.md § Long-Running Operations (LRO) Pattern](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#long-running-operations-lro-pattern) | |\n| OneLake Data Access via `curl` | [COMMON-CLI.md § OneLake Data Access via curl](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#onelake-data-access-via-curl) | Use `curl` not `az rest` (different token audience) |\n| Job Execution (CLI) | [COMMON-CLI.md § Job Execution](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#job-execution) | |\n| OneLake Shortcuts | [COMMON-CLI.md § OneLake Shortcuts](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#onelake-shortcuts) | |\n| Capacity Management (CLI) | [COMMON-CLI.md § Capacity Management](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#capacity-management) | |\n| Composite Recipes | [COMMON-CLI.md § Composite Recipes](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#composite-recipes) | |\n| Gotchas & Troubleshooting (CLI-Specific) | [COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific)](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#gotchas--troubleshooting-cli-specific) | `az rest` audience, shell escaping, token expiry |\n| Quick Reference: `az rest` Template | [COMMON-CLI.md § Quick Reference: az rest Template](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#quick-reference-az-rest-template) | |\n| Quick Reference: Token Audience \u002F CLI Tool Matrix | [COMMON-CLI.md § Quick Reference: Token Audience ↔ CLI Tool Matrix](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#quick-reference-token-audience--cli-tool-matrix) | Which `--resource` + tool for each service |\n| Connection Fundamentals | [EVENTHOUSE-CONSUMPTION-CORE.md § Connection Fundamentals](..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#connection-fundamentals) | Cluster URI discovery, `az rest`, REST API |\n| Schema Discovery and Security | [EVENTHOUSE-CONSUMPTION-CORE.md § Schema Discovery and Security](..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#schema-discovery-and-security) | Schema Discovery, Security — workspace roles + KQL DB roles |\n| Monitoring and Diagnostics | [EVENTHOUSE-CONSUMPTION-CORE.md § Monitoring and Diagnostics](..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#monitoring-and-diagnostics) | |\n| Performance Best Practices | [EVENTHOUSE-CONSUMPTION-CORE.md § Performance Best Practices](..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#performance-best-practices) | **Read before writing KQL** — time filters, `has` vs `contains` |\n| Common Consumption Patterns | [EVENTHOUSE-CONSUMPTION-CORE.md § Common Consumption Patterns](..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#common-consumption-patterns) | Time-series, Top-N, percentile, dynamic fields |\n| Gotchas, Troubleshooting, and Quick Reference | [EVENTHOUSE-CONSUMPTION-CORE.md § Gotchas, Troubleshooting, and Quick Reference](..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#gotchas-troubleshooting-and-quick-reference) | Gotchas and Troubleshooting (12 issues), Quick Reference: Consumption Capabilities by Scenario |\n| Table and Column Discovery | [discovery-queries.md § Table and Column Discovery](references\u002Fdiscovery-queries.md#table-and-column-discovery) | Table Discovery, Column Statistics |\n| Function and View Discovery | [discovery-queries.md § Function and View Discovery](references\u002Fdiscovery-queries.md#function-and-view-discovery) | Function Discovery, Materialized View Discovery |\n| Policy Discovery | [discovery-queries.md § Policy Discovery](references\u002Fdiscovery-queries.md#policy-discovery) | |\n| External Tables and Ingestion Mappings | [discovery-queries.md § External Tables and Ingestion Mappings](references\u002Fdiscovery-queries.md#external-tables-and-ingestion-mappings) | External Table Discovery, Ingestion Mapping Discovery |\n| Security Discovery | [discovery-queries.md § Security Discovery](references\u002Fdiscovery-queries.md#security-discovery) | |\n| Database Overview Script | [discovery-queries.md § Database Overview Script](references\u002Fdiscovery-queries.md#database-overview-script) | |\n| Tool Stack | [SKILL.md § Tool Stack](#tool-stack) | |\n| Connection | [SKILL.md § Connection](#connection) | eventhouse-specific `az rest` connection steps |\n| Agentic Exploration (\"Chat With My Data\") | [SKILL.md § Agentic Exploration](#agentic-exploration) | **Start here** for data exploration |\n| Running Queries | [SKILL.md § Running Queries](#running-queries) | `az rest`, output formatting, export |\n| Monitoring | [SKILL.md § Monitoring](#monitoring) | |\n| Must \u002F Prefer \u002F Avoid \u002F Troubleshooting | [SKILL.md § Must \u002F Prefer \u002F Avoid \u002F Troubleshooting](#must--prefer--avoid--troubleshooting) | **MUST DO \u002F AVOID \u002F PREFER** checklists |\n| Examples | [SKILL.md § Examples](#examples) | |\n| Agent Integration Notes | [SKILL.md § Agent Integration Notes](#agent-integration-notes) | |\n\n---\n\n## Tool Stack\n\n| Tool | Purpose | Install |\n|---|---|---|\n| **az cli** | KQL queries and management commands via Kusto REST API; Fabric control-plane discovery | `winget install Microsoft.AzureCLI` |\n| **jq** | JSON processing and output formatting | `winget install jqlang.jq` |\n\n## Connection\n\n### Step 1 — Discover KQL Database Query URI\n\n```bash\n# Get workspace ID (if not known)\nWS_ID=$(az rest --method GET \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\" \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  | jq -r '.value[] | select(.displayName==\"MyWorkspace\") | .id')\n\n# List KQL Databases and get connection properties\naz rest --method GET \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\u002F${WS_ID}\u002FkqlDatabases\" \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  | jq '.value[] | {name: .displayName, id: .id, queryUri: .properties.queryServiceUri, dbName: .properties.databaseName}'\n```\n\n### Step 2 — Set Connection Variables\n\n```bash\nCLUSTER_URI=\"https:\u002F\u002F\u003Ccluster>.kusto.fabric.microsoft.com\"\nDB_NAME=\"MyKqlDatabase\"\n```\n\n### Step 3 — Verify Connection\n\n> **Important — body file pattern**: KQL queries contain `|` (pipe) characters which break shell\n> escaping in both bash and PowerShell. **Always write the JSON body to a temp file** and reference\n> it with `--body @\u003Cfile>`. This is the recommended approach for all `az rest` KQL calls.\n> On PowerShell, use `@{db=\"X\";csl=\"...\"} | ConvertTo-Json -Compress | Out-File $env:TEMP\\kql_body.json -Encoding utf8NoBOM` then `--body \"@$env:TEMP\\kql_body.json\"`.\n\n```bash\n# Write body to temp file (avoids pipe escaping issues)\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyKqlDatabase\",\"csl\":\"print Message = 'Connected successfully', Cluster = current_cluster_endpoint(), Timestamp = now()\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n```\n\n---\n\n## Agentic Exploration\n\n### \"Chat With My Data\" — Discovery Sequence\n\nWhen the user asks to explore or query an Eventhouse without specifying tables:\n\n```kql\nStep 1 → .show tables                                    \u002F\u002F discover tables\nStep 2 → .show table \u003CTABLE> schema as json              \u002F\u002F understand columns + types\nStep 3 → \u003CTABLE> | take 10                               \u002F\u002F see sample data\nStep 4 → \u003CTABLE> | summarize count() by bin(Timestamp, 1h) | render timechart  \u002F\u002F shape of data\nStep 5 → Formulate targeted query based on user's question\n```\n\n### Schema-Aware Query Generation\n\nAfter schema discovery, generate queries using actual column names and types:\n\n```kql\n\u002F\u002F Example: user asks \"show me errors in the last hour\"\n\u002F\u002F After discovering table \"AppEvents\" with columns: Timestamp, Level, Message, Source\nAppEvents\n| where Timestamp > ago(1h)\n| where Level == \"Error\"\n| summarize ErrorCount = count() by Source, bin(Timestamp, 5m)\n| order by ErrorCount desc\n```\n\n---\n\n## Running Queries\n\n### Via `az rest`\n\n> **Always use the temp-file pattern** for `--body` — KQL pipes (`|`) break inline shell escaping.\n\n```bash\n# Run a KQL query\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1h) | count\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n```\n\n### Output Formatting\n\n```bash\n# Pretty-print results as a table with jq\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\".show tables\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0] | [.Columns[].ColumnName] as $cols | .Rows[] | [$cols, .] | transpose | map({(.[0]): .[1]}) | add'\n\n# Save results to file\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1h) | summarize count() by EventType\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  --output-file results.json\n```\n\n---\n\n## Monitoring\n\n```kql\n\u002F\u002F Active queries\n.show queries\n\n\u002F\u002F Recent commands (last hour)\n.show commands\n| where StartedOn > ago(1h)\n| project StartedOn, CommandType, Text = substring(Text, 0, 80), Duration, State\n| order by StartedOn desc\n\n\u002F\u002F Ingestion failures (for context when data seems stale)\n.show ingestion failures\n| where FailedOn > ago(24h)\n| summarize count() by ErrorCode\n| top 5 by count_\n```\n\n---\n\n## Must \u002F Prefer \u002F Avoid \u002F Troubleshooting\n\n### Must\n\n- **Always include time filters** — `where Timestamp > ago(...)` must be present on time-series tables.\n- **Discover schema before querying** — run `.show tables` and `.show table T schema as json` first.\n- **Use `has` for term search** — indexed and fast; only fall back to `contains` for substring needs.\n- **Verify cluster URI** — KQL Database URIs are per-item; always resolve via Fabric REST API.\n\n### Prefer\n\n- **`az rest`** for CLI query sessions; **Fabric KQL MCP server** for agent-integrated workflows.\n- **`project` early** to drop unneeded columns before aggregation.\n- **`materialize()`** when a sub-expression is used multiple times.\n- **`take 100`** for initial exploration; avoid full table scans.\n- **`render timechart`** for time-series; `render piechart` for distribution.\n\n### Avoid\n\n- **`contains`** on large tables — full scan, not indexed. Use `has` or `has_cs`.\n- **`join`** without filtering both sides first — causes memory explosion.\n- **`SELECT *`** equivalent (`project` all columns) on wide tables.\n- **Missing `bin()`** in time-series `summarize` — produces one row per unique timestamp.\n- **Hardcoded cluster URIs** — always resolve from Fabric REST API or environment variables.\n\n### Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| `az rest` auth fails | Run `az login` first; ensure `--resource \"https:\u002F\u002Fkusto.kusto.windows.net\"` is set |\n| Empty results on valid table | Check database context; may need `database(\"name\").table` |\n| Query timeout | Add tighter time filter; check `.show queries` for competing queries |\n| `Forbidden (403)` | Request `viewer` role on the KQL Database |\n| Results truncated | Default limit is 500K rows; add `set truncationmaxrecords = N;` before query |\n| KQL pipe `\\|` breaks PowerShell or bash | **Never inline KQL in `--body`**. Write JSON to a temp file and use `--body @file.json` (see [Running Queries](#running-queries)) |\n\n---\n\n## Examples\n\n### Example 1: Discover and Query\n\n```bash\n# 1. Set connection variables (after discovering URI via Step 1)\nCLUSTER_URI=\"https:\u002F\u002F\u003Cyour-cluster>.kusto.fabric.microsoft.com\"\nDB_NAME=\"SalesDB\"\n\n# 2. Discover tables\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C EOF\n{\"db\":\"${DB_NAME}\",\"csl\":\".show tables\"}\nEOF\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n\n# 3. Explore schema\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C EOF\n{\"db\":\"${DB_NAME}\",\"csl\":\".show table Orders schema as json\"}\nEOF\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n\n# 4. Sample data\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C EOF\n{\"db\":\"${DB_NAME}\",\"csl\":\"Orders | take 10\"}\nEOF\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n```\n\n```kql\n\u002F\u002F 5. Analytical query (via az rest --body @file)\nOrders\n| where OrderDate > ago(30d)\n| summarize\n    TotalOrders = count(),\n    TotalRevenue = sum(Amount)\n    by bin(OrderDate, 1d)\n| render timechart\n```\n\n### Example 2: Cross-Database Query\n\n```kql\n\u002F\u002F Query across KQL databases in the same Eventhouse\nlet orders = database(\"SalesDB\").Orders | where OrderDate > ago(7d);\nlet products = database(\"CatalogDB\").Products;\norders\n| join kind=inner (products) on ProductId\n| summarize Revenue = sum(Amount) by ProductName\n| top 10 by Revenue desc\n```\n\n### Example 3: Export Results to File\n\n```bash\n# Run query and save results to JSON\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1d) | summarize count() by EventType\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  --output-file results.json\n\n# Convert to CSV with jq\ncat results.json \\\n  | jq -r '.Tables[0] | (.Columns | map(.ColumnName)), (.Rows[]) | @csv' > results.csv\n```\n\n---\n\n## Agent Integration Notes\n\n- This skill is **read-only** — it does not create, alter, or drop database objects.\n- For authoring operations (table management, ingestion, policies), delegate to **eventhouse-authoring-cli**.\n- For cross-workload orchestration (Spark + SQL + KQL), delegate to the **FabricDataEngineer** agent.\n- The **Fabric KQL MCP server** (`fabric-kql` in `mcp-setup\u002Fmcp-config-template.json`) can be used as an alternative to `az rest` for agent-integrated query execution.\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,105,130,137,144,1285,1289,1294,1371,1376,1383,1678,1684,1743,1749,1808,2021,2024,2030,2036,2041,2089,2095,2100,2163,2166,2171,2182,2210,2408,2414,2813,2816,2821,2938,2941,2946,2952,3031,3037,3126,3132,3230,3236,3421,3424,3429,3435,4134,4205,4211,4274,4280,4534,4537,4542,4614],{"type":43,"tag":44,"props":45,"children":46},"element","blockquote",{},[47,67],{"type":43,"tag":48,"props":49,"children":50},"p",{},[51,58,60,65],{"type":43,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":56,"value":57},"text","Update Check — ONCE PER SESSION (mandatory)",{"type":56,"value":59},"\nThe first time this skill is used in a session, run the ",{"type":43,"tag":52,"props":61,"children":62},{},[63],{"type":56,"value":64},"check-updates",{"type":56,"value":66}," skill before proceeding.",{"type":43,"tag":68,"props":69,"children":70},"ul",{},[71,90,100],{"type":43,"tag":72,"props":73,"children":74},"li",{},[75,80,82,88],{"type":43,"tag":52,"props":76,"children":77},{},[78],{"type":56,"value":79},"GitHub Copilot CLI \u002F VS Code",{"type":56,"value":81},": invoke the ",{"type":43,"tag":83,"props":84,"children":86},"code",{"className":85},[],[87],{"type":56,"value":64},{"type":56,"value":89}," skill.",{"type":43,"tag":72,"props":91,"children":92},{},[93,98],{"type":43,"tag":52,"props":94,"children":95},{},[96],{"type":56,"value":97},"Claude Code \u002F Cowork \u002F Cursor \u002F Windsurf \u002F Codex",{"type":56,"value":99},": compare local vs remote package.json version.",{"type":43,"tag":72,"props":101,"children":102},{},[103],{"type":56,"value":104},"Skip if the check was already performed earlier in this session.",{"type":43,"tag":44,"props":106,"children":107},{},[108,116],{"type":43,"tag":48,"props":109,"children":110},{},[111],{"type":43,"tag":52,"props":112,"children":113},{},[114],{"type":56,"value":115},"CRITICAL NOTES",{"type":43,"tag":117,"props":118,"children":119},"ol",{},[120,125],{"type":43,"tag":72,"props":121,"children":122},{},[123],{"type":56,"value":124},"To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering",{"type":43,"tag":72,"props":126,"children":127},{},[128],{"type":56,"value":129},"To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering",{"type":43,"tag":131,"props":132,"children":134},"h1",{"id":133},"eventhouse-consumption-cli-read-only-kql-queries-via-cli",[135],{"type":56,"value":136},"eventhouse-consumption-cli — Read-Only KQL Queries via CLI",{"type":43,"tag":138,"props":139,"children":141},"h2",{"id":140},"table-of-contents",[142],{"type":56,"value":143},"Table of Contents",{"type":43,"tag":145,"props":146,"children":147},"table",{},[148,172],{"type":43,"tag":149,"props":150,"children":151},"thead",{},[152],{"type":43,"tag":153,"props":154,"children":155},"tr",{},[156,162,167],{"type":43,"tag":157,"props":158,"children":159},"th",{},[160],{"type":56,"value":161},"Task",{"type":43,"tag":157,"props":163,"children":164},{},[165],{"type":56,"value":166},"Reference",{"type":43,"tag":157,"props":168,"children":169},{},[170],{"type":56,"value":171},"Notes",{"type":43,"tag":173,"props":174,"children":175},"tbody",{},[176,219,239,261,283,303,323,343,363,393,413,433,453,473,493,521,567,587,607,649,669,689,709,729,756,783,813,842,864,884,925,947,969,991,1013,1033,1055,1075,1095,1115,1144,1171,1198,1218,1245,1265],{"type":43,"tag":153,"props":177,"children":178},{},[179,185,195],{"type":43,"tag":180,"props":181,"children":182},"td",{},[183],{"type":56,"value":184},"Finding Workspaces and Items in Fabric",{"type":43,"tag":180,"props":186,"children":187},{},[188],{"type":43,"tag":189,"props":190,"children":192},"a",{"href":191},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#finding-workspaces-and-items-in-fabric",[193],{"type":56,"value":194},"COMMON-CLI.md § Finding Workspaces and Items in Fabric",{"type":43,"tag":180,"props":196,"children":197},{},[198,203,205,211,213],{"type":43,"tag":52,"props":199,"children":200},{},[201],{"type":56,"value":202},"Mandatory",{"type":56,"value":204}," — ",{"type":43,"tag":206,"props":207,"children":208},"em",{},[209],{"type":56,"value":210},"READ link first",{"type":56,"value":212}," ",{"type":43,"tag":214,"props":215,"children":216},"span",{},[217],{"type":56,"value":218},"needed for finding workspace id by its name or item id by its name, item type, and workspace id",{"type":43,"tag":153,"props":220,"children":221},{},[222,227,236],{"type":43,"tag":180,"props":223,"children":224},{},[225],{"type":56,"value":226},"Fabric Topology & Key Concepts",{"type":43,"tag":180,"props":228,"children":229},{},[230],{"type":43,"tag":189,"props":231,"children":233},{"href":232},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#fabric-topology--key-concepts",[234],{"type":56,"value":235},"COMMON-CORE.md § Fabric Topology & Key Concepts",{"type":43,"tag":180,"props":237,"children":238},{},[],{"type":43,"tag":153,"props":240,"children":241},{},[242,247,256],{"type":43,"tag":180,"props":243,"children":244},{},[245],{"type":56,"value":246},"Environment URLs",{"type":43,"tag":180,"props":248,"children":249},{},[250],{"type":43,"tag":189,"props":251,"children":253},{"href":252},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#environment-urls",[254],{"type":56,"value":255},"COMMON-CORE.md § Environment URLs",{"type":43,"tag":180,"props":257,"children":258},{},[259],{"type":56,"value":260},"KQL Cluster URI is per-item",{"type":43,"tag":153,"props":262,"children":263},{},[264,269,278],{"type":43,"tag":180,"props":265,"children":266},{},[267],{"type":56,"value":268},"Authentication & Token Acquisition",{"type":43,"tag":180,"props":270,"children":271},{},[272],{"type":43,"tag":189,"props":273,"children":275},{"href":274},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#authentication--token-acquisition",[276],{"type":56,"value":277},"COMMON-CORE.md § Authentication & Token Acquisition",{"type":43,"tag":180,"props":279,"children":280},{},[281],{"type":56,"value":282},"Wrong audience = 401; read before any auth issue",{"type":43,"tag":153,"props":284,"children":285},{},[286,291,300],{"type":43,"tag":180,"props":287,"children":288},{},[289],{"type":56,"value":290},"Core Control-Plane REST APIs",{"type":43,"tag":180,"props":292,"children":293},{},[294],{"type":43,"tag":189,"props":295,"children":297},{"href":296},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#core-control-plane-rest-apis",[298],{"type":56,"value":299},"COMMON-CORE.md § Core Control-Plane REST APIs",{"type":43,"tag":180,"props":301,"children":302},{},[],{"type":43,"tag":153,"props":304,"children":305},{},[306,311,320],{"type":43,"tag":180,"props":307,"children":308},{},[309],{"type":56,"value":310},"Pagination",{"type":43,"tag":180,"props":312,"children":313},{},[314],{"type":43,"tag":189,"props":315,"children":317},{"href":316},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#pagination",[318],{"type":56,"value":319},"COMMON-CORE.md § Pagination",{"type":43,"tag":180,"props":321,"children":322},{},[],{"type":43,"tag":153,"props":324,"children":325},{},[326,331,340],{"type":43,"tag":180,"props":327,"children":328},{},[329],{"type":56,"value":330},"Long-Running Operations (LRO)",{"type":43,"tag":180,"props":332,"children":333},{},[334],{"type":43,"tag":189,"props":335,"children":337},{"href":336},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#long-running-operations-lro",[338],{"type":56,"value":339},"COMMON-CORE.md § Long-Running Operations (LRO)",{"type":43,"tag":180,"props":341,"children":342},{},[],{"type":43,"tag":153,"props":344,"children":345},{},[346,351,360],{"type":43,"tag":180,"props":347,"children":348},{},[349],{"type":56,"value":350},"Rate Limiting & Throttling",{"type":43,"tag":180,"props":352,"children":353},{},[354],{"type":43,"tag":189,"props":355,"children":357},{"href":356},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#rate-limiting--throttling",[358],{"type":56,"value":359},"COMMON-CORE.md § Rate Limiting & Throttling",{"type":43,"tag":180,"props":361,"children":362},{},[],{"type":43,"tag":153,"props":364,"children":365},{},[366,371,380],{"type":43,"tag":180,"props":367,"children":368},{},[369],{"type":56,"value":370},"OneLake Data Access",{"type":43,"tag":180,"props":372,"children":373},{},[374],{"type":43,"tag":189,"props":375,"children":377},{"href":376},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#onelake-data-access",[378],{"type":56,"value":379},"COMMON-CORE.md § OneLake Data Access",{"type":43,"tag":180,"props":381,"children":382},{},[383,385,391],{"type":56,"value":384},"Requires ",{"type":43,"tag":83,"props":386,"children":388},{"className":387},[],[389],{"type":56,"value":390},"storage.azure.com",{"type":56,"value":392}," token, not Fabric token",{"type":43,"tag":153,"props":394,"children":395},{},[396,401,410],{"type":43,"tag":180,"props":397,"children":398},{},[399],{"type":56,"value":400},"Job Execution",{"type":43,"tag":180,"props":402,"children":403},{},[404],{"type":43,"tag":189,"props":405,"children":407},{"href":406},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#job-execution",[408],{"type":56,"value":409},"COMMON-CORE.md § Job Execution",{"type":43,"tag":180,"props":411,"children":412},{},[],{"type":43,"tag":153,"props":414,"children":415},{},[416,421,430],{"type":43,"tag":180,"props":417,"children":418},{},[419],{"type":56,"value":420},"Capacity Management",{"type":43,"tag":180,"props":422,"children":423},{},[424],{"type":43,"tag":189,"props":425,"children":427},{"href":426},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#capacity-management",[428],{"type":56,"value":429},"COMMON-CORE.md § Capacity Management",{"type":43,"tag":180,"props":431,"children":432},{},[],{"type":43,"tag":153,"props":434,"children":435},{},[436,441,450],{"type":43,"tag":180,"props":437,"children":438},{},[439],{"type":56,"value":440},"Gotchas & Troubleshooting",{"type":43,"tag":180,"props":442,"children":443},{},[444],{"type":43,"tag":189,"props":445,"children":447},{"href":446},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#gotchas--troubleshooting",[448],{"type":56,"value":449},"COMMON-CORE.md § Gotchas & Troubleshooting",{"type":43,"tag":180,"props":451,"children":452},{},[],{"type":43,"tag":153,"props":454,"children":455},{},[456,461,470],{"type":43,"tag":180,"props":457,"children":458},{},[459],{"type":56,"value":460},"Best Practices",{"type":43,"tag":180,"props":462,"children":463},{},[464],{"type":43,"tag":189,"props":465,"children":467},{"href":466},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#best-practices",[468],{"type":56,"value":469},"COMMON-CORE.md § Best Practices",{"type":43,"tag":180,"props":471,"children":472},{},[],{"type":43,"tag":153,"props":474,"children":475},{},[476,481,490],{"type":43,"tag":180,"props":477,"children":478},{},[479],{"type":56,"value":480},"Tool Selection Rationale",{"type":43,"tag":180,"props":482,"children":483},{},[484],{"type":43,"tag":189,"props":485,"children":487},{"href":486},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#tool-selection-rationale",[488],{"type":56,"value":489},"COMMON-CLI.md § Tool Selection Rationale",{"type":43,"tag":180,"props":491,"children":492},{},[],{"type":43,"tag":153,"props":494,"children":495},{},[496,501,510],{"type":43,"tag":180,"props":497,"children":498},{},[499],{"type":56,"value":500},"Authentication Recipes",{"type":43,"tag":180,"props":502,"children":503},{},[504],{"type":43,"tag":189,"props":505,"children":507},{"href":506},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#authentication-recipes",[508],{"type":56,"value":509},"COMMON-CLI.md § Authentication Recipes",{"type":43,"tag":180,"props":511,"children":512},{},[513,519],{"type":43,"tag":83,"props":514,"children":516},{"className":515},[],[517],{"type":56,"value":518},"az login",{"type":56,"value":520}," flows and token acquisition",{"type":43,"tag":153,"props":522,"children":523},{},[524,535,544],{"type":43,"tag":180,"props":525,"children":526},{},[527,529],{"type":56,"value":528},"Fabric Control-Plane API via ",{"type":43,"tag":83,"props":530,"children":532},{"className":531},[],[533],{"type":56,"value":534},"az rest",{"type":43,"tag":180,"props":536,"children":537},{},[538],{"type":43,"tag":189,"props":539,"children":541},{"href":540},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#fabric-control-plane-api-via-az-rest",[542],{"type":56,"value":543},"COMMON-CLI.md § Fabric Control-Plane API via az rest",{"type":43,"tag":180,"props":545,"children":546},{},[547,558,560,565],{"type":43,"tag":52,"props":548,"children":549},{},[550,552],{"type":56,"value":551},"Always pass ",{"type":43,"tag":83,"props":553,"children":555},{"className":554},[],[556],{"type":56,"value":557},"--resource https:\u002F\u002Fapi.fabric.microsoft.com",{"type":56,"value":559}," or ",{"type":43,"tag":83,"props":561,"children":563},{"className":562},[],[564],{"type":56,"value":534},{"type":56,"value":566}," fails",{"type":43,"tag":153,"props":568,"children":569},{},[570,575,584],{"type":43,"tag":180,"props":571,"children":572},{},[573],{"type":56,"value":574},"Pagination Pattern",{"type":43,"tag":180,"props":576,"children":577},{},[578],{"type":43,"tag":189,"props":579,"children":581},{"href":580},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#pagination-pattern",[582],{"type":56,"value":583},"COMMON-CLI.md § Pagination Pattern",{"type":43,"tag":180,"props":585,"children":586},{},[],{"type":43,"tag":153,"props":588,"children":589},{},[590,595,604],{"type":43,"tag":180,"props":591,"children":592},{},[593],{"type":56,"value":594},"Long-Running Operations (LRO) Pattern",{"type":43,"tag":180,"props":596,"children":597},{},[598],{"type":43,"tag":189,"props":599,"children":601},{"href":600},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#long-running-operations-lro-pattern",[602],{"type":56,"value":603},"COMMON-CLI.md § Long-Running Operations (LRO) Pattern",{"type":43,"tag":180,"props":605,"children":606},{},[],{"type":43,"tag":153,"props":608,"children":609},{},[610,621,630],{"type":43,"tag":180,"props":611,"children":612},{},[613,615],{"type":56,"value":614},"OneLake Data Access via ",{"type":43,"tag":83,"props":616,"children":618},{"className":617},[],[619],{"type":56,"value":620},"curl",{"type":43,"tag":180,"props":622,"children":623},{},[624],{"type":43,"tag":189,"props":625,"children":627},{"href":626},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#onelake-data-access-via-curl",[628],{"type":56,"value":629},"COMMON-CLI.md § OneLake Data Access via curl",{"type":43,"tag":180,"props":631,"children":632},{},[633,635,640,642,647],{"type":56,"value":634},"Use ",{"type":43,"tag":83,"props":636,"children":638},{"className":637},[],[639],{"type":56,"value":620},{"type":56,"value":641}," not ",{"type":43,"tag":83,"props":643,"children":645},{"className":644},[],[646],{"type":56,"value":534},{"type":56,"value":648}," (different token audience)",{"type":43,"tag":153,"props":650,"children":651},{},[652,657,666],{"type":43,"tag":180,"props":653,"children":654},{},[655],{"type":56,"value":656},"Job Execution (CLI)",{"type":43,"tag":180,"props":658,"children":659},{},[660],{"type":43,"tag":189,"props":661,"children":663},{"href":662},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#job-execution",[664],{"type":56,"value":665},"COMMON-CLI.md § Job Execution",{"type":43,"tag":180,"props":667,"children":668},{},[],{"type":43,"tag":153,"props":670,"children":671},{},[672,677,686],{"type":43,"tag":180,"props":673,"children":674},{},[675],{"type":56,"value":676},"OneLake Shortcuts",{"type":43,"tag":180,"props":678,"children":679},{},[680],{"type":43,"tag":189,"props":681,"children":683},{"href":682},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#onelake-shortcuts",[684],{"type":56,"value":685},"COMMON-CLI.md § OneLake Shortcuts",{"type":43,"tag":180,"props":687,"children":688},{},[],{"type":43,"tag":153,"props":690,"children":691},{},[692,697,706],{"type":43,"tag":180,"props":693,"children":694},{},[695],{"type":56,"value":696},"Capacity Management (CLI)",{"type":43,"tag":180,"props":698,"children":699},{},[700],{"type":43,"tag":189,"props":701,"children":703},{"href":702},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#capacity-management",[704],{"type":56,"value":705},"COMMON-CLI.md § Capacity Management",{"type":43,"tag":180,"props":707,"children":708},{},[],{"type":43,"tag":153,"props":710,"children":711},{},[712,717,726],{"type":43,"tag":180,"props":713,"children":714},{},[715],{"type":56,"value":716},"Composite Recipes",{"type":43,"tag":180,"props":718,"children":719},{},[720],{"type":43,"tag":189,"props":721,"children":723},{"href":722},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#composite-recipes",[724],{"type":56,"value":725},"COMMON-CLI.md § Composite Recipes",{"type":43,"tag":180,"props":727,"children":728},{},[],{"type":43,"tag":153,"props":730,"children":731},{},[732,737,746],{"type":43,"tag":180,"props":733,"children":734},{},[735],{"type":56,"value":736},"Gotchas & Troubleshooting (CLI-Specific)",{"type":43,"tag":180,"props":738,"children":739},{},[740],{"type":43,"tag":189,"props":741,"children":743},{"href":742},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#gotchas--troubleshooting-cli-specific",[744],{"type":56,"value":745},"COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific)",{"type":43,"tag":180,"props":747,"children":748},{},[749,754],{"type":43,"tag":83,"props":750,"children":752},{"className":751},[],[753],{"type":56,"value":534},{"type":56,"value":755}," audience, shell escaping, token expiry",{"type":43,"tag":153,"props":757,"children":758},{},[759,771,780],{"type":43,"tag":180,"props":760,"children":761},{},[762,764,769],{"type":56,"value":763},"Quick Reference: ",{"type":43,"tag":83,"props":765,"children":767},{"className":766},[],[768],{"type":56,"value":534},{"type":56,"value":770}," Template",{"type":43,"tag":180,"props":772,"children":773},{},[774],{"type":43,"tag":189,"props":775,"children":777},{"href":776},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#quick-reference-az-rest-template",[778],{"type":56,"value":779},"COMMON-CLI.md § Quick Reference: az rest Template",{"type":43,"tag":180,"props":781,"children":782},{},[],{"type":43,"tag":153,"props":784,"children":785},{},[786,791,800],{"type":43,"tag":180,"props":787,"children":788},{},[789],{"type":56,"value":790},"Quick Reference: Token Audience \u002F CLI Tool Matrix",{"type":43,"tag":180,"props":792,"children":793},{},[794],{"type":43,"tag":189,"props":795,"children":797},{"href":796},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#quick-reference-token-audience--cli-tool-matrix",[798],{"type":56,"value":799},"COMMON-CLI.md § Quick Reference: Token Audience ↔ CLI Tool Matrix",{"type":43,"tag":180,"props":801,"children":802},{},[803,805,811],{"type":56,"value":804},"Which ",{"type":43,"tag":83,"props":806,"children":808},{"className":807},[],[809],{"type":56,"value":810},"--resource",{"type":56,"value":812}," + tool for each service",{"type":43,"tag":153,"props":814,"children":815},{},[816,821,830],{"type":43,"tag":180,"props":817,"children":818},{},[819],{"type":56,"value":820},"Connection Fundamentals",{"type":43,"tag":180,"props":822,"children":823},{},[824],{"type":43,"tag":189,"props":825,"children":827},{"href":826},"..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#connection-fundamentals",[828],{"type":56,"value":829},"EVENTHOUSE-CONSUMPTION-CORE.md § Connection Fundamentals",{"type":43,"tag":180,"props":831,"children":832},{},[833,835,840],{"type":56,"value":834},"Cluster URI discovery, ",{"type":43,"tag":83,"props":836,"children":838},{"className":837},[],[839],{"type":56,"value":534},{"type":56,"value":841},", REST API",{"type":43,"tag":153,"props":843,"children":844},{},[845,850,859],{"type":43,"tag":180,"props":846,"children":847},{},[848],{"type":56,"value":849},"Schema Discovery and Security",{"type":43,"tag":180,"props":851,"children":852},{},[853],{"type":43,"tag":189,"props":854,"children":856},{"href":855},"..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#schema-discovery-and-security",[857],{"type":56,"value":858},"EVENTHOUSE-CONSUMPTION-CORE.md § Schema Discovery and Security",{"type":43,"tag":180,"props":860,"children":861},{},[862],{"type":56,"value":863},"Schema Discovery, Security — workspace roles + KQL DB roles",{"type":43,"tag":153,"props":865,"children":866},{},[867,872,881],{"type":43,"tag":180,"props":868,"children":869},{},[870],{"type":56,"value":871},"Monitoring and Diagnostics",{"type":43,"tag":180,"props":873,"children":874},{},[875],{"type":43,"tag":189,"props":876,"children":878},{"href":877},"..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#monitoring-and-diagnostics",[879],{"type":56,"value":880},"EVENTHOUSE-CONSUMPTION-CORE.md § Monitoring and Diagnostics",{"type":43,"tag":180,"props":882,"children":883},{},[],{"type":43,"tag":153,"props":885,"children":886},{},[887,892,901],{"type":43,"tag":180,"props":888,"children":889},{},[890],{"type":56,"value":891},"Performance Best Practices",{"type":43,"tag":180,"props":893,"children":894},{},[895],{"type":43,"tag":189,"props":896,"children":898},{"href":897},"..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#performance-best-practices",[899],{"type":56,"value":900},"EVENTHOUSE-CONSUMPTION-CORE.md § Performance Best Practices",{"type":43,"tag":180,"props":902,"children":903},{},[904,909,911,917,919],{"type":43,"tag":52,"props":905,"children":906},{},[907],{"type":56,"value":908},"Read before writing KQL",{"type":56,"value":910}," — time filters, ",{"type":43,"tag":83,"props":912,"children":914},{"className":913},[],[915],{"type":56,"value":916},"has",{"type":56,"value":918}," vs ",{"type":43,"tag":83,"props":920,"children":922},{"className":921},[],[923],{"type":56,"value":924},"contains",{"type":43,"tag":153,"props":926,"children":927},{},[928,933,942],{"type":43,"tag":180,"props":929,"children":930},{},[931],{"type":56,"value":932},"Common Consumption Patterns",{"type":43,"tag":180,"props":934,"children":935},{},[936],{"type":43,"tag":189,"props":937,"children":939},{"href":938},"..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#common-consumption-patterns",[940],{"type":56,"value":941},"EVENTHOUSE-CONSUMPTION-CORE.md § Common Consumption Patterns",{"type":43,"tag":180,"props":943,"children":944},{},[945],{"type":56,"value":946},"Time-series, Top-N, percentile, dynamic fields",{"type":43,"tag":153,"props":948,"children":949},{},[950,955,964],{"type":43,"tag":180,"props":951,"children":952},{},[953],{"type":56,"value":954},"Gotchas, Troubleshooting, and Quick Reference",{"type":43,"tag":180,"props":956,"children":957},{},[958],{"type":43,"tag":189,"props":959,"children":961},{"href":960},"..\u002F..\u002Fcommon\u002FEVENTHOUSE-CONSUMPTION-CORE.md#gotchas-troubleshooting-and-quick-reference",[962],{"type":56,"value":963},"EVENTHOUSE-CONSUMPTION-CORE.md § Gotchas, Troubleshooting, and Quick Reference",{"type":43,"tag":180,"props":965,"children":966},{},[967],{"type":56,"value":968},"Gotchas and Troubleshooting (12 issues), Quick Reference: Consumption Capabilities by Scenario",{"type":43,"tag":153,"props":970,"children":971},{},[972,977,986],{"type":43,"tag":180,"props":973,"children":974},{},[975],{"type":56,"value":976},"Table and Column Discovery",{"type":43,"tag":180,"props":978,"children":979},{},[980],{"type":43,"tag":189,"props":981,"children":983},{"href":982},"references\u002Fdiscovery-queries.md#table-and-column-discovery",[984],{"type":56,"value":985},"discovery-queries.md § Table and Column Discovery",{"type":43,"tag":180,"props":987,"children":988},{},[989],{"type":56,"value":990},"Table Discovery, Column Statistics",{"type":43,"tag":153,"props":992,"children":993},{},[994,999,1008],{"type":43,"tag":180,"props":995,"children":996},{},[997],{"type":56,"value":998},"Function and View Discovery",{"type":43,"tag":180,"props":1000,"children":1001},{},[1002],{"type":43,"tag":189,"props":1003,"children":1005},{"href":1004},"references\u002Fdiscovery-queries.md#function-and-view-discovery",[1006],{"type":56,"value":1007},"discovery-queries.md § Function and View Discovery",{"type":43,"tag":180,"props":1009,"children":1010},{},[1011],{"type":56,"value":1012},"Function Discovery, Materialized View Discovery",{"type":43,"tag":153,"props":1014,"children":1015},{},[1016,1021,1030],{"type":43,"tag":180,"props":1017,"children":1018},{},[1019],{"type":56,"value":1020},"Policy Discovery",{"type":43,"tag":180,"props":1022,"children":1023},{},[1024],{"type":43,"tag":189,"props":1025,"children":1027},{"href":1026},"references\u002Fdiscovery-queries.md#policy-discovery",[1028],{"type":56,"value":1029},"discovery-queries.md § Policy Discovery",{"type":43,"tag":180,"props":1031,"children":1032},{},[],{"type":43,"tag":153,"props":1034,"children":1035},{},[1036,1041,1050],{"type":43,"tag":180,"props":1037,"children":1038},{},[1039],{"type":56,"value":1040},"External Tables and Ingestion Mappings",{"type":43,"tag":180,"props":1042,"children":1043},{},[1044],{"type":43,"tag":189,"props":1045,"children":1047},{"href":1046},"references\u002Fdiscovery-queries.md#external-tables-and-ingestion-mappings",[1048],{"type":56,"value":1049},"discovery-queries.md § External Tables and Ingestion Mappings",{"type":43,"tag":180,"props":1051,"children":1052},{},[1053],{"type":56,"value":1054},"External Table Discovery, Ingestion Mapping Discovery",{"type":43,"tag":153,"props":1056,"children":1057},{},[1058,1063,1072],{"type":43,"tag":180,"props":1059,"children":1060},{},[1061],{"type":56,"value":1062},"Security Discovery",{"type":43,"tag":180,"props":1064,"children":1065},{},[1066],{"type":43,"tag":189,"props":1067,"children":1069},{"href":1068},"references\u002Fdiscovery-queries.md#security-discovery",[1070],{"type":56,"value":1071},"discovery-queries.md § Security Discovery",{"type":43,"tag":180,"props":1073,"children":1074},{},[],{"type":43,"tag":153,"props":1076,"children":1077},{},[1078,1083,1092],{"type":43,"tag":180,"props":1079,"children":1080},{},[1081],{"type":56,"value":1082},"Database Overview Script",{"type":43,"tag":180,"props":1084,"children":1085},{},[1086],{"type":43,"tag":189,"props":1087,"children":1089},{"href":1088},"references\u002Fdiscovery-queries.md#database-overview-script",[1090],{"type":56,"value":1091},"discovery-queries.md § Database Overview Script",{"type":43,"tag":180,"props":1093,"children":1094},{},[],{"type":43,"tag":153,"props":1096,"children":1097},{},[1098,1103,1112],{"type":43,"tag":180,"props":1099,"children":1100},{},[1101],{"type":56,"value":1102},"Tool Stack",{"type":43,"tag":180,"props":1104,"children":1105},{},[1106],{"type":43,"tag":189,"props":1107,"children":1109},{"href":1108},"#tool-stack",[1110],{"type":56,"value":1111},"SKILL.md § Tool Stack",{"type":43,"tag":180,"props":1113,"children":1114},{},[],{"type":43,"tag":153,"props":1116,"children":1117},{},[1118,1123,1132],{"type":43,"tag":180,"props":1119,"children":1120},{},[1121],{"type":56,"value":1122},"Connection",{"type":43,"tag":180,"props":1124,"children":1125},{},[1126],{"type":43,"tag":189,"props":1127,"children":1129},{"href":1128},"#connection",[1130],{"type":56,"value":1131},"SKILL.md § Connection",{"type":43,"tag":180,"props":1133,"children":1134},{},[1135,1137,1142],{"type":56,"value":1136},"eventhouse-specific ",{"type":43,"tag":83,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":56,"value":534},{"type":56,"value":1143}," connection steps",{"type":43,"tag":153,"props":1145,"children":1146},{},[1147,1152,1161],{"type":43,"tag":180,"props":1148,"children":1149},{},[1150],{"type":56,"value":1151},"Agentic Exploration (\"Chat With My Data\")",{"type":43,"tag":180,"props":1153,"children":1154},{},[1155],{"type":43,"tag":189,"props":1156,"children":1158},{"href":1157},"#agentic-exploration",[1159],{"type":56,"value":1160},"SKILL.md § Agentic Exploration",{"type":43,"tag":180,"props":1162,"children":1163},{},[1164,1169],{"type":43,"tag":52,"props":1165,"children":1166},{},[1167],{"type":56,"value":1168},"Start here",{"type":56,"value":1170}," for data exploration",{"type":43,"tag":153,"props":1172,"children":1173},{},[1174,1179,1188],{"type":43,"tag":180,"props":1175,"children":1176},{},[1177],{"type":56,"value":1178},"Running Queries",{"type":43,"tag":180,"props":1180,"children":1181},{},[1182],{"type":43,"tag":189,"props":1183,"children":1185},{"href":1184},"#running-queries",[1186],{"type":56,"value":1187},"SKILL.md § Running Queries",{"type":43,"tag":180,"props":1189,"children":1190},{},[1191,1196],{"type":43,"tag":83,"props":1192,"children":1194},{"className":1193},[],[1195],{"type":56,"value":534},{"type":56,"value":1197},", output formatting, export",{"type":43,"tag":153,"props":1199,"children":1200},{},[1201,1206,1215],{"type":43,"tag":180,"props":1202,"children":1203},{},[1204],{"type":56,"value":1205},"Monitoring",{"type":43,"tag":180,"props":1207,"children":1208},{},[1209],{"type":43,"tag":189,"props":1210,"children":1212},{"href":1211},"#monitoring",[1213],{"type":56,"value":1214},"SKILL.md § Monitoring",{"type":43,"tag":180,"props":1216,"children":1217},{},[],{"type":43,"tag":153,"props":1219,"children":1220},{},[1221,1226,1235],{"type":43,"tag":180,"props":1222,"children":1223},{},[1224],{"type":56,"value":1225},"Must \u002F Prefer \u002F Avoid \u002F Troubleshooting",{"type":43,"tag":180,"props":1227,"children":1228},{},[1229],{"type":43,"tag":189,"props":1230,"children":1232},{"href":1231},"#must--prefer--avoid--troubleshooting",[1233],{"type":56,"value":1234},"SKILL.md § Must \u002F Prefer \u002F Avoid \u002F Troubleshooting",{"type":43,"tag":180,"props":1236,"children":1237},{},[1238,1243],{"type":43,"tag":52,"props":1239,"children":1240},{},[1241],{"type":56,"value":1242},"MUST DO \u002F AVOID \u002F PREFER",{"type":56,"value":1244}," checklists",{"type":43,"tag":153,"props":1246,"children":1247},{},[1248,1253,1262],{"type":43,"tag":180,"props":1249,"children":1250},{},[1251],{"type":56,"value":1252},"Examples",{"type":43,"tag":180,"props":1254,"children":1255},{},[1256],{"type":43,"tag":189,"props":1257,"children":1259},{"href":1258},"#examples",[1260],{"type":56,"value":1261},"SKILL.md § Examples",{"type":43,"tag":180,"props":1263,"children":1264},{},[],{"type":43,"tag":153,"props":1266,"children":1267},{},[1268,1273,1282],{"type":43,"tag":180,"props":1269,"children":1270},{},[1271],{"type":56,"value":1272},"Agent Integration Notes",{"type":43,"tag":180,"props":1274,"children":1275},{},[1276],{"type":43,"tag":189,"props":1277,"children":1279},{"href":1278},"#agent-integration-notes",[1280],{"type":56,"value":1281},"SKILL.md § Agent Integration Notes",{"type":43,"tag":180,"props":1283,"children":1284},{},[],{"type":43,"tag":1286,"props":1287,"children":1288},"hr",{},[],{"type":43,"tag":138,"props":1290,"children":1292},{"id":1291},"tool-stack",[1293],{"type":56,"value":1102},{"type":43,"tag":145,"props":1295,"children":1296},{},[1297,1318],{"type":43,"tag":149,"props":1298,"children":1299},{},[1300],{"type":43,"tag":153,"props":1301,"children":1302},{},[1303,1308,1313],{"type":43,"tag":157,"props":1304,"children":1305},{},[1306],{"type":56,"value":1307},"Tool",{"type":43,"tag":157,"props":1309,"children":1310},{},[1311],{"type":56,"value":1312},"Purpose",{"type":43,"tag":157,"props":1314,"children":1315},{},[1316],{"type":56,"value":1317},"Install",{"type":43,"tag":173,"props":1319,"children":1320},{},[1321,1346],{"type":43,"tag":153,"props":1322,"children":1323},{},[1324,1332,1337],{"type":43,"tag":180,"props":1325,"children":1326},{},[1327],{"type":43,"tag":52,"props":1328,"children":1329},{},[1330],{"type":56,"value":1331},"az cli",{"type":43,"tag":180,"props":1333,"children":1334},{},[1335],{"type":56,"value":1336},"KQL queries and management commands via Kusto REST API; Fabric control-plane discovery",{"type":43,"tag":180,"props":1338,"children":1339},{},[1340],{"type":43,"tag":83,"props":1341,"children":1343},{"className":1342},[],[1344],{"type":56,"value":1345},"winget install Microsoft.AzureCLI",{"type":43,"tag":153,"props":1347,"children":1348},{},[1349,1357,1362],{"type":43,"tag":180,"props":1350,"children":1351},{},[1352],{"type":43,"tag":52,"props":1353,"children":1354},{},[1355],{"type":56,"value":1356},"jq",{"type":43,"tag":180,"props":1358,"children":1359},{},[1360],{"type":56,"value":1361},"JSON processing and output formatting",{"type":43,"tag":180,"props":1363,"children":1364},{},[1365],{"type":43,"tag":83,"props":1366,"children":1368},{"className":1367},[],[1369],{"type":56,"value":1370},"winget install jqlang.jq",{"type":43,"tag":138,"props":1372,"children":1374},{"id":1373},"connection",[1375],{"type":56,"value":1122},{"type":43,"tag":1377,"props":1378,"children":1380},"h3",{"id":1379},"step-1-discover-kql-database-query-uri",[1381],{"type":56,"value":1382},"Step 1 — Discover KQL Database Query URI",{"type":43,"tag":1384,"props":1385,"children":1390},"pre",{"className":1386,"code":1387,"language":1388,"meta":1389,"style":1389},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Get workspace ID (if not known)\nWS_ID=$(az rest --method GET \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\" \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  | jq -r '.value[] | select(.displayName==\"MyWorkspace\") | .id')\n\n# List KQL Databases and get connection properties\naz rest --method GET \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\u002F${WS_ID}\u002FkqlDatabases\" \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  | jq '.value[] | {name: .displayName, id: .id, queryUri: .properties.queryServiceUri, dbName: .properties.databaseName}'\n","bash","",[1391],{"type":43,"tag":83,"props":1392,"children":1393},{"__ignoreMap":1389},[1394,1405,1448,1476,1502,1541,1551,1560,1584,1628,1652],{"type":43,"tag":214,"props":1395,"children":1398},{"class":1396,"line":1397},"line",1,[1399],{"type":43,"tag":214,"props":1400,"children":1402},{"style":1401},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1403],{"type":56,"value":1404},"# Get workspace ID (if not known)\n",{"type":43,"tag":214,"props":1406,"children":1408},{"class":1396,"line":1407},2,[1409,1415,1421,1427,1433,1438,1443],{"type":43,"tag":214,"props":1410,"children":1412},{"style":1411},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1413],{"type":56,"value":1414},"WS_ID",{"type":43,"tag":214,"props":1416,"children":1418},{"style":1417},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1419],{"type":56,"value":1420},"=$(",{"type":43,"tag":214,"props":1422,"children":1424},{"style":1423},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1425],{"type":56,"value":1426},"az",{"type":43,"tag":214,"props":1428,"children":1430},{"style":1429},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1431],{"type":56,"value":1432}," rest",{"type":43,"tag":214,"props":1434,"children":1435},{"style":1429},[1436],{"type":56,"value":1437}," --method",{"type":43,"tag":214,"props":1439,"children":1440},{"style":1429},[1441],{"type":56,"value":1442}," GET",{"type":43,"tag":214,"props":1444,"children":1445},{"style":1411},[1446],{"type":56,"value":1447}," \\\n",{"type":43,"tag":214,"props":1449,"children":1451},{"class":1396,"line":1450},3,[1452,1457,1462,1467,1472],{"type":43,"tag":214,"props":1453,"children":1454},{"style":1429},[1455],{"type":56,"value":1456},"  --url",{"type":43,"tag":214,"props":1458,"children":1459},{"style":1417},[1460],{"type":56,"value":1461}," \"",{"type":43,"tag":214,"props":1463,"children":1464},{"style":1429},[1465],{"type":56,"value":1466},"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces",{"type":43,"tag":214,"props":1468,"children":1469},{"style":1417},[1470],{"type":56,"value":1471},"\"",{"type":43,"tag":214,"props":1473,"children":1474},{"style":1411},[1475],{"type":56,"value":1447},{"type":43,"tag":214,"props":1477,"children":1479},{"class":1396,"line":1478},4,[1480,1485,1489,1494,1498],{"type":43,"tag":214,"props":1481,"children":1482},{"style":1429},[1483],{"type":56,"value":1484},"  --resource",{"type":43,"tag":214,"props":1486,"children":1487},{"style":1417},[1488],{"type":56,"value":1461},{"type":43,"tag":214,"props":1490,"children":1491},{"style":1429},[1492],{"type":56,"value":1493},"https:\u002F\u002Fapi.fabric.microsoft.com",{"type":43,"tag":214,"props":1495,"children":1496},{"style":1417},[1497],{"type":56,"value":1471},{"type":43,"tag":214,"props":1499,"children":1500},{"style":1411},[1501],{"type":56,"value":1447},{"type":43,"tag":214,"props":1503,"children":1505},{"class":1396,"line":1504},5,[1506,1511,1516,1521,1526,1531,1536],{"type":43,"tag":214,"props":1507,"children":1508},{"style":1417},[1509],{"type":56,"value":1510},"  |",{"type":43,"tag":214,"props":1512,"children":1513},{"style":1423},[1514],{"type":56,"value":1515}," jq",{"type":43,"tag":214,"props":1517,"children":1518},{"style":1429},[1519],{"type":56,"value":1520}," -r",{"type":43,"tag":214,"props":1522,"children":1523},{"style":1417},[1524],{"type":56,"value":1525}," '",{"type":43,"tag":214,"props":1527,"children":1528},{"style":1429},[1529],{"type":56,"value":1530},".value[] | select(.displayName==\"MyWorkspace\") | .id",{"type":43,"tag":214,"props":1532,"children":1533},{"style":1417},[1534],{"type":56,"value":1535},"'",{"type":43,"tag":214,"props":1537,"children":1538},{"style":1417},[1539],{"type":56,"value":1540},")\n",{"type":43,"tag":214,"props":1542,"children":1544},{"class":1396,"line":1543},6,[1545],{"type":43,"tag":214,"props":1546,"children":1548},{"emptyLinePlaceholder":1547},true,[1549],{"type":56,"value":1550},"\n",{"type":43,"tag":214,"props":1552,"children":1554},{"class":1396,"line":1553},7,[1555],{"type":43,"tag":214,"props":1556,"children":1557},{"style":1401},[1558],{"type":56,"value":1559},"# List KQL Databases and get connection properties\n",{"type":43,"tag":214,"props":1561,"children":1563},{"class":1396,"line":1562},8,[1564,1568,1572,1576,1580],{"type":43,"tag":214,"props":1565,"children":1566},{"style":1423},[1567],{"type":56,"value":1426},{"type":43,"tag":214,"props":1569,"children":1570},{"style":1429},[1571],{"type":56,"value":1432},{"type":43,"tag":214,"props":1573,"children":1574},{"style":1429},[1575],{"type":56,"value":1437},{"type":43,"tag":214,"props":1577,"children":1578},{"style":1429},[1579],{"type":56,"value":1442},{"type":43,"tag":214,"props":1581,"children":1582},{"style":1411},[1583],{"type":56,"value":1447},{"type":43,"tag":214,"props":1585,"children":1587},{"class":1396,"line":1586},9,[1588,1592,1596,1601,1606,1610,1615,1620,1624],{"type":43,"tag":214,"props":1589,"children":1590},{"style":1429},[1591],{"type":56,"value":1456},{"type":43,"tag":214,"props":1593,"children":1594},{"style":1417},[1595],{"type":56,"value":1461},{"type":43,"tag":214,"props":1597,"children":1598},{"style":1429},[1599],{"type":56,"value":1600},"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\u002F",{"type":43,"tag":214,"props":1602,"children":1603},{"style":1417},[1604],{"type":56,"value":1605},"${",{"type":43,"tag":214,"props":1607,"children":1608},{"style":1411},[1609],{"type":56,"value":1414},{"type":43,"tag":214,"props":1611,"children":1612},{"style":1417},[1613],{"type":56,"value":1614},"}",{"type":43,"tag":214,"props":1616,"children":1617},{"style":1429},[1618],{"type":56,"value":1619},"\u002FkqlDatabases",{"type":43,"tag":214,"props":1621,"children":1622},{"style":1417},[1623],{"type":56,"value":1471},{"type":43,"tag":214,"props":1625,"children":1626},{"style":1411},[1627],{"type":56,"value":1447},{"type":43,"tag":214,"props":1629,"children":1631},{"class":1396,"line":1630},10,[1632,1636,1640,1644,1648],{"type":43,"tag":214,"props":1633,"children":1634},{"style":1429},[1635],{"type":56,"value":1484},{"type":43,"tag":214,"props":1637,"children":1638},{"style":1417},[1639],{"type":56,"value":1461},{"type":43,"tag":214,"props":1641,"children":1642},{"style":1429},[1643],{"type":56,"value":1493},{"type":43,"tag":214,"props":1645,"children":1646},{"style":1417},[1647],{"type":56,"value":1471},{"type":43,"tag":214,"props":1649,"children":1650},{"style":1411},[1651],{"type":56,"value":1447},{"type":43,"tag":214,"props":1653,"children":1655},{"class":1396,"line":1654},11,[1656,1660,1664,1668,1673],{"type":43,"tag":214,"props":1657,"children":1658},{"style":1417},[1659],{"type":56,"value":1510},{"type":43,"tag":214,"props":1661,"children":1662},{"style":1423},[1663],{"type":56,"value":1515},{"type":43,"tag":214,"props":1665,"children":1666},{"style":1417},[1667],{"type":56,"value":1525},{"type":43,"tag":214,"props":1669,"children":1670},{"style":1429},[1671],{"type":56,"value":1672},".value[] | {name: .displayName, id: .id, queryUri: .properties.queryServiceUri, dbName: .properties.databaseName}",{"type":43,"tag":214,"props":1674,"children":1675},{"style":1417},[1676],{"type":56,"value":1677},"'\n",{"type":43,"tag":1377,"props":1679,"children":1681},{"id":1680},"step-2-set-connection-variables",[1682],{"type":56,"value":1683},"Step 2 — Set Connection Variables",{"type":43,"tag":1384,"props":1685,"children":1687},{"className":1386,"code":1686,"language":1388,"meta":1389,"style":1389},"CLUSTER_URI=\"https:\u002F\u002F\u003Ccluster>.kusto.fabric.microsoft.com\"\nDB_NAME=\"MyKqlDatabase\"\n",[1688],{"type":43,"tag":83,"props":1689,"children":1690},{"__ignoreMap":1389},[1691,1718],{"type":43,"tag":214,"props":1692,"children":1693},{"class":1396,"line":1397},[1694,1699,1704,1708,1713],{"type":43,"tag":214,"props":1695,"children":1696},{"style":1411},[1697],{"type":56,"value":1698},"CLUSTER_URI",{"type":43,"tag":214,"props":1700,"children":1701},{"style":1417},[1702],{"type":56,"value":1703},"=",{"type":43,"tag":214,"props":1705,"children":1706},{"style":1417},[1707],{"type":56,"value":1471},{"type":43,"tag":214,"props":1709,"children":1710},{"style":1429},[1711],{"type":56,"value":1712},"https:\u002F\u002F\u003Ccluster>.kusto.fabric.microsoft.com",{"type":43,"tag":214,"props":1714,"children":1715},{"style":1417},[1716],{"type":56,"value":1717},"\"\n",{"type":43,"tag":214,"props":1719,"children":1720},{"class":1396,"line":1407},[1721,1726,1730,1734,1739],{"type":43,"tag":214,"props":1722,"children":1723},{"style":1411},[1724],{"type":56,"value":1725},"DB_NAME",{"type":43,"tag":214,"props":1727,"children":1728},{"style":1417},[1729],{"type":56,"value":1703},{"type":43,"tag":214,"props":1731,"children":1732},{"style":1417},[1733],{"type":56,"value":1471},{"type":43,"tag":214,"props":1735,"children":1736},{"style":1429},[1737],{"type":56,"value":1738},"MyKqlDatabase",{"type":43,"tag":214,"props":1740,"children":1741},{"style":1417},[1742],{"type":56,"value":1717},{"type":43,"tag":1377,"props":1744,"children":1746},{"id":1745},"step-3-verify-connection",[1747],{"type":56,"value":1748},"Step 3 — Verify Connection",{"type":43,"tag":44,"props":1750,"children":1751},{},[1752],{"type":43,"tag":48,"props":1753,"children":1754},{},[1755,1760,1762,1768,1770,1775,1777,1783,1785,1790,1792,1798,1800,1806],{"type":43,"tag":52,"props":1756,"children":1757},{},[1758],{"type":56,"value":1759},"Important — body file pattern",{"type":56,"value":1761},": KQL queries contain ",{"type":43,"tag":83,"props":1763,"children":1765},{"className":1764},[],[1766],{"type":56,"value":1767},"|",{"type":56,"value":1769}," (pipe) characters which break shell\nescaping in both bash and PowerShell. ",{"type":43,"tag":52,"props":1771,"children":1772},{},[1773],{"type":56,"value":1774},"Always write the JSON body to a temp file",{"type":56,"value":1776}," and reference\nit with ",{"type":43,"tag":83,"props":1778,"children":1780},{"className":1779},[],[1781],{"type":56,"value":1782},"--body @\u003Cfile>",{"type":56,"value":1784},". This is the recommended approach for all ",{"type":43,"tag":83,"props":1786,"children":1788},{"className":1787},[],[1789],{"type":56,"value":534},{"type":56,"value":1791}," KQL calls.\nOn PowerShell, use ",{"type":43,"tag":83,"props":1793,"children":1795},{"className":1794},[],[1796],{"type":56,"value":1797},"@{db=\"X\";csl=\"...\"} | ConvertTo-Json -Compress | Out-File $env:TEMP\\kql_body.json -Encoding utf8NoBOM",{"type":56,"value":1799}," then ",{"type":43,"tag":83,"props":1801,"children":1803},{"className":1802},[],[1804],{"type":56,"value":1805},"--body \"@$env:TEMP\\kql_body.json\"",{"type":56,"value":1807},".",{"type":43,"tag":1384,"props":1809,"children":1811},{"className":1386,"code":1810,"language":1388,"meta":1389,"style":1389},"# Write body to temp file (avoids pipe escaping issues)\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyKqlDatabase\",\"csl\":\"print Message = 'Connected successfully', Cluster = current_cluster_endpoint(), Timestamp = now()\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n",[1812],{"type":43,"tag":83,"props":1813,"children":1814},{"__ignoreMap":1389},[1815,1823,1851,1859,1867,1874,1898,1931,1955,1980,1997],{"type":43,"tag":214,"props":1816,"children":1817},{"class":1396,"line":1397},[1818],{"type":43,"tag":214,"props":1819,"children":1820},{"style":1401},[1821],{"type":56,"value":1822},"# Write body to temp file (avoids pipe escaping issues)\n",{"type":43,"tag":214,"props":1824,"children":1825},{"class":1396,"line":1407},[1826,1831,1836,1841,1846],{"type":43,"tag":214,"props":1827,"children":1828},{"style":1423},[1829],{"type":56,"value":1830},"cat",{"type":43,"tag":214,"props":1832,"children":1833},{"style":1417},[1834],{"type":56,"value":1835}," >",{"type":43,"tag":214,"props":1837,"children":1838},{"style":1429},[1839],{"type":56,"value":1840}," \u002Ftmp\u002Fkql_body.json",{"type":43,"tag":214,"props":1842,"children":1843},{"style":1417},[1844],{"type":56,"value":1845}," \u003C\u003C",{"type":43,"tag":214,"props":1847,"children":1848},{"style":1417},[1849],{"type":56,"value":1850}," 'EOF'\n",{"type":43,"tag":214,"props":1852,"children":1853},{"class":1396,"line":1450},[1854],{"type":43,"tag":214,"props":1855,"children":1856},{"style":1429},[1857],{"type":56,"value":1858},"{\"db\":\"MyKqlDatabase\",\"csl\":\"print Message = 'Connected successfully', Cluster = current_cluster_endpoint(), Timestamp = now()\"}\n",{"type":43,"tag":214,"props":1860,"children":1861},{"class":1396,"line":1478},[1862],{"type":43,"tag":214,"props":1863,"children":1864},{"style":1417},[1865],{"type":56,"value":1866},"EOF\n",{"type":43,"tag":214,"props":1868,"children":1869},{"class":1396,"line":1504},[1870],{"type":43,"tag":214,"props":1871,"children":1872},{"emptyLinePlaceholder":1547},[1873],{"type":56,"value":1550},{"type":43,"tag":214,"props":1875,"children":1876},{"class":1396,"line":1543},[1877,1881,1885,1889,1894],{"type":43,"tag":214,"props":1878,"children":1879},{"style":1423},[1880],{"type":56,"value":1426},{"type":43,"tag":214,"props":1882,"children":1883},{"style":1429},[1884],{"type":56,"value":1432},{"type":43,"tag":214,"props":1886,"children":1887},{"style":1429},[1888],{"type":56,"value":1437},{"type":43,"tag":214,"props":1890,"children":1891},{"style":1429},[1892],{"type":56,"value":1893}," POST",{"type":43,"tag":214,"props":1895,"children":1896},{"style":1411},[1897],{"type":56,"value":1447},{"type":43,"tag":214,"props":1899,"children":1900},{"class":1396,"line":1553},[1901,1905,1910,1914,1918,1923,1927],{"type":43,"tag":214,"props":1902,"children":1903},{"style":1429},[1904],{"type":56,"value":1456},{"type":43,"tag":214,"props":1906,"children":1907},{"style":1417},[1908],{"type":56,"value":1909}," \"${",{"type":43,"tag":214,"props":1911,"children":1912},{"style":1411},[1913],{"type":56,"value":1698},{"type":43,"tag":214,"props":1915,"children":1916},{"style":1417},[1917],{"type":56,"value":1614},{"type":43,"tag":214,"props":1919,"children":1920},{"style":1429},[1921],{"type":56,"value":1922},"\u002Fv1\u002Frest\u002Fquery",{"type":43,"tag":214,"props":1924,"children":1925},{"style":1417},[1926],{"type":56,"value":1471},{"type":43,"tag":214,"props":1928,"children":1929},{"style":1411},[1930],{"type":56,"value":1447},{"type":43,"tag":214,"props":1932,"children":1933},{"class":1396,"line":1562},[1934,1938,1942,1947,1951],{"type":43,"tag":214,"props":1935,"children":1936},{"style":1429},[1937],{"type":56,"value":1484},{"type":43,"tag":214,"props":1939,"children":1940},{"style":1417},[1941],{"type":56,"value":1461},{"type":43,"tag":214,"props":1943,"children":1944},{"style":1429},[1945],{"type":56,"value":1946},"https:\u002F\u002Fkusto.kusto.windows.net",{"type":43,"tag":214,"props":1948,"children":1949},{"style":1417},[1950],{"type":56,"value":1471},{"type":43,"tag":214,"props":1952,"children":1953},{"style":1411},[1954],{"type":56,"value":1447},{"type":43,"tag":214,"props":1956,"children":1957},{"class":1396,"line":1586},[1958,1963,1967,1972,1976],{"type":43,"tag":214,"props":1959,"children":1960},{"style":1429},[1961],{"type":56,"value":1962},"  --headers",{"type":43,"tag":214,"props":1964,"children":1965},{"style":1417},[1966],{"type":56,"value":1461},{"type":43,"tag":214,"props":1968,"children":1969},{"style":1429},[1970],{"type":56,"value":1971},"Content-Type=application\u002Fjson",{"type":43,"tag":214,"props":1973,"children":1974},{"style":1417},[1975],{"type":56,"value":1471},{"type":43,"tag":214,"props":1977,"children":1978},{"style":1411},[1979],{"type":56,"value":1447},{"type":43,"tag":214,"props":1981,"children":1982},{"class":1396,"line":1630},[1983,1988,1993],{"type":43,"tag":214,"props":1984,"children":1985},{"style":1429},[1986],{"type":56,"value":1987},"  --body",{"type":43,"tag":214,"props":1989,"children":1990},{"style":1429},[1991],{"type":56,"value":1992}," @\u002Ftmp\u002Fkql_body.json",{"type":43,"tag":214,"props":1994,"children":1995},{"style":1411},[1996],{"type":56,"value":1447},{"type":43,"tag":214,"props":1998,"children":1999},{"class":1396,"line":1654},[2000,2004,2008,2012,2017],{"type":43,"tag":214,"props":2001,"children":2002},{"style":1417},[2003],{"type":56,"value":1510},{"type":43,"tag":214,"props":2005,"children":2006},{"style":1423},[2007],{"type":56,"value":1515},{"type":43,"tag":214,"props":2009,"children":2010},{"style":1417},[2011],{"type":56,"value":1525},{"type":43,"tag":214,"props":2013,"children":2014},{"style":1429},[2015],{"type":56,"value":2016},".Tables[0].Rows",{"type":43,"tag":214,"props":2018,"children":2019},{"style":1417},[2020],{"type":56,"value":1677},{"type":43,"tag":1286,"props":2022,"children":2023},{},[],{"type":43,"tag":138,"props":2025,"children":2027},{"id":2026},"agentic-exploration",[2028],{"type":56,"value":2029},"Agentic Exploration",{"type":43,"tag":1377,"props":2031,"children":2033},{"id":2032},"chat-with-my-data-discovery-sequence",[2034],{"type":56,"value":2035},"\"Chat With My Data\" — Discovery Sequence",{"type":43,"tag":48,"props":2037,"children":2038},{},[2039],{"type":56,"value":2040},"When the user asks to explore or query an Eventhouse without specifying tables:",{"type":43,"tag":1384,"props":2042,"children":2045},{"className":2043,"code":2044,"language":14,"meta":1389,"style":1389},"language-kql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Step 1 → .show tables                                    \u002F\u002F discover tables\nStep 2 → .show table \u003CTABLE> schema as json              \u002F\u002F understand columns + types\nStep 3 → \u003CTABLE> | take 10                               \u002F\u002F see sample data\nStep 4 → \u003CTABLE> | summarize count() by bin(Timestamp, 1h) | render timechart  \u002F\u002F shape of data\nStep 5 → Formulate targeted query based on user's question\n",[2046],{"type":43,"tag":83,"props":2047,"children":2048},{"__ignoreMap":1389},[2049,2057,2065,2073,2081],{"type":43,"tag":214,"props":2050,"children":2051},{"class":1396,"line":1397},[2052],{"type":43,"tag":214,"props":2053,"children":2054},{},[2055],{"type":56,"value":2056},"Step 1 → .show tables                                    \u002F\u002F discover tables\n",{"type":43,"tag":214,"props":2058,"children":2059},{"class":1396,"line":1407},[2060],{"type":43,"tag":214,"props":2061,"children":2062},{},[2063],{"type":56,"value":2064},"Step 2 → .show table \u003CTABLE> schema as json              \u002F\u002F understand columns + types\n",{"type":43,"tag":214,"props":2066,"children":2067},{"class":1396,"line":1450},[2068],{"type":43,"tag":214,"props":2069,"children":2070},{},[2071],{"type":56,"value":2072},"Step 3 → \u003CTABLE> | take 10                               \u002F\u002F see sample data\n",{"type":43,"tag":214,"props":2074,"children":2075},{"class":1396,"line":1478},[2076],{"type":43,"tag":214,"props":2077,"children":2078},{},[2079],{"type":56,"value":2080},"Step 4 → \u003CTABLE> | summarize count() by bin(Timestamp, 1h) | render timechart  \u002F\u002F shape of data\n",{"type":43,"tag":214,"props":2082,"children":2083},{"class":1396,"line":1504},[2084],{"type":43,"tag":214,"props":2085,"children":2086},{},[2087],{"type":56,"value":2088},"Step 5 → Formulate targeted query based on user's question\n",{"type":43,"tag":1377,"props":2090,"children":2092},{"id":2091},"schema-aware-query-generation",[2093],{"type":56,"value":2094},"Schema-Aware Query Generation",{"type":43,"tag":48,"props":2096,"children":2097},{},[2098],{"type":56,"value":2099},"After schema discovery, generate queries using actual column names and types:",{"type":43,"tag":1384,"props":2101,"children":2103},{"className":2043,"code":2102,"language":14,"meta":1389,"style":1389},"\u002F\u002F Example: user asks \"show me errors in the last hour\"\n\u002F\u002F After discovering table \"AppEvents\" with columns: Timestamp, Level, Message, Source\nAppEvents\n| where Timestamp > ago(1h)\n| where Level == \"Error\"\n| summarize ErrorCount = count() by Source, bin(Timestamp, 5m)\n| order by ErrorCount desc\n",[2104],{"type":43,"tag":83,"props":2105,"children":2106},{"__ignoreMap":1389},[2107,2115,2123,2131,2139,2147,2155],{"type":43,"tag":214,"props":2108,"children":2109},{"class":1396,"line":1397},[2110],{"type":43,"tag":214,"props":2111,"children":2112},{},[2113],{"type":56,"value":2114},"\u002F\u002F Example: user asks \"show me errors in the last hour\"\n",{"type":43,"tag":214,"props":2116,"children":2117},{"class":1396,"line":1407},[2118],{"type":43,"tag":214,"props":2119,"children":2120},{},[2121],{"type":56,"value":2122},"\u002F\u002F After discovering table \"AppEvents\" with columns: Timestamp, Level, Message, Source\n",{"type":43,"tag":214,"props":2124,"children":2125},{"class":1396,"line":1450},[2126],{"type":43,"tag":214,"props":2127,"children":2128},{},[2129],{"type":56,"value":2130},"AppEvents\n",{"type":43,"tag":214,"props":2132,"children":2133},{"class":1396,"line":1478},[2134],{"type":43,"tag":214,"props":2135,"children":2136},{},[2137],{"type":56,"value":2138},"| where Timestamp > ago(1h)\n",{"type":43,"tag":214,"props":2140,"children":2141},{"class":1396,"line":1504},[2142],{"type":43,"tag":214,"props":2143,"children":2144},{},[2145],{"type":56,"value":2146},"| where Level == \"Error\"\n",{"type":43,"tag":214,"props":2148,"children":2149},{"class":1396,"line":1543},[2150],{"type":43,"tag":214,"props":2151,"children":2152},{},[2153],{"type":56,"value":2154},"| summarize ErrorCount = count() by Source, bin(Timestamp, 5m)\n",{"type":43,"tag":214,"props":2156,"children":2157},{"class":1396,"line":1553},[2158],{"type":43,"tag":214,"props":2159,"children":2160},{},[2161],{"type":56,"value":2162},"| order by ErrorCount desc\n",{"type":43,"tag":1286,"props":2164,"children":2165},{},[],{"type":43,"tag":138,"props":2167,"children":2169},{"id":2168},"running-queries",[2170],{"type":56,"value":1178},{"type":43,"tag":1377,"props":2172,"children":2174},{"id":2173},"via-az-rest",[2175,2177],{"type":56,"value":2176},"Via ",{"type":43,"tag":83,"props":2178,"children":2180},{"className":2179},[],[2181],{"type":56,"value":534},{"type":43,"tag":44,"props":2183,"children":2184},{},[2185],{"type":43,"tag":48,"props":2186,"children":2187},{},[2188,2193,2195,2201,2203,2208],{"type":43,"tag":52,"props":2189,"children":2190},{},[2191],{"type":56,"value":2192},"Always use the temp-file pattern",{"type":56,"value":2194}," for ",{"type":43,"tag":83,"props":2196,"children":2198},{"className":2197},[],[2199],{"type":56,"value":2200},"--body",{"type":56,"value":2202}," — KQL pipes (",{"type":43,"tag":83,"props":2204,"children":2206},{"className":2205},[],[2207],{"type":56,"value":1767},{"type":56,"value":2209},") break inline shell escaping.",{"type":43,"tag":1384,"props":2211,"children":2213},{"className":1386,"code":2212,"language":1388,"meta":1389,"style":1389},"# Run a KQL query\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1h) | count\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n",[2214],{"type":43,"tag":83,"props":2215,"children":2216},{"__ignoreMap":1389},[2217,2225,2248,2256,2263,2270,2293,2324,2347,2370,2385],{"type":43,"tag":214,"props":2218,"children":2219},{"class":1396,"line":1397},[2220],{"type":43,"tag":214,"props":2221,"children":2222},{"style":1401},[2223],{"type":56,"value":2224},"# Run a KQL query\n",{"type":43,"tag":214,"props":2226,"children":2227},{"class":1396,"line":1407},[2228,2232,2236,2240,2244],{"type":43,"tag":214,"props":2229,"children":2230},{"style":1423},[2231],{"type":56,"value":1830},{"type":43,"tag":214,"props":2233,"children":2234},{"style":1417},[2235],{"type":56,"value":1835},{"type":43,"tag":214,"props":2237,"children":2238},{"style":1429},[2239],{"type":56,"value":1840},{"type":43,"tag":214,"props":2241,"children":2242},{"style":1417},[2243],{"type":56,"value":1845},{"type":43,"tag":214,"props":2245,"children":2246},{"style":1417},[2247],{"type":56,"value":1850},{"type":43,"tag":214,"props":2249,"children":2250},{"class":1396,"line":1450},[2251],{"type":43,"tag":214,"props":2252,"children":2253},{"style":1429},[2254],{"type":56,"value":2255},"{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1h) | count\"}\n",{"type":43,"tag":214,"props":2257,"children":2258},{"class":1396,"line":1478},[2259],{"type":43,"tag":214,"props":2260,"children":2261},{"style":1417},[2262],{"type":56,"value":1866},{"type":43,"tag":214,"props":2264,"children":2265},{"class":1396,"line":1504},[2266],{"type":43,"tag":214,"props":2267,"children":2268},{"emptyLinePlaceholder":1547},[2269],{"type":56,"value":1550},{"type":43,"tag":214,"props":2271,"children":2272},{"class":1396,"line":1543},[2273,2277,2281,2285,2289],{"type":43,"tag":214,"props":2274,"children":2275},{"style":1423},[2276],{"type":56,"value":1426},{"type":43,"tag":214,"props":2278,"children":2279},{"style":1429},[2280],{"type":56,"value":1432},{"type":43,"tag":214,"props":2282,"children":2283},{"style":1429},[2284],{"type":56,"value":1437},{"type":43,"tag":214,"props":2286,"children":2287},{"style":1429},[2288],{"type":56,"value":1893},{"type":43,"tag":214,"props":2290,"children":2291},{"style":1411},[2292],{"type":56,"value":1447},{"type":43,"tag":214,"props":2294,"children":2295},{"class":1396,"line":1553},[2296,2300,2304,2308,2312,2316,2320],{"type":43,"tag":214,"props":2297,"children":2298},{"style":1429},[2299],{"type":56,"value":1456},{"type":43,"tag":214,"props":2301,"children":2302},{"style":1417},[2303],{"type":56,"value":1909},{"type":43,"tag":214,"props":2305,"children":2306},{"style":1411},[2307],{"type":56,"value":1698},{"type":43,"tag":214,"props":2309,"children":2310},{"style":1417},[2311],{"type":56,"value":1614},{"type":43,"tag":214,"props":2313,"children":2314},{"style":1429},[2315],{"type":56,"value":1922},{"type":43,"tag":214,"props":2317,"children":2318},{"style":1417},[2319],{"type":56,"value":1471},{"type":43,"tag":214,"props":2321,"children":2322},{"style":1411},[2323],{"type":56,"value":1447},{"type":43,"tag":214,"props":2325,"children":2326},{"class":1396,"line":1562},[2327,2331,2335,2339,2343],{"type":43,"tag":214,"props":2328,"children":2329},{"style":1429},[2330],{"type":56,"value":1484},{"type":43,"tag":214,"props":2332,"children":2333},{"style":1417},[2334],{"type":56,"value":1461},{"type":43,"tag":214,"props":2336,"children":2337},{"style":1429},[2338],{"type":56,"value":1946},{"type":43,"tag":214,"props":2340,"children":2341},{"style":1417},[2342],{"type":56,"value":1471},{"type":43,"tag":214,"props":2344,"children":2345},{"style":1411},[2346],{"type":56,"value":1447},{"type":43,"tag":214,"props":2348,"children":2349},{"class":1396,"line":1586},[2350,2354,2358,2362,2366],{"type":43,"tag":214,"props":2351,"children":2352},{"style":1429},[2353],{"type":56,"value":1962},{"type":43,"tag":214,"props":2355,"children":2356},{"style":1417},[2357],{"type":56,"value":1461},{"type":43,"tag":214,"props":2359,"children":2360},{"style":1429},[2361],{"type":56,"value":1971},{"type":43,"tag":214,"props":2363,"children":2364},{"style":1417},[2365],{"type":56,"value":1471},{"type":43,"tag":214,"props":2367,"children":2368},{"style":1411},[2369],{"type":56,"value":1447},{"type":43,"tag":214,"props":2371,"children":2372},{"class":1396,"line":1630},[2373,2377,2381],{"type":43,"tag":214,"props":2374,"children":2375},{"style":1429},[2376],{"type":56,"value":1987},{"type":43,"tag":214,"props":2378,"children":2379},{"style":1429},[2380],{"type":56,"value":1992},{"type":43,"tag":214,"props":2382,"children":2383},{"style":1411},[2384],{"type":56,"value":1447},{"type":43,"tag":214,"props":2386,"children":2387},{"class":1396,"line":1654},[2388,2392,2396,2400,2404],{"type":43,"tag":214,"props":2389,"children":2390},{"style":1417},[2391],{"type":56,"value":1510},{"type":43,"tag":214,"props":2393,"children":2394},{"style":1423},[2395],{"type":56,"value":1515},{"type":43,"tag":214,"props":2397,"children":2398},{"style":1417},[2399],{"type":56,"value":1525},{"type":43,"tag":214,"props":2401,"children":2402},{"style":1429},[2403],{"type":56,"value":2016},{"type":43,"tag":214,"props":2405,"children":2406},{"style":1417},[2407],{"type":56,"value":1677},{"type":43,"tag":1377,"props":2409,"children":2411},{"id":2410},"output-formatting",[2412],{"type":56,"value":2413},"Output Formatting",{"type":43,"tag":1384,"props":2415,"children":2417},{"className":1386,"code":2416,"language":1388,"meta":1389,"style":1389},"# Pretty-print results as a table with jq\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\".show tables\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0] | [.Columns[].ColumnName] as $cols | .Rows[] | [$cols, .] | transpose | map({(.[0]): .[1]}) | add'\n\n# Save results to file\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1h) | summarize count() by EventType\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  --output-file results.json\n",[2418],{"type":43,"tag":83,"props":2419,"children":2420},{"__ignoreMap":1389},[2421,2429,2452,2460,2467,2474,2497,2528,2551,2574,2589,2613,2621,2630,2654,2663,2671,2679,2703,2735,2759,2783,2799],{"type":43,"tag":214,"props":2422,"children":2423},{"class":1396,"line":1397},[2424],{"type":43,"tag":214,"props":2425,"children":2426},{"style":1401},[2427],{"type":56,"value":2428},"# Pretty-print results as a table with jq\n",{"type":43,"tag":214,"props":2430,"children":2431},{"class":1396,"line":1407},[2432,2436,2440,2444,2448],{"type":43,"tag":214,"props":2433,"children":2434},{"style":1423},[2435],{"type":56,"value":1830},{"type":43,"tag":214,"props":2437,"children":2438},{"style":1417},[2439],{"type":56,"value":1835},{"type":43,"tag":214,"props":2441,"children":2442},{"style":1429},[2443],{"type":56,"value":1840},{"type":43,"tag":214,"props":2445,"children":2446},{"style":1417},[2447],{"type":56,"value":1845},{"type":43,"tag":214,"props":2449,"children":2450},{"style":1417},[2451],{"type":56,"value":1850},{"type":43,"tag":214,"props":2453,"children":2454},{"class":1396,"line":1450},[2455],{"type":43,"tag":214,"props":2456,"children":2457},{"style":1429},[2458],{"type":56,"value":2459},"{\"db\":\"MyDB\",\"csl\":\".show tables\"}\n",{"type":43,"tag":214,"props":2461,"children":2462},{"class":1396,"line":1478},[2463],{"type":43,"tag":214,"props":2464,"children":2465},{"style":1417},[2466],{"type":56,"value":1866},{"type":43,"tag":214,"props":2468,"children":2469},{"class":1396,"line":1504},[2470],{"type":43,"tag":214,"props":2471,"children":2472},{"emptyLinePlaceholder":1547},[2473],{"type":56,"value":1550},{"type":43,"tag":214,"props":2475,"children":2476},{"class":1396,"line":1543},[2477,2481,2485,2489,2493],{"type":43,"tag":214,"props":2478,"children":2479},{"style":1423},[2480],{"type":56,"value":1426},{"type":43,"tag":214,"props":2482,"children":2483},{"style":1429},[2484],{"type":56,"value":1432},{"type":43,"tag":214,"props":2486,"children":2487},{"style":1429},[2488],{"type":56,"value":1437},{"type":43,"tag":214,"props":2490,"children":2491},{"style":1429},[2492],{"type":56,"value":1893},{"type":43,"tag":214,"props":2494,"children":2495},{"style":1411},[2496],{"type":56,"value":1447},{"type":43,"tag":214,"props":2498,"children":2499},{"class":1396,"line":1553},[2500,2504,2508,2512,2516,2520,2524],{"type":43,"tag":214,"props":2501,"children":2502},{"style":1429},[2503],{"type":56,"value":1456},{"type":43,"tag":214,"props":2505,"children":2506},{"style":1417},[2507],{"type":56,"value":1909},{"type":43,"tag":214,"props":2509,"children":2510},{"style":1411},[2511],{"type":56,"value":1698},{"type":43,"tag":214,"props":2513,"children":2514},{"style":1417},[2515],{"type":56,"value":1614},{"type":43,"tag":214,"props":2517,"children":2518},{"style":1429},[2519],{"type":56,"value":1922},{"type":43,"tag":214,"props":2521,"children":2522},{"style":1417},[2523],{"type":56,"value":1471},{"type":43,"tag":214,"props":2525,"children":2526},{"style":1411},[2527],{"type":56,"value":1447},{"type":43,"tag":214,"props":2529,"children":2530},{"class":1396,"line":1562},[2531,2535,2539,2543,2547],{"type":43,"tag":214,"props":2532,"children":2533},{"style":1429},[2534],{"type":56,"value":1484},{"type":43,"tag":214,"props":2536,"children":2537},{"style":1417},[2538],{"type":56,"value":1461},{"type":43,"tag":214,"props":2540,"children":2541},{"style":1429},[2542],{"type":56,"value":1946},{"type":43,"tag":214,"props":2544,"children":2545},{"style":1417},[2546],{"type":56,"value":1471},{"type":43,"tag":214,"props":2548,"children":2549},{"style":1411},[2550],{"type":56,"value":1447},{"type":43,"tag":214,"props":2552,"children":2553},{"class":1396,"line":1586},[2554,2558,2562,2566,2570],{"type":43,"tag":214,"props":2555,"children":2556},{"style":1429},[2557],{"type":56,"value":1962},{"type":43,"tag":214,"props":2559,"children":2560},{"style":1417},[2561],{"type":56,"value":1461},{"type":43,"tag":214,"props":2563,"children":2564},{"style":1429},[2565],{"type":56,"value":1971},{"type":43,"tag":214,"props":2567,"children":2568},{"style":1417},[2569],{"type":56,"value":1471},{"type":43,"tag":214,"props":2571,"children":2572},{"style":1411},[2573],{"type":56,"value":1447},{"type":43,"tag":214,"props":2575,"children":2576},{"class":1396,"line":1630},[2577,2581,2585],{"type":43,"tag":214,"props":2578,"children":2579},{"style":1429},[2580],{"type":56,"value":1987},{"type":43,"tag":214,"props":2582,"children":2583},{"style":1429},[2584],{"type":56,"value":1992},{"type":43,"tag":214,"props":2586,"children":2587},{"style":1411},[2588],{"type":56,"value":1447},{"type":43,"tag":214,"props":2590,"children":2591},{"class":1396,"line":1654},[2592,2596,2600,2604,2609],{"type":43,"tag":214,"props":2593,"children":2594},{"style":1417},[2595],{"type":56,"value":1510},{"type":43,"tag":214,"props":2597,"children":2598},{"style":1423},[2599],{"type":56,"value":1515},{"type":43,"tag":214,"props":2601,"children":2602},{"style":1417},[2603],{"type":56,"value":1525},{"type":43,"tag":214,"props":2605,"children":2606},{"style":1429},[2607],{"type":56,"value":2608},".Tables[0] | [.Columns[].ColumnName] as $cols | .Rows[] | [$cols, .] | transpose | map({(.[0]): .[1]}) | add",{"type":43,"tag":214,"props":2610,"children":2611},{"style":1417},[2612],{"type":56,"value":1677},{"type":43,"tag":214,"props":2614,"children":2616},{"class":1396,"line":2615},12,[2617],{"type":43,"tag":214,"props":2618,"children":2619},{"emptyLinePlaceholder":1547},[2620],{"type":56,"value":1550},{"type":43,"tag":214,"props":2622,"children":2624},{"class":1396,"line":2623},13,[2625],{"type":43,"tag":214,"props":2626,"children":2627},{"style":1401},[2628],{"type":56,"value":2629},"# Save results to file\n",{"type":43,"tag":214,"props":2631,"children":2633},{"class":1396,"line":2632},14,[2634,2638,2642,2646,2650],{"type":43,"tag":214,"props":2635,"children":2636},{"style":1423},[2637],{"type":56,"value":1830},{"type":43,"tag":214,"props":2639,"children":2640},{"style":1417},[2641],{"type":56,"value":1835},{"type":43,"tag":214,"props":2643,"children":2644},{"style":1429},[2645],{"type":56,"value":1840},{"type":43,"tag":214,"props":2647,"children":2648},{"style":1417},[2649],{"type":56,"value":1845},{"type":43,"tag":214,"props":2651,"children":2652},{"style":1417},[2653],{"type":56,"value":1850},{"type":43,"tag":214,"props":2655,"children":2657},{"class":1396,"line":2656},15,[2658],{"type":43,"tag":214,"props":2659,"children":2660},{"style":1429},[2661],{"type":56,"value":2662},"{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1h) | summarize count() by EventType\"}\n",{"type":43,"tag":214,"props":2664,"children":2666},{"class":1396,"line":2665},16,[2667],{"type":43,"tag":214,"props":2668,"children":2669},{"style":1417},[2670],{"type":56,"value":1866},{"type":43,"tag":214,"props":2672,"children":2674},{"class":1396,"line":2673},17,[2675],{"type":43,"tag":214,"props":2676,"children":2677},{"emptyLinePlaceholder":1547},[2678],{"type":56,"value":1550},{"type":43,"tag":214,"props":2680,"children":2682},{"class":1396,"line":2681},18,[2683,2687,2691,2695,2699],{"type":43,"tag":214,"props":2684,"children":2685},{"style":1423},[2686],{"type":56,"value":1426},{"type":43,"tag":214,"props":2688,"children":2689},{"style":1429},[2690],{"type":56,"value":1432},{"type":43,"tag":214,"props":2692,"children":2693},{"style":1429},[2694],{"type":56,"value":1437},{"type":43,"tag":214,"props":2696,"children":2697},{"style":1429},[2698],{"type":56,"value":1893},{"type":43,"tag":214,"props":2700,"children":2701},{"style":1411},[2702],{"type":56,"value":1447},{"type":43,"tag":214,"props":2704,"children":2706},{"class":1396,"line":2705},19,[2707,2711,2715,2719,2723,2727,2731],{"type":43,"tag":214,"props":2708,"children":2709},{"style":1429},[2710],{"type":56,"value":1456},{"type":43,"tag":214,"props":2712,"children":2713},{"style":1417},[2714],{"type":56,"value":1909},{"type":43,"tag":214,"props":2716,"children":2717},{"style":1411},[2718],{"type":56,"value":1698},{"type":43,"tag":214,"props":2720,"children":2721},{"style":1417},[2722],{"type":56,"value":1614},{"type":43,"tag":214,"props":2724,"children":2725},{"style":1429},[2726],{"type":56,"value":1922},{"type":43,"tag":214,"props":2728,"children":2729},{"style":1417},[2730],{"type":56,"value":1471},{"type":43,"tag":214,"props":2732,"children":2733},{"style":1411},[2734],{"type":56,"value":1447},{"type":43,"tag":214,"props":2736,"children":2738},{"class":1396,"line":2737},20,[2739,2743,2747,2751,2755],{"type":43,"tag":214,"props":2740,"children":2741},{"style":1429},[2742],{"type":56,"value":1484},{"type":43,"tag":214,"props":2744,"children":2745},{"style":1417},[2746],{"type":56,"value":1461},{"type":43,"tag":214,"props":2748,"children":2749},{"style":1429},[2750],{"type":56,"value":1946},{"type":43,"tag":214,"props":2752,"children":2753},{"style":1417},[2754],{"type":56,"value":1471},{"type":43,"tag":214,"props":2756,"children":2757},{"style":1411},[2758],{"type":56,"value":1447},{"type":43,"tag":214,"props":2760,"children":2762},{"class":1396,"line":2761},21,[2763,2767,2771,2775,2779],{"type":43,"tag":214,"props":2764,"children":2765},{"style":1429},[2766],{"type":56,"value":1962},{"type":43,"tag":214,"props":2768,"children":2769},{"style":1417},[2770],{"type":56,"value":1461},{"type":43,"tag":214,"props":2772,"children":2773},{"style":1429},[2774],{"type":56,"value":1971},{"type":43,"tag":214,"props":2776,"children":2777},{"style":1417},[2778],{"type":56,"value":1471},{"type":43,"tag":214,"props":2780,"children":2781},{"style":1411},[2782],{"type":56,"value":1447},{"type":43,"tag":214,"props":2784,"children":2786},{"class":1396,"line":2785},22,[2787,2791,2795],{"type":43,"tag":214,"props":2788,"children":2789},{"style":1429},[2790],{"type":56,"value":1987},{"type":43,"tag":214,"props":2792,"children":2793},{"style":1429},[2794],{"type":56,"value":1992},{"type":43,"tag":214,"props":2796,"children":2797},{"style":1411},[2798],{"type":56,"value":1447},{"type":43,"tag":214,"props":2800,"children":2802},{"class":1396,"line":2801},23,[2803,2808],{"type":43,"tag":214,"props":2804,"children":2805},{"style":1429},[2806],{"type":56,"value":2807},"  --output-file",{"type":43,"tag":214,"props":2809,"children":2810},{"style":1429},[2811],{"type":56,"value":2812}," results.json\n",{"type":43,"tag":1286,"props":2814,"children":2815},{},[],{"type":43,"tag":138,"props":2817,"children":2819},{"id":2818},"monitoring",[2820],{"type":56,"value":1205},{"type":43,"tag":1384,"props":2822,"children":2824},{"className":2043,"code":2823,"language":14,"meta":1389,"style":1389},"\u002F\u002F Active queries\n.show queries\n\n\u002F\u002F Recent commands (last hour)\n.show commands\n| where StartedOn > ago(1h)\n| project StartedOn, CommandType, Text = substring(Text, 0, 80), Duration, State\n| order by StartedOn desc\n\n\u002F\u002F Ingestion failures (for context when data seems stale)\n.show ingestion failures\n| where FailedOn > ago(24h)\n| summarize count() by ErrorCode\n| top 5 by count_\n",[2825],{"type":43,"tag":83,"props":2826,"children":2827},{"__ignoreMap":1389},[2828,2836,2844,2851,2859,2867,2875,2883,2891,2898,2906,2914,2922,2930],{"type":43,"tag":214,"props":2829,"children":2830},{"class":1396,"line":1397},[2831],{"type":43,"tag":214,"props":2832,"children":2833},{},[2834],{"type":56,"value":2835},"\u002F\u002F Active queries\n",{"type":43,"tag":214,"props":2837,"children":2838},{"class":1396,"line":1407},[2839],{"type":43,"tag":214,"props":2840,"children":2841},{},[2842],{"type":56,"value":2843},".show queries\n",{"type":43,"tag":214,"props":2845,"children":2846},{"class":1396,"line":1450},[2847],{"type":43,"tag":214,"props":2848,"children":2849},{"emptyLinePlaceholder":1547},[2850],{"type":56,"value":1550},{"type":43,"tag":214,"props":2852,"children":2853},{"class":1396,"line":1478},[2854],{"type":43,"tag":214,"props":2855,"children":2856},{},[2857],{"type":56,"value":2858},"\u002F\u002F Recent commands (last hour)\n",{"type":43,"tag":214,"props":2860,"children":2861},{"class":1396,"line":1504},[2862],{"type":43,"tag":214,"props":2863,"children":2864},{},[2865],{"type":56,"value":2866},".show commands\n",{"type":43,"tag":214,"props":2868,"children":2869},{"class":1396,"line":1543},[2870],{"type":43,"tag":214,"props":2871,"children":2872},{},[2873],{"type":56,"value":2874},"| where StartedOn > ago(1h)\n",{"type":43,"tag":214,"props":2876,"children":2877},{"class":1396,"line":1553},[2878],{"type":43,"tag":214,"props":2879,"children":2880},{},[2881],{"type":56,"value":2882},"| project StartedOn, CommandType, Text = substring(Text, 0, 80), Duration, State\n",{"type":43,"tag":214,"props":2884,"children":2885},{"class":1396,"line":1562},[2886],{"type":43,"tag":214,"props":2887,"children":2888},{},[2889],{"type":56,"value":2890},"| order by StartedOn desc\n",{"type":43,"tag":214,"props":2892,"children":2893},{"class":1396,"line":1586},[2894],{"type":43,"tag":214,"props":2895,"children":2896},{"emptyLinePlaceholder":1547},[2897],{"type":56,"value":1550},{"type":43,"tag":214,"props":2899,"children":2900},{"class":1396,"line":1630},[2901],{"type":43,"tag":214,"props":2902,"children":2903},{},[2904],{"type":56,"value":2905},"\u002F\u002F Ingestion failures (for context when data seems stale)\n",{"type":43,"tag":214,"props":2907,"children":2908},{"class":1396,"line":1654},[2909],{"type":43,"tag":214,"props":2910,"children":2911},{},[2912],{"type":56,"value":2913},".show ingestion failures\n",{"type":43,"tag":214,"props":2915,"children":2916},{"class":1396,"line":2615},[2917],{"type":43,"tag":214,"props":2918,"children":2919},{},[2920],{"type":56,"value":2921},"| where FailedOn > ago(24h)\n",{"type":43,"tag":214,"props":2923,"children":2924},{"class":1396,"line":2623},[2925],{"type":43,"tag":214,"props":2926,"children":2927},{},[2928],{"type":56,"value":2929},"| summarize count() by ErrorCode\n",{"type":43,"tag":214,"props":2931,"children":2932},{"class":1396,"line":2632},[2933],{"type":43,"tag":214,"props":2934,"children":2935},{},[2936],{"type":56,"value":2937},"| top 5 by count_\n",{"type":43,"tag":1286,"props":2939,"children":2940},{},[],{"type":43,"tag":138,"props":2942,"children":2944},{"id":2943},"must-prefer-avoid-troubleshooting",[2945],{"type":56,"value":1225},{"type":43,"tag":1377,"props":2947,"children":2949},{"id":2948},"must",[2950],{"type":56,"value":2951},"Must",{"type":43,"tag":68,"props":2953,"children":2954},{},[2955,2972,2998,3021],{"type":43,"tag":72,"props":2956,"children":2957},{},[2958,2963,2964,2970],{"type":43,"tag":52,"props":2959,"children":2960},{},[2961],{"type":56,"value":2962},"Always include time filters",{"type":56,"value":204},{"type":43,"tag":83,"props":2965,"children":2967},{"className":2966},[],[2968],{"type":56,"value":2969},"where Timestamp > ago(...)",{"type":56,"value":2971}," must be present on time-series tables.",{"type":43,"tag":72,"props":2973,"children":2974},{},[2975,2980,2982,2988,2990,2996],{"type":43,"tag":52,"props":2976,"children":2977},{},[2978],{"type":56,"value":2979},"Discover schema before querying",{"type":56,"value":2981}," — run ",{"type":43,"tag":83,"props":2983,"children":2985},{"className":2984},[],[2986],{"type":56,"value":2987},".show tables",{"type":56,"value":2989}," and ",{"type":43,"tag":83,"props":2991,"children":2993},{"className":2992},[],[2994],{"type":56,"value":2995},".show table T schema as json",{"type":56,"value":2997}," first.",{"type":43,"tag":72,"props":2999,"children":3000},{},[3001,3012,3014,3019],{"type":43,"tag":52,"props":3002,"children":3003},{},[3004,3005,3010],{"type":56,"value":634},{"type":43,"tag":83,"props":3006,"children":3008},{"className":3007},[],[3009],{"type":56,"value":916},{"type":56,"value":3011}," for term search",{"type":56,"value":3013}," — indexed and fast; only fall back to ",{"type":43,"tag":83,"props":3015,"children":3017},{"className":3016},[],[3018],{"type":56,"value":924},{"type":56,"value":3020}," for substring needs.",{"type":43,"tag":72,"props":3022,"children":3023},{},[3024,3029],{"type":43,"tag":52,"props":3025,"children":3026},{},[3027],{"type":56,"value":3028},"Verify cluster URI",{"type":56,"value":3030}," — KQL Database URIs are per-item; always resolve via Fabric REST API.",{"type":43,"tag":1377,"props":3032,"children":3034},{"id":3033},"prefer",[3035],{"type":56,"value":3036},"Prefer",{"type":43,"tag":68,"props":3038,"children":3039},{},[3040,3060,3076,3090,3104],{"type":43,"tag":72,"props":3041,"children":3042},{},[3043,3051,3053,3058],{"type":43,"tag":52,"props":3044,"children":3045},{},[3046],{"type":43,"tag":83,"props":3047,"children":3049},{"className":3048},[],[3050],{"type":56,"value":534},{"type":56,"value":3052}," for CLI query sessions; ",{"type":43,"tag":52,"props":3054,"children":3055},{},[3056],{"type":56,"value":3057},"Fabric KQL MCP server",{"type":56,"value":3059}," for agent-integrated workflows.",{"type":43,"tag":72,"props":3061,"children":3062},{},[3063,3074],{"type":43,"tag":52,"props":3064,"children":3065},{},[3066,3072],{"type":43,"tag":83,"props":3067,"children":3069},{"className":3068},[],[3070],{"type":56,"value":3071},"project",{"type":56,"value":3073}," early",{"type":56,"value":3075}," to drop unneeded columns before aggregation.",{"type":43,"tag":72,"props":3077,"children":3078},{},[3079,3088],{"type":43,"tag":52,"props":3080,"children":3081},{},[3082],{"type":43,"tag":83,"props":3083,"children":3085},{"className":3084},[],[3086],{"type":56,"value":3087},"materialize()",{"type":56,"value":3089}," when a sub-expression is used multiple times.",{"type":43,"tag":72,"props":3091,"children":3092},{},[3093,3102],{"type":43,"tag":52,"props":3094,"children":3095},{},[3096],{"type":43,"tag":83,"props":3097,"children":3099},{"className":3098},[],[3100],{"type":56,"value":3101},"take 100",{"type":56,"value":3103}," for initial exploration; avoid full table scans.",{"type":43,"tag":72,"props":3105,"children":3106},{},[3107,3116,3118,3124],{"type":43,"tag":52,"props":3108,"children":3109},{},[3110],{"type":43,"tag":83,"props":3111,"children":3113},{"className":3112},[],[3114],{"type":56,"value":3115},"render timechart",{"type":56,"value":3117}," for time-series; ",{"type":43,"tag":83,"props":3119,"children":3121},{"className":3120},[],[3122],{"type":56,"value":3123},"render piechart",{"type":56,"value":3125}," for distribution.",{"type":43,"tag":1377,"props":3127,"children":3129},{"id":3128},"avoid",[3130],{"type":56,"value":3131},"Avoid",{"type":43,"tag":68,"props":3133,"children":3134},{},[3135,3161,3175,3196,3220],{"type":43,"tag":72,"props":3136,"children":3137},{},[3138,3146,3148,3153,3154,3160],{"type":43,"tag":52,"props":3139,"children":3140},{},[3141],{"type":43,"tag":83,"props":3142,"children":3144},{"className":3143},[],[3145],{"type":56,"value":924},{"type":56,"value":3147}," on large tables — full scan, not indexed. Use ",{"type":43,"tag":83,"props":3149,"children":3151},{"className":3150},[],[3152],{"type":56,"value":916},{"type":56,"value":559},{"type":43,"tag":83,"props":3155,"children":3157},{"className":3156},[],[3158],{"type":56,"value":3159},"has_cs",{"type":56,"value":1807},{"type":43,"tag":72,"props":3162,"children":3163},{},[3164,3173],{"type":43,"tag":52,"props":3165,"children":3166},{},[3167],{"type":43,"tag":83,"props":3168,"children":3170},{"className":3169},[],[3171],{"type":56,"value":3172},"join",{"type":56,"value":3174}," without filtering both sides first — causes memory explosion.",{"type":43,"tag":72,"props":3176,"children":3177},{},[3178,3187,3189,3194],{"type":43,"tag":52,"props":3179,"children":3180},{},[3181],{"type":43,"tag":83,"props":3182,"children":3184},{"className":3183},[],[3185],{"type":56,"value":3186},"SELECT *",{"type":56,"value":3188}," equivalent (",{"type":43,"tag":83,"props":3190,"children":3192},{"className":3191},[],[3193],{"type":56,"value":3071},{"type":56,"value":3195}," all columns) on wide tables.",{"type":43,"tag":72,"props":3197,"children":3198},{},[3199,3210,3212,3218],{"type":43,"tag":52,"props":3200,"children":3201},{},[3202,3204],{"type":56,"value":3203},"Missing ",{"type":43,"tag":83,"props":3205,"children":3207},{"className":3206},[],[3208],{"type":56,"value":3209},"bin()",{"type":56,"value":3211}," in time-series ",{"type":43,"tag":83,"props":3213,"children":3215},{"className":3214},[],[3216],{"type":56,"value":3217},"summarize",{"type":56,"value":3219}," — produces one row per unique timestamp.",{"type":43,"tag":72,"props":3221,"children":3222},{},[3223,3228],{"type":43,"tag":52,"props":3224,"children":3225},{},[3226],{"type":56,"value":3227},"Hardcoded cluster URIs",{"type":56,"value":3229}," — always resolve from Fabric REST API or environment variables.",{"type":43,"tag":1377,"props":3231,"children":3233},{"id":3232},"troubleshooting",[3234],{"type":56,"value":3235},"Troubleshooting",{"type":43,"tag":145,"props":3237,"children":3238},{},[3239,3255],{"type":43,"tag":149,"props":3240,"children":3241},{},[3242],{"type":43,"tag":153,"props":3243,"children":3244},{},[3245,3250],{"type":43,"tag":157,"props":3246,"children":3247},{},[3248],{"type":56,"value":3249},"Symptom",{"type":43,"tag":157,"props":3251,"children":3252},{},[3253],{"type":56,"value":3254},"Fix",{"type":43,"tag":173,"props":3256,"children":3257},{},[3258,3291,3310,3331,3356,3377],{"type":43,"tag":153,"props":3259,"children":3260},{},[3261,3271],{"type":43,"tag":180,"props":3262,"children":3263},{},[3264,3269],{"type":43,"tag":83,"props":3265,"children":3267},{"className":3266},[],[3268],{"type":56,"value":534},{"type":56,"value":3270}," auth fails",{"type":43,"tag":180,"props":3272,"children":3273},{},[3274,3276,3281,3283,3289],{"type":56,"value":3275},"Run ",{"type":43,"tag":83,"props":3277,"children":3279},{"className":3278},[],[3280],{"type":56,"value":518},{"type":56,"value":3282}," first; ensure ",{"type":43,"tag":83,"props":3284,"children":3286},{"className":3285},[],[3287],{"type":56,"value":3288},"--resource \"https:\u002F\u002Fkusto.kusto.windows.net\"",{"type":56,"value":3290}," is set",{"type":43,"tag":153,"props":3292,"children":3293},{},[3294,3299],{"type":43,"tag":180,"props":3295,"children":3296},{},[3297],{"type":56,"value":3298},"Empty results on valid table",{"type":43,"tag":180,"props":3300,"children":3301},{},[3302,3304],{"type":56,"value":3303},"Check database context; may need ",{"type":43,"tag":83,"props":3305,"children":3307},{"className":3306},[],[3308],{"type":56,"value":3309},"database(\"name\").table",{"type":43,"tag":153,"props":3311,"children":3312},{},[3313,3318],{"type":43,"tag":180,"props":3314,"children":3315},{},[3316],{"type":56,"value":3317},"Query timeout",{"type":43,"tag":180,"props":3319,"children":3320},{},[3321,3323,3329],{"type":56,"value":3322},"Add tighter time filter; check ",{"type":43,"tag":83,"props":3324,"children":3326},{"className":3325},[],[3327],{"type":56,"value":3328},".show queries",{"type":56,"value":3330}," for competing queries",{"type":43,"tag":153,"props":3332,"children":3333},{},[3334,3343],{"type":43,"tag":180,"props":3335,"children":3336},{},[3337],{"type":43,"tag":83,"props":3338,"children":3340},{"className":3339},[],[3341],{"type":56,"value":3342},"Forbidden (403)",{"type":43,"tag":180,"props":3344,"children":3345},{},[3346,3348,3354],{"type":56,"value":3347},"Request ",{"type":43,"tag":83,"props":3349,"children":3351},{"className":3350},[],[3352],{"type":56,"value":3353},"viewer",{"type":56,"value":3355}," role on the KQL Database",{"type":43,"tag":153,"props":3357,"children":3358},{},[3359,3364],{"type":43,"tag":180,"props":3360,"children":3361},{},[3362],{"type":56,"value":3363},"Results truncated",{"type":43,"tag":180,"props":3365,"children":3366},{},[3367,3369,3375],{"type":56,"value":3368},"Default limit is 500K rows; add ",{"type":43,"tag":83,"props":3370,"children":3372},{"className":3371},[],[3373],{"type":56,"value":3374},"set truncationmaxrecords = N;",{"type":56,"value":3376}," before query",{"type":43,"tag":153,"props":3378,"children":3379},{},[3380,3392],{"type":43,"tag":180,"props":3381,"children":3382},{},[3383,3385,3390],{"type":56,"value":3384},"KQL pipe ",{"type":43,"tag":83,"props":3386,"children":3388},{"className":3387},[],[3389],{"type":56,"value":1767},{"type":56,"value":3391}," breaks PowerShell or bash",{"type":43,"tag":180,"props":3393,"children":3394},{},[3395,3405,3407,3413,3415,3419],{"type":43,"tag":52,"props":3396,"children":3397},{},[3398,3400],{"type":56,"value":3399},"Never inline KQL in ",{"type":43,"tag":83,"props":3401,"children":3403},{"className":3402},[],[3404],{"type":56,"value":2200},{"type":56,"value":3406},". Write JSON to a temp file and use ",{"type":43,"tag":83,"props":3408,"children":3410},{"className":3409},[],[3411],{"type":56,"value":3412},"--body @file.json",{"type":56,"value":3414}," (see ",{"type":43,"tag":189,"props":3416,"children":3417},{"href":1184},[3418],{"type":56,"value":1178},{"type":56,"value":3420},")",{"type":43,"tag":1286,"props":3422,"children":3423},{},[],{"type":43,"tag":138,"props":3425,"children":3427},{"id":3426},"examples",[3428],{"type":56,"value":1252},{"type":43,"tag":1377,"props":3430,"children":3432},{"id":3431},"example-1-discover-and-query",[3433],{"type":56,"value":3434},"Example 1: Discover and Query",{"type":43,"tag":1384,"props":3436,"children":3438},{"className":1386,"code":3437,"language":1388,"meta":1389,"style":1389},"# 1. Set connection variables (after discovering URI via Step 1)\nCLUSTER_URI=\"https:\u002F\u002F\u003Cyour-cluster>.kusto.fabric.microsoft.com\"\nDB_NAME=\"SalesDB\"\n\n# 2. Discover tables\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C EOF\n{\"db\":\"${DB_NAME}\",\"csl\":\".show tables\"}\nEOF\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n\n# 3. Explore schema\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C EOF\n{\"db\":\"${DB_NAME}\",\"csl\":\".show table Orders schema as json\"}\nEOF\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n\n# 4. Sample data\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C EOF\n{\"db\":\"${DB_NAME}\",\"csl\":\"Orders | take 10\"}\nEOF\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  | jq '.Tables[0].Rows'\n",[3439],{"type":43,"tag":83,"props":3440,"children":3441},{"__ignoreMap":1389},[3442,3450,3474,3498,3505,3513,3537,3562,3569,3592,3623,3646,3669,3684,3707,3714,3722,3745,3769,3776,3799,3830,3853,3876,3892,3916,3924,3933,3957,3982,3990,4014,4046,4070,4094,4110],{"type":43,"tag":214,"props":3443,"children":3444},{"class":1396,"line":1397},[3445],{"type":43,"tag":214,"props":3446,"children":3447},{"style":1401},[3448],{"type":56,"value":3449},"# 1. Set connection variables (after discovering URI via Step 1)\n",{"type":43,"tag":214,"props":3451,"children":3452},{"class":1396,"line":1407},[3453,3457,3461,3465,3470],{"type":43,"tag":214,"props":3454,"children":3455},{"style":1411},[3456],{"type":56,"value":1698},{"type":43,"tag":214,"props":3458,"children":3459},{"style":1417},[3460],{"type":56,"value":1703},{"type":43,"tag":214,"props":3462,"children":3463},{"style":1417},[3464],{"type":56,"value":1471},{"type":43,"tag":214,"props":3466,"children":3467},{"style":1429},[3468],{"type":56,"value":3469},"https:\u002F\u002F\u003Cyour-cluster>.kusto.fabric.microsoft.com",{"type":43,"tag":214,"props":3471,"children":3472},{"style":1417},[3473],{"type":56,"value":1717},{"type":43,"tag":214,"props":3475,"children":3476},{"class":1396,"line":1450},[3477,3481,3485,3489,3494],{"type":43,"tag":214,"props":3478,"children":3479},{"style":1411},[3480],{"type":56,"value":1725},{"type":43,"tag":214,"props":3482,"children":3483},{"style":1417},[3484],{"type":56,"value":1703},{"type":43,"tag":214,"props":3486,"children":3487},{"style":1417},[3488],{"type":56,"value":1471},{"type":43,"tag":214,"props":3490,"children":3491},{"style":1429},[3492],{"type":56,"value":3493},"SalesDB",{"type":43,"tag":214,"props":3495,"children":3496},{"style":1417},[3497],{"type":56,"value":1717},{"type":43,"tag":214,"props":3499,"children":3500},{"class":1396,"line":1478},[3501],{"type":43,"tag":214,"props":3502,"children":3503},{"emptyLinePlaceholder":1547},[3504],{"type":56,"value":1550},{"type":43,"tag":214,"props":3506,"children":3507},{"class":1396,"line":1504},[3508],{"type":43,"tag":214,"props":3509,"children":3510},{"style":1401},[3511],{"type":56,"value":3512},"# 2. Discover tables\n",{"type":43,"tag":214,"props":3514,"children":3515},{"class":1396,"line":1543},[3516,3520,3524,3528,3532],{"type":43,"tag":214,"props":3517,"children":3518},{"style":1423},[3519],{"type":56,"value":1830},{"type":43,"tag":214,"props":3521,"children":3522},{"style":1417},[3523],{"type":56,"value":1835},{"type":43,"tag":214,"props":3525,"children":3526},{"style":1429},[3527],{"type":56,"value":1840},{"type":43,"tag":214,"props":3529,"children":3530},{"style":1417},[3531],{"type":56,"value":1845},{"type":43,"tag":214,"props":3533,"children":3534},{"style":1417},[3535],{"type":56,"value":3536}," EOF\n",{"type":43,"tag":214,"props":3538,"children":3539},{"class":1396,"line":1553},[3540,3545,3549,3553,3557],{"type":43,"tag":214,"props":3541,"children":3542},{"style":1429},[3543],{"type":56,"value":3544},"{\"db\":\"",{"type":43,"tag":214,"props":3546,"children":3547},{"style":1417},[3548],{"type":56,"value":1605},{"type":43,"tag":214,"props":3550,"children":3551},{"style":1411},[3552],{"type":56,"value":1725},{"type":43,"tag":214,"props":3554,"children":3555},{"style":1417},[3556],{"type":56,"value":1614},{"type":43,"tag":214,"props":3558,"children":3559},{"style":1429},[3560],{"type":56,"value":3561},"\",\"csl\":\".show tables\"}\n",{"type":43,"tag":214,"props":3563,"children":3564},{"class":1396,"line":1562},[3565],{"type":43,"tag":214,"props":3566,"children":3567},{"style":1417},[3568],{"type":56,"value":1866},{"type":43,"tag":214,"props":3570,"children":3571},{"class":1396,"line":1586},[3572,3576,3580,3584,3588],{"type":43,"tag":214,"props":3573,"children":3574},{"style":1423},[3575],{"type":56,"value":1426},{"type":43,"tag":214,"props":3577,"children":3578},{"style":1429},[3579],{"type":56,"value":1432},{"type":43,"tag":214,"props":3581,"children":3582},{"style":1429},[3583],{"type":56,"value":1437},{"type":43,"tag":214,"props":3585,"children":3586},{"style":1429},[3587],{"type":56,"value":1893},{"type":43,"tag":214,"props":3589,"children":3590},{"style":1411},[3591],{"type":56,"value":1447},{"type":43,"tag":214,"props":3593,"children":3594},{"class":1396,"line":1630},[3595,3599,3603,3607,3611,3615,3619],{"type":43,"tag":214,"props":3596,"children":3597},{"style":1429},[3598],{"type":56,"value":1456},{"type":43,"tag":214,"props":3600,"children":3601},{"style":1417},[3602],{"type":56,"value":1909},{"type":43,"tag":214,"props":3604,"children":3605},{"style":1411},[3606],{"type":56,"value":1698},{"type":43,"tag":214,"props":3608,"children":3609},{"style":1417},[3610],{"type":56,"value":1614},{"type":43,"tag":214,"props":3612,"children":3613},{"style":1429},[3614],{"type":56,"value":1922},{"type":43,"tag":214,"props":3616,"children":3617},{"style":1417},[3618],{"type":56,"value":1471},{"type":43,"tag":214,"props":3620,"children":3621},{"style":1411},[3622],{"type":56,"value":1447},{"type":43,"tag":214,"props":3624,"children":3625},{"class":1396,"line":1654},[3626,3630,3634,3638,3642],{"type":43,"tag":214,"props":3627,"children":3628},{"style":1429},[3629],{"type":56,"value":1484},{"type":43,"tag":214,"props":3631,"children":3632},{"style":1417},[3633],{"type":56,"value":1461},{"type":43,"tag":214,"props":3635,"children":3636},{"style":1429},[3637],{"type":56,"value":1946},{"type":43,"tag":214,"props":3639,"children":3640},{"style":1417},[3641],{"type":56,"value":1471},{"type":43,"tag":214,"props":3643,"children":3644},{"style":1411},[3645],{"type":56,"value":1447},{"type":43,"tag":214,"props":3647,"children":3648},{"class":1396,"line":2615},[3649,3653,3657,3661,3665],{"type":43,"tag":214,"props":3650,"children":3651},{"style":1429},[3652],{"type":56,"value":1962},{"type":43,"tag":214,"props":3654,"children":3655},{"style":1417},[3656],{"type":56,"value":1461},{"type":43,"tag":214,"props":3658,"children":3659},{"style":1429},[3660],{"type":56,"value":1971},{"type":43,"tag":214,"props":3662,"children":3663},{"style":1417},[3664],{"type":56,"value":1471},{"type":43,"tag":214,"props":3666,"children":3667},{"style":1411},[3668],{"type":56,"value":1447},{"type":43,"tag":214,"props":3670,"children":3671},{"class":1396,"line":2623},[3672,3676,3680],{"type":43,"tag":214,"props":3673,"children":3674},{"style":1429},[3675],{"type":56,"value":1987},{"type":43,"tag":214,"props":3677,"children":3678},{"style":1429},[3679],{"type":56,"value":1992},{"type":43,"tag":214,"props":3681,"children":3682},{"style":1411},[3683],{"type":56,"value":1447},{"type":43,"tag":214,"props":3685,"children":3686},{"class":1396,"line":2632},[3687,3691,3695,3699,3703],{"type":43,"tag":214,"props":3688,"children":3689},{"style":1417},[3690],{"type":56,"value":1510},{"type":43,"tag":214,"props":3692,"children":3693},{"style":1423},[3694],{"type":56,"value":1515},{"type":43,"tag":214,"props":3696,"children":3697},{"style":1417},[3698],{"type":56,"value":1525},{"type":43,"tag":214,"props":3700,"children":3701},{"style":1429},[3702],{"type":56,"value":2016},{"type":43,"tag":214,"props":3704,"children":3705},{"style":1417},[3706],{"type":56,"value":1677},{"type":43,"tag":214,"props":3708,"children":3709},{"class":1396,"line":2656},[3710],{"type":43,"tag":214,"props":3711,"children":3712},{"emptyLinePlaceholder":1547},[3713],{"type":56,"value":1550},{"type":43,"tag":214,"props":3715,"children":3716},{"class":1396,"line":2665},[3717],{"type":43,"tag":214,"props":3718,"children":3719},{"style":1401},[3720],{"type":56,"value":3721},"# 3. Explore schema\n",{"type":43,"tag":214,"props":3723,"children":3724},{"class":1396,"line":2673},[3725,3729,3733,3737,3741],{"type":43,"tag":214,"props":3726,"children":3727},{"style":1423},[3728],{"type":56,"value":1830},{"type":43,"tag":214,"props":3730,"children":3731},{"style":1417},[3732],{"type":56,"value":1835},{"type":43,"tag":214,"props":3734,"children":3735},{"style":1429},[3736],{"type":56,"value":1840},{"type":43,"tag":214,"props":3738,"children":3739},{"style":1417},[3740],{"type":56,"value":1845},{"type":43,"tag":214,"props":3742,"children":3743},{"style":1417},[3744],{"type":56,"value":3536},{"type":43,"tag":214,"props":3746,"children":3747},{"class":1396,"line":2681},[3748,3752,3756,3760,3764],{"type":43,"tag":214,"props":3749,"children":3750},{"style":1429},[3751],{"type":56,"value":3544},{"type":43,"tag":214,"props":3753,"children":3754},{"style":1417},[3755],{"type":56,"value":1605},{"type":43,"tag":214,"props":3757,"children":3758},{"style":1411},[3759],{"type":56,"value":1725},{"type":43,"tag":214,"props":3761,"children":3762},{"style":1417},[3763],{"type":56,"value":1614},{"type":43,"tag":214,"props":3765,"children":3766},{"style":1429},[3767],{"type":56,"value":3768},"\",\"csl\":\".show table Orders schema as json\"}\n",{"type":43,"tag":214,"props":3770,"children":3771},{"class":1396,"line":2705},[3772],{"type":43,"tag":214,"props":3773,"children":3774},{"style":1417},[3775],{"type":56,"value":1866},{"type":43,"tag":214,"props":3777,"children":3778},{"class":1396,"line":2737},[3779,3783,3787,3791,3795],{"type":43,"tag":214,"props":3780,"children":3781},{"style":1423},[3782],{"type":56,"value":1426},{"type":43,"tag":214,"props":3784,"children":3785},{"style":1429},[3786],{"type":56,"value":1432},{"type":43,"tag":214,"props":3788,"children":3789},{"style":1429},[3790],{"type":56,"value":1437},{"type":43,"tag":214,"props":3792,"children":3793},{"style":1429},[3794],{"type":56,"value":1893},{"type":43,"tag":214,"props":3796,"children":3797},{"style":1411},[3798],{"type":56,"value":1447},{"type":43,"tag":214,"props":3800,"children":3801},{"class":1396,"line":2761},[3802,3806,3810,3814,3818,3822,3826],{"type":43,"tag":214,"props":3803,"children":3804},{"style":1429},[3805],{"type":56,"value":1456},{"type":43,"tag":214,"props":3807,"children":3808},{"style":1417},[3809],{"type":56,"value":1909},{"type":43,"tag":214,"props":3811,"children":3812},{"style":1411},[3813],{"type":56,"value":1698},{"type":43,"tag":214,"props":3815,"children":3816},{"style":1417},[3817],{"type":56,"value":1614},{"type":43,"tag":214,"props":3819,"children":3820},{"style":1429},[3821],{"type":56,"value":1922},{"type":43,"tag":214,"props":3823,"children":3824},{"style":1417},[3825],{"type":56,"value":1471},{"type":43,"tag":214,"props":3827,"children":3828},{"style":1411},[3829],{"type":56,"value":1447},{"type":43,"tag":214,"props":3831,"children":3832},{"class":1396,"line":2785},[3833,3837,3841,3845,3849],{"type":43,"tag":214,"props":3834,"children":3835},{"style":1429},[3836],{"type":56,"value":1484},{"type":43,"tag":214,"props":3838,"children":3839},{"style":1417},[3840],{"type":56,"value":1461},{"type":43,"tag":214,"props":3842,"children":3843},{"style":1429},[3844],{"type":56,"value":1946},{"type":43,"tag":214,"props":3846,"children":3847},{"style":1417},[3848],{"type":56,"value":1471},{"type":43,"tag":214,"props":3850,"children":3851},{"style":1411},[3852],{"type":56,"value":1447},{"type":43,"tag":214,"props":3854,"children":3855},{"class":1396,"line":2801},[3856,3860,3864,3868,3872],{"type":43,"tag":214,"props":3857,"children":3858},{"style":1429},[3859],{"type":56,"value":1962},{"type":43,"tag":214,"props":3861,"children":3862},{"style":1417},[3863],{"type":56,"value":1461},{"type":43,"tag":214,"props":3865,"children":3866},{"style":1429},[3867],{"type":56,"value":1971},{"type":43,"tag":214,"props":3869,"children":3870},{"style":1417},[3871],{"type":56,"value":1471},{"type":43,"tag":214,"props":3873,"children":3874},{"style":1411},[3875],{"type":56,"value":1447},{"type":43,"tag":214,"props":3877,"children":3879},{"class":1396,"line":3878},24,[3880,3884,3888],{"type":43,"tag":214,"props":3881,"children":3882},{"style":1429},[3883],{"type":56,"value":1987},{"type":43,"tag":214,"props":3885,"children":3886},{"style":1429},[3887],{"type":56,"value":1992},{"type":43,"tag":214,"props":3889,"children":3890},{"style":1411},[3891],{"type":56,"value":1447},{"type":43,"tag":214,"props":3893,"children":3895},{"class":1396,"line":3894},25,[3896,3900,3904,3908,3912],{"type":43,"tag":214,"props":3897,"children":3898},{"style":1417},[3899],{"type":56,"value":1510},{"type":43,"tag":214,"props":3901,"children":3902},{"style":1423},[3903],{"type":56,"value":1515},{"type":43,"tag":214,"props":3905,"children":3906},{"style":1417},[3907],{"type":56,"value":1525},{"type":43,"tag":214,"props":3909,"children":3910},{"style":1429},[3911],{"type":56,"value":2016},{"type":43,"tag":214,"props":3913,"children":3914},{"style":1417},[3915],{"type":56,"value":1677},{"type":43,"tag":214,"props":3917,"children":3919},{"class":1396,"line":3918},26,[3920],{"type":43,"tag":214,"props":3921,"children":3922},{"emptyLinePlaceholder":1547},[3923],{"type":56,"value":1550},{"type":43,"tag":214,"props":3925,"children":3927},{"class":1396,"line":3926},27,[3928],{"type":43,"tag":214,"props":3929,"children":3930},{"style":1401},[3931],{"type":56,"value":3932},"# 4. Sample data\n",{"type":43,"tag":214,"props":3934,"children":3936},{"class":1396,"line":3935},28,[3937,3941,3945,3949,3953],{"type":43,"tag":214,"props":3938,"children":3939},{"style":1423},[3940],{"type":56,"value":1830},{"type":43,"tag":214,"props":3942,"children":3943},{"style":1417},[3944],{"type":56,"value":1835},{"type":43,"tag":214,"props":3946,"children":3947},{"style":1429},[3948],{"type":56,"value":1840},{"type":43,"tag":214,"props":3950,"children":3951},{"style":1417},[3952],{"type":56,"value":1845},{"type":43,"tag":214,"props":3954,"children":3955},{"style":1417},[3956],{"type":56,"value":3536},{"type":43,"tag":214,"props":3958,"children":3960},{"class":1396,"line":3959},29,[3961,3965,3969,3973,3977],{"type":43,"tag":214,"props":3962,"children":3963},{"style":1429},[3964],{"type":56,"value":3544},{"type":43,"tag":214,"props":3966,"children":3967},{"style":1417},[3968],{"type":56,"value":1605},{"type":43,"tag":214,"props":3970,"children":3971},{"style":1411},[3972],{"type":56,"value":1725},{"type":43,"tag":214,"props":3974,"children":3975},{"style":1417},[3976],{"type":56,"value":1614},{"type":43,"tag":214,"props":3978,"children":3979},{"style":1429},[3980],{"type":56,"value":3981},"\",\"csl\":\"Orders | take 10\"}\n",{"type":43,"tag":214,"props":3983,"children":3985},{"class":1396,"line":3984},30,[3986],{"type":43,"tag":214,"props":3987,"children":3988},{"style":1417},[3989],{"type":56,"value":1866},{"type":43,"tag":214,"props":3991,"children":3993},{"class":1396,"line":3992},31,[3994,3998,4002,4006,4010],{"type":43,"tag":214,"props":3995,"children":3996},{"style":1423},[3997],{"type":56,"value":1426},{"type":43,"tag":214,"props":3999,"children":4000},{"style":1429},[4001],{"type":56,"value":1432},{"type":43,"tag":214,"props":4003,"children":4004},{"style":1429},[4005],{"type":56,"value":1437},{"type":43,"tag":214,"props":4007,"children":4008},{"style":1429},[4009],{"type":56,"value":1893},{"type":43,"tag":214,"props":4011,"children":4012},{"style":1411},[4013],{"type":56,"value":1447},{"type":43,"tag":214,"props":4015,"children":4017},{"class":1396,"line":4016},32,[4018,4022,4026,4030,4034,4038,4042],{"type":43,"tag":214,"props":4019,"children":4020},{"style":1429},[4021],{"type":56,"value":1456},{"type":43,"tag":214,"props":4023,"children":4024},{"style":1417},[4025],{"type":56,"value":1909},{"type":43,"tag":214,"props":4027,"children":4028},{"style":1411},[4029],{"type":56,"value":1698},{"type":43,"tag":214,"props":4031,"children":4032},{"style":1417},[4033],{"type":56,"value":1614},{"type":43,"tag":214,"props":4035,"children":4036},{"style":1429},[4037],{"type":56,"value":1922},{"type":43,"tag":214,"props":4039,"children":4040},{"style":1417},[4041],{"type":56,"value":1471},{"type":43,"tag":214,"props":4043,"children":4044},{"style":1411},[4045],{"type":56,"value":1447},{"type":43,"tag":214,"props":4047,"children":4049},{"class":1396,"line":4048},33,[4050,4054,4058,4062,4066],{"type":43,"tag":214,"props":4051,"children":4052},{"style":1429},[4053],{"type":56,"value":1484},{"type":43,"tag":214,"props":4055,"children":4056},{"style":1417},[4057],{"type":56,"value":1461},{"type":43,"tag":214,"props":4059,"children":4060},{"style":1429},[4061],{"type":56,"value":1946},{"type":43,"tag":214,"props":4063,"children":4064},{"style":1417},[4065],{"type":56,"value":1471},{"type":43,"tag":214,"props":4067,"children":4068},{"style":1411},[4069],{"type":56,"value":1447},{"type":43,"tag":214,"props":4071,"children":4073},{"class":1396,"line":4072},34,[4074,4078,4082,4086,4090],{"type":43,"tag":214,"props":4075,"children":4076},{"style":1429},[4077],{"type":56,"value":1962},{"type":43,"tag":214,"props":4079,"children":4080},{"style":1417},[4081],{"type":56,"value":1461},{"type":43,"tag":214,"props":4083,"children":4084},{"style":1429},[4085],{"type":56,"value":1971},{"type":43,"tag":214,"props":4087,"children":4088},{"style":1417},[4089],{"type":56,"value":1471},{"type":43,"tag":214,"props":4091,"children":4092},{"style":1411},[4093],{"type":56,"value":1447},{"type":43,"tag":214,"props":4095,"children":4097},{"class":1396,"line":4096},35,[4098,4102,4106],{"type":43,"tag":214,"props":4099,"children":4100},{"style":1429},[4101],{"type":56,"value":1987},{"type":43,"tag":214,"props":4103,"children":4104},{"style":1429},[4105],{"type":56,"value":1992},{"type":43,"tag":214,"props":4107,"children":4108},{"style":1411},[4109],{"type":56,"value":1447},{"type":43,"tag":214,"props":4111,"children":4113},{"class":1396,"line":4112},36,[4114,4118,4122,4126,4130],{"type":43,"tag":214,"props":4115,"children":4116},{"style":1417},[4117],{"type":56,"value":1510},{"type":43,"tag":214,"props":4119,"children":4120},{"style":1423},[4121],{"type":56,"value":1515},{"type":43,"tag":214,"props":4123,"children":4124},{"style":1417},[4125],{"type":56,"value":1525},{"type":43,"tag":214,"props":4127,"children":4128},{"style":1429},[4129],{"type":56,"value":2016},{"type":43,"tag":214,"props":4131,"children":4132},{"style":1417},[4133],{"type":56,"value":1677},{"type":43,"tag":1384,"props":4135,"children":4137},{"className":2043,"code":4136,"language":14,"meta":1389,"style":1389},"\u002F\u002F 5. Analytical query (via az rest --body @file)\nOrders\n| where OrderDate > ago(30d)\n| summarize\n    TotalOrders = count(),\n    TotalRevenue = sum(Amount)\n    by bin(OrderDate, 1d)\n| render timechart\n",[4138],{"type":43,"tag":83,"props":4139,"children":4140},{"__ignoreMap":1389},[4141,4149,4157,4165,4173,4181,4189,4197],{"type":43,"tag":214,"props":4142,"children":4143},{"class":1396,"line":1397},[4144],{"type":43,"tag":214,"props":4145,"children":4146},{},[4147],{"type":56,"value":4148},"\u002F\u002F 5. Analytical query (via az rest --body @file)\n",{"type":43,"tag":214,"props":4150,"children":4151},{"class":1396,"line":1407},[4152],{"type":43,"tag":214,"props":4153,"children":4154},{},[4155],{"type":56,"value":4156},"Orders\n",{"type":43,"tag":214,"props":4158,"children":4159},{"class":1396,"line":1450},[4160],{"type":43,"tag":214,"props":4161,"children":4162},{},[4163],{"type":56,"value":4164},"| where OrderDate > ago(30d)\n",{"type":43,"tag":214,"props":4166,"children":4167},{"class":1396,"line":1478},[4168],{"type":43,"tag":214,"props":4169,"children":4170},{},[4171],{"type":56,"value":4172},"| summarize\n",{"type":43,"tag":214,"props":4174,"children":4175},{"class":1396,"line":1504},[4176],{"type":43,"tag":214,"props":4177,"children":4178},{},[4179],{"type":56,"value":4180},"    TotalOrders = count(),\n",{"type":43,"tag":214,"props":4182,"children":4183},{"class":1396,"line":1543},[4184],{"type":43,"tag":214,"props":4185,"children":4186},{},[4187],{"type":56,"value":4188},"    TotalRevenue = sum(Amount)\n",{"type":43,"tag":214,"props":4190,"children":4191},{"class":1396,"line":1553},[4192],{"type":43,"tag":214,"props":4193,"children":4194},{},[4195],{"type":56,"value":4196},"    by bin(OrderDate, 1d)\n",{"type":43,"tag":214,"props":4198,"children":4199},{"class":1396,"line":1562},[4200],{"type":43,"tag":214,"props":4201,"children":4202},{},[4203],{"type":56,"value":4204},"| render timechart\n",{"type":43,"tag":1377,"props":4206,"children":4208},{"id":4207},"example-2-cross-database-query",[4209],{"type":56,"value":4210},"Example 2: Cross-Database Query",{"type":43,"tag":1384,"props":4212,"children":4214},{"className":2043,"code":4213,"language":14,"meta":1389,"style":1389},"\u002F\u002F Query across KQL databases in the same Eventhouse\nlet orders = database(\"SalesDB\").Orders | where OrderDate > ago(7d);\nlet products = database(\"CatalogDB\").Products;\norders\n| join kind=inner (products) on ProductId\n| summarize Revenue = sum(Amount) by ProductName\n| top 10 by Revenue desc\n",[4215],{"type":43,"tag":83,"props":4216,"children":4217},{"__ignoreMap":1389},[4218,4226,4234,4242,4250,4258,4266],{"type":43,"tag":214,"props":4219,"children":4220},{"class":1396,"line":1397},[4221],{"type":43,"tag":214,"props":4222,"children":4223},{},[4224],{"type":56,"value":4225},"\u002F\u002F Query across KQL databases in the same Eventhouse\n",{"type":43,"tag":214,"props":4227,"children":4228},{"class":1396,"line":1407},[4229],{"type":43,"tag":214,"props":4230,"children":4231},{},[4232],{"type":56,"value":4233},"let orders = database(\"SalesDB\").Orders | where OrderDate > ago(7d);\n",{"type":43,"tag":214,"props":4235,"children":4236},{"class":1396,"line":1450},[4237],{"type":43,"tag":214,"props":4238,"children":4239},{},[4240],{"type":56,"value":4241},"let products = database(\"CatalogDB\").Products;\n",{"type":43,"tag":214,"props":4243,"children":4244},{"class":1396,"line":1478},[4245],{"type":43,"tag":214,"props":4246,"children":4247},{},[4248],{"type":56,"value":4249},"orders\n",{"type":43,"tag":214,"props":4251,"children":4252},{"class":1396,"line":1504},[4253],{"type":43,"tag":214,"props":4254,"children":4255},{},[4256],{"type":56,"value":4257},"| join kind=inner (products) on ProductId\n",{"type":43,"tag":214,"props":4259,"children":4260},{"class":1396,"line":1543},[4261],{"type":43,"tag":214,"props":4262,"children":4263},{},[4264],{"type":56,"value":4265},"| summarize Revenue = sum(Amount) by ProductName\n",{"type":43,"tag":214,"props":4267,"children":4268},{"class":1396,"line":1553},[4269],{"type":43,"tag":214,"props":4270,"children":4271},{},[4272],{"type":56,"value":4273},"| top 10 by Revenue desc\n",{"type":43,"tag":1377,"props":4275,"children":4277},{"id":4276},"example-3-export-results-to-file",[4278],{"type":56,"value":4279},"Example 3: Export Results to File",{"type":43,"tag":1384,"props":4281,"children":4283},{"className":1386,"code":4282,"language":1388,"meta":1389,"style":1389},"# Run query and save results to JSON\ncat > \u002Ftmp\u002Fkql_body.json \u003C\u003C 'EOF'\n{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1d) | summarize count() by EventType\"}\nEOF\n\naz rest --method POST \\\n  --url \"${CLUSTER_URI}\u002Fv1\u002Frest\u002Fquery\" \\\n  --resource \"https:\u002F\u002Fkusto.kusto.windows.net\" \\\n  --headers \"Content-Type=application\u002Fjson\" \\\n  --body @\u002Ftmp\u002Fkql_body.json \\\n  --output-file results.json\n\n# Convert to CSV with jq\ncat results.json \\\n  | jq -r '.Tables[0] | (.Columns | map(.ColumnName)), (.Rows[]) | @csv' > results.csv\n",[4284],{"type":43,"tag":83,"props":4285,"children":4286},{"__ignoreMap":1389},[4287,4295,4318,4326,4333,4340,4363,4394,4417,4440,4455,4466,4473,4481,4497],{"type":43,"tag":214,"props":4288,"children":4289},{"class":1396,"line":1397},[4290],{"type":43,"tag":214,"props":4291,"children":4292},{"style":1401},[4293],{"type":56,"value":4294},"# Run query and save results to JSON\n",{"type":43,"tag":214,"props":4296,"children":4297},{"class":1396,"line":1407},[4298,4302,4306,4310,4314],{"type":43,"tag":214,"props":4299,"children":4300},{"style":1423},[4301],{"type":56,"value":1830},{"type":43,"tag":214,"props":4303,"children":4304},{"style":1417},[4305],{"type":56,"value":1835},{"type":43,"tag":214,"props":4307,"children":4308},{"style":1429},[4309],{"type":56,"value":1840},{"type":43,"tag":214,"props":4311,"children":4312},{"style":1417},[4313],{"type":56,"value":1845},{"type":43,"tag":214,"props":4315,"children":4316},{"style":1417},[4317],{"type":56,"value":1850},{"type":43,"tag":214,"props":4319,"children":4320},{"class":1396,"line":1450},[4321],{"type":43,"tag":214,"props":4322,"children":4323},{"style":1429},[4324],{"type":56,"value":4325},"{\"db\":\"MyDB\",\"csl\":\"Events | where Timestamp > ago(1d) | summarize count() by EventType\"}\n",{"type":43,"tag":214,"props":4327,"children":4328},{"class":1396,"line":1478},[4329],{"type":43,"tag":214,"props":4330,"children":4331},{"style":1417},[4332],{"type":56,"value":1866},{"type":43,"tag":214,"props":4334,"children":4335},{"class":1396,"line":1504},[4336],{"type":43,"tag":214,"props":4337,"children":4338},{"emptyLinePlaceholder":1547},[4339],{"type":56,"value":1550},{"type":43,"tag":214,"props":4341,"children":4342},{"class":1396,"line":1543},[4343,4347,4351,4355,4359],{"type":43,"tag":214,"props":4344,"children":4345},{"style":1423},[4346],{"type":56,"value":1426},{"type":43,"tag":214,"props":4348,"children":4349},{"style":1429},[4350],{"type":56,"value":1432},{"type":43,"tag":214,"props":4352,"children":4353},{"style":1429},[4354],{"type":56,"value":1437},{"type":43,"tag":214,"props":4356,"children":4357},{"style":1429},[4358],{"type":56,"value":1893},{"type":43,"tag":214,"props":4360,"children":4361},{"style":1411},[4362],{"type":56,"value":1447},{"type":43,"tag":214,"props":4364,"children":4365},{"class":1396,"line":1553},[4366,4370,4374,4378,4382,4386,4390],{"type":43,"tag":214,"props":4367,"children":4368},{"style":1429},[4369],{"type":56,"value":1456},{"type":43,"tag":214,"props":4371,"children":4372},{"style":1417},[4373],{"type":56,"value":1909},{"type":43,"tag":214,"props":4375,"children":4376},{"style":1411},[4377],{"type":56,"value":1698},{"type":43,"tag":214,"props":4379,"children":4380},{"style":1417},[4381],{"type":56,"value":1614},{"type":43,"tag":214,"props":4383,"children":4384},{"style":1429},[4385],{"type":56,"value":1922},{"type":43,"tag":214,"props":4387,"children":4388},{"style":1417},[4389],{"type":56,"value":1471},{"type":43,"tag":214,"props":4391,"children":4392},{"style":1411},[4393],{"type":56,"value":1447},{"type":43,"tag":214,"props":4395,"children":4396},{"class":1396,"line":1562},[4397,4401,4405,4409,4413],{"type":43,"tag":214,"props":4398,"children":4399},{"style":1429},[4400],{"type":56,"value":1484},{"type":43,"tag":214,"props":4402,"children":4403},{"style":1417},[4404],{"type":56,"value":1461},{"type":43,"tag":214,"props":4406,"children":4407},{"style":1429},[4408],{"type":56,"value":1946},{"type":43,"tag":214,"props":4410,"children":4411},{"style":1417},[4412],{"type":56,"value":1471},{"type":43,"tag":214,"props":4414,"children":4415},{"style":1411},[4416],{"type":56,"value":1447},{"type":43,"tag":214,"props":4418,"children":4419},{"class":1396,"line":1586},[4420,4424,4428,4432,4436],{"type":43,"tag":214,"props":4421,"children":4422},{"style":1429},[4423],{"type":56,"value":1962},{"type":43,"tag":214,"props":4425,"children":4426},{"style":1417},[4427],{"type":56,"value":1461},{"type":43,"tag":214,"props":4429,"children":4430},{"style":1429},[4431],{"type":56,"value":1971},{"type":43,"tag":214,"props":4433,"children":4434},{"style":1417},[4435],{"type":56,"value":1471},{"type":43,"tag":214,"props":4437,"children":4438},{"style":1411},[4439],{"type":56,"value":1447},{"type":43,"tag":214,"props":4441,"children":4442},{"class":1396,"line":1630},[4443,4447,4451],{"type":43,"tag":214,"props":4444,"children":4445},{"style":1429},[4446],{"type":56,"value":1987},{"type":43,"tag":214,"props":4448,"children":4449},{"style":1429},[4450],{"type":56,"value":1992},{"type":43,"tag":214,"props":4452,"children":4453},{"style":1411},[4454],{"type":56,"value":1447},{"type":43,"tag":214,"props":4456,"children":4457},{"class":1396,"line":1654},[4458,4462],{"type":43,"tag":214,"props":4459,"children":4460},{"style":1429},[4461],{"type":56,"value":2807},{"type":43,"tag":214,"props":4463,"children":4464},{"style":1429},[4465],{"type":56,"value":2812},{"type":43,"tag":214,"props":4467,"children":4468},{"class":1396,"line":2615},[4469],{"type":43,"tag":214,"props":4470,"children":4471},{"emptyLinePlaceholder":1547},[4472],{"type":56,"value":1550},{"type":43,"tag":214,"props":4474,"children":4475},{"class":1396,"line":2623},[4476],{"type":43,"tag":214,"props":4477,"children":4478},{"style":1401},[4479],{"type":56,"value":4480},"# Convert to CSV with jq\n",{"type":43,"tag":214,"props":4482,"children":4483},{"class":1396,"line":2632},[4484,4488,4493],{"type":43,"tag":214,"props":4485,"children":4486},{"style":1423},[4487],{"type":56,"value":1830},{"type":43,"tag":214,"props":4489,"children":4490},{"style":1429},[4491],{"type":56,"value":4492}," results.json",{"type":43,"tag":214,"props":4494,"children":4495},{"style":1411},[4496],{"type":56,"value":1447},{"type":43,"tag":214,"props":4498,"children":4499},{"class":1396,"line":2656},[4500,4504,4508,4512,4516,4521,4525,4529],{"type":43,"tag":214,"props":4501,"children":4502},{"style":1417},[4503],{"type":56,"value":1510},{"type":43,"tag":214,"props":4505,"children":4506},{"style":1423},[4507],{"type":56,"value":1515},{"type":43,"tag":214,"props":4509,"children":4510},{"style":1429},[4511],{"type":56,"value":1520},{"type":43,"tag":214,"props":4513,"children":4514},{"style":1417},[4515],{"type":56,"value":1525},{"type":43,"tag":214,"props":4517,"children":4518},{"style":1429},[4519],{"type":56,"value":4520},".Tables[0] | (.Columns | map(.ColumnName)), (.Rows[]) | @csv",{"type":43,"tag":214,"props":4522,"children":4523},{"style":1417},[4524],{"type":56,"value":1535},{"type":43,"tag":214,"props":4526,"children":4527},{"style":1417},[4528],{"type":56,"value":1835},{"type":43,"tag":214,"props":4530,"children":4531},{"style":1429},[4532],{"type":56,"value":4533}," results.csv\n",{"type":43,"tag":1286,"props":4535,"children":4536},{},[],{"type":43,"tag":138,"props":4538,"children":4540},{"id":4539},"agent-integration-notes",[4541],{"type":56,"value":1272},{"type":43,"tag":68,"props":4543,"children":4544},{},[4545,4557,4568,4580],{"type":43,"tag":72,"props":4546,"children":4547},{},[4548,4550,4555],{"type":56,"value":4549},"This skill is ",{"type":43,"tag":52,"props":4551,"children":4552},{},[4553],{"type":56,"value":4554},"read-only",{"type":56,"value":4556}," — it does not create, alter, or drop database objects.",{"type":43,"tag":72,"props":4558,"children":4559},{},[4560,4562,4567],{"type":56,"value":4561},"For authoring operations (table management, ingestion, policies), delegate to ",{"type":43,"tag":52,"props":4563,"children":4564},{},[4565],{"type":56,"value":4566},"eventhouse-authoring-cli",{"type":56,"value":1807},{"type":43,"tag":72,"props":4569,"children":4570},{},[4571,4573,4578],{"type":56,"value":4572},"For cross-workload orchestration (Spark + SQL + KQL), delegate to the ",{"type":43,"tag":52,"props":4574,"children":4575},{},[4576],{"type":56,"value":4577},"FabricDataEngineer",{"type":56,"value":4579}," agent.",{"type":43,"tag":72,"props":4581,"children":4582},{},[4583,4585,4589,4591,4597,4599,4605,4607,4612],{"type":56,"value":4584},"The ",{"type":43,"tag":52,"props":4586,"children":4587},{},[4588],{"type":56,"value":3057},{"type":56,"value":4590}," (",{"type":43,"tag":83,"props":4592,"children":4594},{"className":4593},[],[4595],{"type":56,"value":4596},"fabric-kql",{"type":56,"value":4598}," in ",{"type":43,"tag":83,"props":4600,"children":4602},{"className":4601},[],[4603],{"type":56,"value":4604},"mcp-setup\u002Fmcp-config-template.json",{"type":56,"value":4606},") can be used as an alternative to ",{"type":43,"tag":83,"props":4608,"children":4610},{"className":4609},[],[4611],{"type":56,"value":534},{"type":56,"value":4613}," for agent-integrated query execution.",{"type":43,"tag":4615,"props":4616,"children":4617},"style",{},[4618],{"type":56,"value":4619},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4621,"total":2705},[4622,4633,4654,4672,4688,4701,4709],{"slug":64,"name":64,"fn":4623,"description":4624,"org":4625,"tags":4626,"stars":26,"repoUrl":27,"updatedAt":4632},"check for Fabric skill marketplace updates","Check an installed skills-for-fabric plugin bundle or git clone for updates, show the matching changelog, and provide host-appropriate update guidance. Use when the user wants to: (1) check for skill updates, (2) see what changed, (3) verify the installed version. Triggers: \"check for updates\", \"am I up to date\", \"what version\", \"update skills\", \"show changelog\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4627,4628,4629],{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":4630,"slug":4631,"type":15},"Operations","operations","2026-07-24T05:41:25.892114",{"slug":4634,"name":4634,"fn":4635,"description":4636,"org":4637,"tags":4638,"stars":26,"repoUrl":27,"updatedAt":4653},"databricks-migration","migrate Databricks notebooks to Microsoft Fabric","Port Databricks notebooks and jobs to Microsoft Fabric. Provides an exhaustive dbutils to notebookutils substitution table: fs operations (runtime mounts or OneLake Shortcuts), secret scope to Key Vault URL conversion, notebook run and exit, widget replacement with parameter-tagged cells, and library install replacement with Fabric Environments. Covers Unity Catalog three-level namespace reduction to Lakehouse two-level schemas, DBFS path conversion to OneLake, Databricks Jobs to Spark Job Definitions, MLflow tracking URI removal, and Photon to Native Execution Engine substitution. Use when the user wants to: (1) replace dbutils with notebookutils, (2) collapse Unity Catalog namespaces to Lakehouse schemas, (3) convert Databricks Jobs or Delta Live Tables. Triggers: \"migrate from databricks\", \"databricks to fabric\", \"dbutils to notebookutils\", \"dbutils fabric\", \"unity catalog migration\", \"dbfs to onelake\", \"databricks notebook migration\", \"delta live tables fabric\", \"photon native execution\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4639,4642,4645,4646,4647,4650],{"name":4640,"slug":4641,"type":15},"Data Engineering","data-engineering",{"name":4643,"slug":4644,"type":15},"Databricks","databricks",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":4648,"slug":4649,"type":15},"Migration","migration",{"name":4651,"slug":4652,"type":15},"Notebooks","notebooks","2026-07-24T05:41:22.914341",{"slug":4655,"name":4655,"fn":4656,"description":4657,"org":4658,"tags":4659,"stars":26,"repoUrl":27,"updatedAt":4671},"dataflows-authoring-cli","manage Microsoft Fabric Dataflows via CLI","Create, update, delete, and refresh Fabric Dataflows Gen2 with write-side CLI via Fabric APIs. Build mashup.pq and queryMetadata.json, preview candidate M with executeQuery\u002FcustomMashupDocument, bind connections, and configure output destinations. For saved query execution or refresh-status reads, use `dataflows-consumption-cli`. If a request explicitly insists on the Dataflows consumption or read-only path for a mutation, do not route here; let consumption refuse before any separately confirmed authoring handoff. Triggers: \"create dataflow\", \"update dataflow\", \"delete dataflow\", \"trigger dataflow refresh\", \"preview Power Query M\", \"preview before save\", \"customMashupDocument\", \"create Fabric data source connection\", \"create SQL Server source REST\", \"POST \u002Fv1\u002Fconnections\", \"supportedConnectionTypes\", \"passwordReference\", \"bind connection\", \"dataflow output destination\", \"dataflow write to lakehouse\", \"dataflow write to warehouse\", \"dataflow write to ADX\", \"DataDestinations annotation\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4660,4663,4664,4667,4668],{"name":4661,"slug":4662,"type":15},"CLI","cli",{"name":4640,"slug":4641,"type":15},{"name":4665,"slug":4666,"type":15},"Data Pipeline","data-pipeline",{"name":21,"slug":22,"type":15},{"name":4669,"slug":4670,"type":15},"REST API","rest-api","2026-07-31T05:54:59.059517",{"slug":4673,"name":4673,"fn":4674,"description":4675,"org":4676,"tags":4677,"stars":26,"repoUrl":27,"updatedAt":4687},"e2e-medallion-architecture","implement Medallion Architecture in Microsoft Fabric","Plan and implement end-to-end Microsoft Fabric data platforms and Medallion Architecture (Bronze\u002FSilver\u002FGold) lakehouse patterns using PySpark, Delta Lake, Lakehouse\u002FWarehouse items, Fabric Pipelines, and semantic-model handoff. Use when the user wants to: (1) design a Bronze\u002FSilver\u002FGold data lakehouse, (2) plan an ingestion-to-semantic-model Fabric data platform, (3) set up multi-layer workspaces with lakehouses for each tier, (4) build ingestion-to-analytics pipelines with data quality enforcement, (5) orchestrate Bronze-to-Silver-to-Gold flows via notebooks. For natural-language business questions over existing Power BI report data, use `fabriciq`. Triggers: \"medallion architecture\", \"bronze silver gold\", \"lakehouse layers\", \"e2e data pipeline\", \"end-to-end lakehouse\", \"data lakehouse pattern\", \"multi-layer lakehouse\", \"build medallion\", \"setup medallion\", \"end-to-end Fabric data platform\", \"bronze silver gold platform\", \"ingestion semantic model platform\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4678,4681,4682,4683,4684],{"name":4679,"slug":4680,"type":15},"Architecture","architecture",{"name":4640,"slug":4641,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":4685,"slug":4686,"type":15},"PySpark","pyspark","2026-07-31T05:54:57.038396",{"slug":4566,"name":4566,"fn":4689,"description":4690,"org":4691,"tags":4692,"stars":26,"repoUrl":27,"updatedAt":4700},"manage Fabric Eventhouse and KQL databases","Execute KQL management commands (table management, ingestion, policies, functions, materialized views) against Fabric Eventhouse and KQL Databases via CLI. Use when the user wants to:\n  1. Create or alter KQL tables, columns, or functions\n  2. Ingest data into an Eventhouse (inline, from storage, streaming)\n  3. Configure retention, caching, or partitioning policies\n  4. Create or manage materialized views and update policies\n  5. Manage data mappings for ingestion pipelines\n  6. Deploy KQL schema via scripts\nTriggers: \"create kql table\", \"kql ingestion\", \"ingest into eventhouse\", \"kql function\", \"materialized view\", \"kql retention policy\", \"eventhouse schema\", \"kql authoring\", \"create eventhouse table\", \"kql mapping\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4693,4696,4697,4698,4699],{"name":4694,"slug":4695,"type":15},"Database","database",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":4630,"slug":4631,"type":15},"2026-04-06T18:36:51.340409",{"slug":4,"name":4,"fn":5,"description":6,"org":4702,"tags":4703,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4704,4705,4706,4707,4708],{"name":24,"slug":25,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":17,"slug":18,"type":15},{"slug":4710,"name":4710,"fn":4711,"description":4712,"org":4713,"tags":4714,"stars":26,"repoUrl":27,"updatedAt":4719},"eventstream-consumption-cli","monitor Fabric Eventstream ingestion pipelines","List, inspect, and monitor Fabric Eventstream real-time ingestion pipelines via the Items REST API. Discover Eventstreams across workspaces, decode base64 graph topologies tracing event flow from source through operators to destination nodes. Validate connection IDs, wiring, retention policies (1-90 days), and throughput levels. Retrieve Custom Endpoint Kafka credentials via Topology API. **Invoke this skill** to: (1) list Eventstreams, (2) inspect Eventstream topology showing sources and destinations, (3) validate Eventstream configurations, (4) check Eventstream retention policy and throughput level, (5) get connection strings. Triggers: \"list eventstreams\", \"inspect eventstream\", \"describe eventstream topology\", \"eventstream operator nodes\", \"eventstream sources and destinations\", \"eventstream health\", \"eventstream status\", \"eventstream configuration\", \"eventstream retention\", \"eventstream throughput level\", \"eventstream connection string\", \"custom endpoint credentials\", \"check eventstream\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4715,4716,4717,4718],{"name":4661,"slug":4662,"type":15},{"name":4640,"slug":4641,"type":15},{"name":21,"slug":22,"type":15},{"name":1205,"slug":2818,"type":15},"2026-07-31T05:55:03.045486",{"items":4721,"total":4910},[4722,4744,4765,4782,4797,4814,4825,4838,4853,4868,4885,4898],{"slug":4723,"name":4723,"fn":4724,"description":4725,"org":4726,"tags":4727,"stars":4741,"repoUrl":4742,"updatedAt":4743},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4728,4731,4734,4735,4738],{"name":4729,"slug":4730,"type":15},"Engineering","engineering",{"name":4732,"slug":4733,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":4736,"slug":4737,"type":15},"Project Management","project-management",{"name":4739,"slug":4740,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":4745,"name":4745,"fn":4746,"description":4747,"org":4748,"tags":4749,"stars":4762,"repoUrl":4763,"updatedAt":4764},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4750,4753,4756,4759],{"name":4751,"slug":4752,"type":15},".NET","net",{"name":4754,"slug":4755,"type":15},"Agents","agents",{"name":4757,"slug":4758,"type":15},"Azure","azure",{"name":4760,"slug":4761,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":4766,"name":4766,"fn":4767,"description":4768,"org":4769,"tags":4770,"stars":4762,"repoUrl":4763,"updatedAt":4781},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4771,4772,4773,4776,4779,4780],{"name":24,"slug":25,"type":15},{"name":4757,"slug":4758,"type":15},{"name":4774,"slug":4775,"type":15},"Data Analysis","data-analysis",{"name":4777,"slug":4778,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1205,"slug":2818,"type":15},"2026-05-13T06:14:16.261754",{"slug":4783,"name":4783,"fn":4784,"description":4785,"org":4786,"tags":4787,"stars":4762,"repoUrl":4763,"updatedAt":4796},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4788,4791,4792,4793],{"name":4789,"slug":4790,"type":15},"AI Infrastructure","ai-infrastructure",{"name":4757,"slug":4758,"type":15},{"name":4777,"slug":4778,"type":15},{"name":4794,"slug":4795,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":4798,"name":4798,"fn":4799,"description":4800,"org":4801,"tags":4802,"stars":4762,"repoUrl":4763,"updatedAt":4813},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4803,4804,4807,4808,4809,4812],{"name":4757,"slug":4758,"type":15},{"name":4805,"slug":4806,"type":15},"Compliance","compliance",{"name":4760,"slug":4761,"type":15},{"name":9,"slug":8,"type":15},{"name":4810,"slug":4811,"type":15},"Python","python",{"name":4794,"slug":4795,"type":15},"2026-07-18T05:14:23.017504",{"slug":4815,"name":4815,"fn":4816,"description":4817,"org":4818,"tags":4819,"stars":4762,"repoUrl":4763,"updatedAt":4824},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4820,4821,4822,4823],{"name":24,"slug":25,"type":15},{"name":4757,"slug":4758,"type":15},{"name":4760,"slug":4761,"type":15},{"name":4810,"slug":4811,"type":15},"2026-07-31T05:54:29.068751",{"slug":4826,"name":4826,"fn":4827,"description":4828,"org":4829,"tags":4830,"stars":4762,"repoUrl":4763,"updatedAt":4837},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4831,4834,4835,4836],{"name":4832,"slug":4833,"type":15},"API Development","api-development",{"name":4757,"slug":4758,"type":15},{"name":9,"slug":8,"type":15},{"name":4810,"slug":4811,"type":15},"2026-07-18T05:14:16.988376",{"slug":4839,"name":4839,"fn":4840,"description":4841,"org":4842,"tags":4843,"stars":4762,"repoUrl":4763,"updatedAt":4852},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4844,4845,4848,4851],{"name":4757,"slug":4758,"type":15},{"name":4846,"slug":4847,"type":15},"Computer Vision","computer-vision",{"name":4849,"slug":4850,"type":15},"Images","images",{"name":4810,"slug":4811,"type":15},"2026-07-18T05:14:18.007737",{"slug":4854,"name":4854,"fn":4855,"description":4856,"org":4857,"tags":4858,"stars":4762,"repoUrl":4763,"updatedAt":4867},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4859,4860,4863,4866],{"name":4757,"slug":4758,"type":15},{"name":4861,"slug":4862,"type":15},"Configuration","configuration",{"name":4864,"slug":4865,"type":15},"Feature Flags","feature-flags",{"name":4777,"slug":4778,"type":15},"2026-07-03T16:32:01.278468",{"slug":4869,"name":4869,"fn":4870,"description":4871,"org":4872,"tags":4873,"stars":4762,"repoUrl":4763,"updatedAt":4884},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4874,4877,4878,4881],{"name":4875,"slug":4876,"type":15},"Cosmos DB","cosmos-db",{"name":4694,"slug":4695,"type":15},{"name":4879,"slug":4880,"type":15},"NoSQL","nosql",{"name":4882,"slug":4883,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":4886,"name":4886,"fn":4870,"description":4887,"org":4888,"tags":4889,"stars":4762,"repoUrl":4763,"updatedAt":4897},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4890,4891,4892,4893,4894],{"name":4875,"slug":4876,"type":15},{"name":4694,"slug":4695,"type":15},{"name":9,"slug":8,"type":15},{"name":4879,"slug":4880,"type":15},{"name":4895,"slug":4896,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":4899,"name":4899,"fn":4900,"description":4901,"org":4902,"tags":4903,"stars":4762,"repoUrl":4763,"updatedAt":4909},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4904,4905,4906,4907,4908],{"name":4757,"slug":4758,"type":15},{"name":4875,"slug":4876,"type":15},{"name":4694,"slug":4695,"type":15},{"name":4777,"slug":4778,"type":15},{"name":4879,"slug":4880,"type":15},"2026-05-13T06:14:17.582229",267]