Last updated: 2026-07-15

Kusto / KQL (Azure Data Explorer)

Jam SQL Studio connects to Azure Data Explorer (Kusto) clusters and their App Insights / Log Analytics proxies. Run KQL with schema-aware IntelliSense, browse tables read-only in Table Explorer, chart | render results, and carry your Kusto connections over when you migrate from Azure Data Studio.

What is Kusto / KQL?

Kusto is the engine behind Azure Data Explorer (ADX), Microsoft's service for fast, interactive analytics over large volumes of log, event, and telemetry data. You query it with KQL (Kusto Query Language), a read-focused, pipe-based language distinct from SQL. Because ADX is append-only — data is ingested, not edited in place — Jam SQL Studio treats Kusto as a read-only analytics engine.

Connect to a cluster

Add a connection and pick Azure Data Explorer as the engine. The connection form adapts to Kusto:

  • Cluster URL — paste the full cluster URL (e.g. https://mycluster.westeurope.kusto.windows.net). A bare hostname is auto-prefixed with https:// and trailing slashes are trimmed. This field holds the whole URL — there is no separate host/port.
  • Database — the database within the cluster to open.

Kusto uses Microsoft Entra ID (Azure AD) authentication — there is no SQL login or Windows auth, and the connection is always HTTPS. Three sign-in methods are offered:

  • Microsoft Entra ID (Interactive Browser) — the default; a browser window prompts for your Azure sign-in (MFA supported).
  • Service Principal (client ID + secret) — for automation / shared credentials. Fill Client ID, Client Secret, and the Tenant ID (required for this method).
  • Azure CLI (az login) — reuses the token from a prior az login on your machine.

App Insights & Log Analytics proxies

Application Insights and Log Analytics expose an ADX query proxy, so their URLs connect the same way as a cluster:

  • Application Insights — https://ade.applicationinsights.io/subscriptions/…
  • Log Analytics — https://ade.loganalytics.io/subscriptions/…

A proxy exposes exactly one database, named after the resource (the App Insights component or the Log Analytics workspace). The connection form shows a hint when it recognises a proxy URL; the resource's own tenant sign-in applies. Object Explorer, queries, IntelliSense and charts all work as they do on a cluster, with one difference: a proxy has no materialized views or external tables, so those two folders don't appear in the tree.

Don't want to copy the proxy URL by hand? Click Browse Azure… on the connection form to pick an App Insights component or Log Analytics workspace straight from your signed-in Azure account — see Browse Azure for the full picker walkthrough.

The New Connection dialog with the Azure Data Explorer engine selected, a Cluster URL field holding an App Insights proxy URL with the proxy helper hint below it, and the Microsoft Entra ID (Interactive Browser) authentication dropdown.
The connection form adapts to Kusto: one Cluster URL field (clusters and ade.* proxies alike), Entra ID sign-in methods, and a hint when a proxy URL is recognised.

Query & IntelliSense

Open a query tab on a Kusto connection and write KQL. The editor uses Microsoft's Kusto language service, fed with your cluster's schema, so you get schema-aware completions, hover, and signature help for tables, columns, functions, and operators.

  • Statements are separated by a blank line, matching the Azure Data Explorer web UI — run several KQL statements from one tab, and each returns its own result set.
  • .show commands run (e.g. .show tables, .show version) alongside queries.
  • Cancel a running query from the toolbar — cancellation is sent server-side.

Read-only Table Explorer

Open any Kusto table in Table Explorer to browse its rows with filtering, sorting, and paging — Jam SQL Studio generates the equivalent KQL for you. Because ADX is append-only, row editing is disabled: there are no add/edit/delete affordances on a Kusto table, and the grid is browse-only.

Without an explicit sort, paging follows the engine's natural row order, which Kusto does not guarantee to be stable across pages. Add a sort when you need deterministic paging.
Table Explorer browsing a Kusto table with filter and sort controls in the toolbar, a data grid including a dynamic JSON payload column, and the Edit Mode button disabled.
Browse, filter, and sort Kusto tables — Edit Mode stays disabled because ADX is append-only.

Filter fast: enum, JSON & loose-foreign-key chips

Read-only doesn't mean slow to explore. The same metadata-driven filter chips that speed up SQL browsing work on Kusto tables — built for exactly the "slice a huge telemetry table in seconds" workflow:

  • Enum columns. Low-cardinality columns — severity, event type, region — get a value-picker chip. Jam SQL Studio samples the distinct values and emits | where Column in ("A", "B"). Declare a column as an enum from its header, or let detection surface it.
  • JSON columns. Kusto dynamic columns are treated as structured JSON: peek the shape, inspect nested structure, and filter by path — a path filter emits the matching KQL dynamic accessor, e.g. | where customDimensions.tenant == "acme".
  • Loose foreign keys. Azure Data Explorer has no foreign-key constraints, but you can declare logical references between columns (even across tables) and navigate them read-only in Table Explorer, so jumping from an id to its related rows is one click.

All three live in the per-database MetaInfo layer and are exportable, so you can share your definitions with teammates. They're read-only helpers — nothing is ever written back to the cluster.

A Kusto table in Table Explorer with a filter chip switched to the enum operator and its value-picker popover open, listing the column's distinct values sampled from the cluster, next to a dynamic JSON column rendered in the grid.
The enum value picker on a Kusto column — distinct values sampled live from the cluster, emitted as | where Column in (…).

Charts from | render

KQL's | render directive asks for a visualization. When a Kusto result carries a render hint, Jam SQL Studio builds the matching chart automatically and opens the Chart tab, with a note pointing back to the full data in the Results tab:

  • barchart, columnchart → bar
  • linechart, timechart → line
  • areachart → area
  • piechart → pie
  • scatterchart → scatter

Render types without a chart equivalent (for example | render card) leave the result on the grid. You can always switch to the Chart tab and adjust axes by hand, exactly as with any other engine.

A KQL query ending in | render barchart with the Chart tab open automatically, showing the resulting bar chart and a note that the full data is in the Results tab.
A | render barchart query — the Chart tab opens automatically with the matching chart.

Notebooks

Azure Data Explorer connections work in SQL Notebooks too: write KQL code cells with blank-line-separated multi-statement batches (matching the ADX web UI), run .show commands alongside queries (other management commands stay blocked), and get an auto-opened Chart tab when a cell's query ends in | render. Because ADX is stateless, each cell runs independently rather than sharing a pinned session — see the SQL Notebooks guide for the pinned-session behaviour of the SQL engines.

A SQL Notebook on an Azure Data Explorer connection: a Markdown title cell above a KQL code cell ending in | render barchart, with the inline chart view open below the cell showing the bar chart.
A notebook cell ending in | render barchart — the chart opens inline below the cell.

Import from Azure Data Studio

When you import your connections from Azure Data Studio, saved Kusto profiles are imported as real Azure Data Explorer connections alongside your SQL Server and PostgreSQL ones — they default to Microsoft Entra ID (Interactive Browser) sign-in. Nothing is greyed out, and duplicates you already added are pre-unchecked.

AI agents & MCP

Kusto connections are first-class citizens of the AI integrations: MCP-connected agents (and the jam-sql CLI) run KQL through query_execute — queries and .show commands classify as read-only, so they work under the Read-only permission level — and, when you enable connection adding, an agent can set up a cluster, Azure Monitor / Log Analytics, or Application Insights connection for you, guiding you through the endpoint URL and Entra sign-in.

Limitations

  • Read-only. No row editing, no Table Designer, and no Schema Compare / Data Compare or Backup & Restore for Kusto connections.
  • Queries and .show only. Other management commands (.create, .drop, .ingest, …) are not supported.
  • No schemas or transactions — ADX has neither concept.
  • No result streaming — Kusto returns a whole response, so very large results load in full rather than incrementally.

Frequently asked questions

Does Jam SQL Studio support Kusto / KQL?

Yes. Jam SQL Studio connects to Azure Data Explorer (Kusto) clusters and App Insights / Log Analytics proxies. You run KQL with schema-aware IntelliSense, browse tables read-only in Table Explorer, chart | render results, and import saved Kusto connections from Azure Data Studio.

What is Kusto and KQL?

Kusto is the engine behind Azure Data Explorer (ADX), a Microsoft service for fast queries over large volumes of log and telemetry data. KQL (Kusto Query Language) is its read-focused, pipe-based query language, distinct from SQL.

Can I edit data or run management commands on a Kusto connection?

No. Azure Data Explorer is append-only, so Jam SQL Studio opens Kusto tables read-only and disables row editing. Queries and .show commands run; other management commands (.create, .drop, .ingest) are not supported.

Which databases does Jam SQL Studio support?

SQL Server, PostgreSQL, MySQL/MariaDB, Oracle, SQLite, and Azure Data Explorer (Kusto). See Connections to get started.

Try Jam SQL Studio Today

Download the latest version and connect to your Azure Data Explorer clusters.