From cdfa739d0d6ca1cc5a25532503623db3b2e8355d Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 30 Oct 2025 14:14:26 +0200 Subject: [PATCH 01/22] new PR --- .../management/data-export/export-data-to-an-external-table.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md index 06620c7517..08b215548d 100644 --- a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md +++ b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md @@ -3,7 +3,7 @@ title: .export to table description: This article describes Export data to an external table. ms.reviewer: alexans ms.topic: reference -ms.date: 12/01/2024 +ms.date: 10/30/2025 --- # .export to table From b2685c6f24042ddbcf867573c6987e8251c77f91 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 30 Oct 2025 16:11:19 +0200 Subject: [PATCH 02/22] removed SDX --- data-explorer/auto-stop-clusters.md | 2 +- data-explorer/azure-advisor.md | 2 +- data-explorer/database-script.md | 2 +- data-explorer/integrate-overview.md | 8 -------- data-explorer/kusto/management/callout-policy.md | 1 - .../data-export/export-data-to-an-external-table.md | 2 +- data-explorer/spark-connector.md | 5 +---- data-explorer/stream-analytics-connector.md | 2 +- data-explorer/toc.yml | 2 -- 9 files changed, 6 insertions(+), 20 deletions(-) diff --git a/data-explorer/auto-stop-clusters.md b/data-explorer/auto-stop-clusters.md index 5e0772d014..8ca40eea31 100644 --- a/data-explorer/auto-stop-clusters.md +++ b/data-explorer/auto-stop-clusters.md @@ -18,7 +18,7 @@ Cluster behavior isn't automatically resumed. To restart the cluster, do so manu > * Clusters deployed in a Virtual Network > * [Start-for-free](start-for-free.md) clusters > * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off -> * Azure Synapse Data Explorer pools + ## Manage Automatic stop behavior on your cluster diff --git a/data-explorer/azure-advisor.md b/data-explorer/azure-advisor.md index ef5bbc0140..22b7ce30b5 100644 --- a/data-explorer/azure-advisor.md +++ b/data-explorer/azure-advisor.md @@ -73,7 +73,7 @@ In some cases, clusters may be [automatically stopped](auto-stop-clusters.md). I * Leader clusters. For more information, see [follower databases](follower.md). * Clusters deployed in a Virtual Network. * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off - * Azure Synapse Data Explorer pools + The recommendation is to stop the cluster to reduce cost but still preserve the data. If the data isn't needed, consider deleting the cluster to increase your savings. diff --git a/data-explorer/database-script.md b/data-explorer/database-script.md index ddc1255989..02434bdd86 100644 --- a/data-explorer/database-script.md +++ b/data-explorer/database-script.md @@ -268,7 +268,7 @@ Use the following settings: ## Limitations -* Scripts are only supported in Azure Data Explorer; Scripts aren't supported in Synapse Data Explorer pools. +* Scripts are only supported in Azure Data Explorer * Two scripts can't be added, modified, or removed in parallel on the same cluster. If this occurs, the following error: `Code="ServiceIsInMaintenance"` is raised. You can work around the issue by placing a dependency between the two scripts so that they're created or updated sequentially. * To create functions with [cross-cluster queries](/kusto/query/cross-cluster-or-database-queries?view=azure-data-explorer&preserve-view=true) using scripts, you must set the `skipvalidation` property to `true` in the [.create function command](/kusto/management/create-function?view=azure-data-explorer&preserve-view=true). diff --git a/data-explorer/integrate-overview.md b/data-explorer/integrate-overview.md index 30f2036088..f3be4fbfe7 100644 --- a/data-explorer/integrate-overview.md +++ b/data-explorer/integrate-overview.md @@ -71,7 +71,6 @@ The following table summarizes the available tools and integrations and their ca | Name | Ingest | Query | Share | Source control | Secure | Administrate | Visualize | | ----------------------------------------------------------------------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | | [Azure CLI](#azure-cli) | | | | | | :heavy_check_mark: | | -| [Azure Synapse Analytics](#azure-synapse-analytics) | :heavy_check_mark: | :heavy_check_mark: | | | | | :heavy_check_mark: | | [Azure Data Lake](#azure-data-lake) | :heavy_check_mark: | :heavy_check_mark: | | | | | | | [Azure Data Studio](#azure-data-studio) | | :heavy_check_mark: | | | | | | | [Azure Data Share](#azure-data-share) | | | :heavy_check_mark: | | | | | @@ -380,13 +379,6 @@ Azure CLI lets you manage Kusto resources. * **Functionality:** Administration * **Documentation:** [az kusto](/cli/azure/kusto?view=azure-cli-latest&preserve-view=true) -### Azure Synapse Analytics - -Azure Synapse Data Explorer provides customers with an interactive query experience to unlock insights from log and telemetry data. To complement existing SQL and Apache Spark analytics runtime engines, the Data Explorer analytics runtime is optimized for efficient log analytics using powerful indexing technology to automatically index free-text and semi-structured data commonly found in telemetry data. - -* **Functionality:** Ingestion, Query, Visualization -* **Documentation:** [What is Azure Synapse Data Explorer?](/azure/synapse-analytics/data-explorer/data-explorer-overview) - ### Azure Data Lake Azure Data Explorer integrates with Azure Blob Storage and Azure Data Lake Storage (Gen1 and Gen2), providing fast, cached, and indexed access to data stored in external storage. diff --git a/data-explorer/kusto/management/callout-policy.md b/data-explorer/kusto/management/callout-policy.md index 2a80f1697f..76db3499c3 100644 --- a/data-explorer/kusto/management/callout-policy.md +++ b/data-explorer/kusto/management/callout-policy.md @@ -50,7 +50,6 @@ The following table shows a set of predefined callout policies that are preconfi | Kusto | Cross cluster queries | `^https://[a-z0-9]{3,22}\\.[a-z0-9-]{1,50}\\.(kusto\\.azuresynapse | kustodev\\.azuresynapse-dogfood)\\.net/?$` | | Kusto | Cross cluster queries | `^https://([A-Za-z0-9]+\\.)?(ade | adx)\\.(int\\. | aimon\\.)?(applicationinsights | loganalytics | monitor)\\.(io | azure\\.com)/` | | Azure DB | SQL requests | `[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]?\\.database\\.windows\\.net/?$` | -| Synapse Analytics | SQL requests | `[a-z0-9-]{0,61}?(-ondemand)?\\.sql\\.azuresynapse(-dogfood)?\\.net/?$` | | External Data | External data | `.*` | | Azure Digital Twins | Azure Digital Twins | `[A-Za-z0-9\\-]{3,63}\\.api\\.[A-Za-z0-9]+\\.digitaltwins\\.azure\\.net/?$` | diff --git a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md index 08b215548d..2db9f15fc1 100644 --- a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md +++ b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md @@ -88,7 +88,7 @@ In order to export to an external table, you must set up write permissions. For * External table columns are mapped to suitable target format data types, according to [data types mapping](export-data-to-storage.md#data-types-mapping) rules. -* Parquet native export is a more performant, resource light export mechanism. An exported `datetime` column is currently unsupported by Synapse SQL `COPY`. +* Parquet native export is a more performant, resource light export mechanism. ### Number of files diff --git a/data-explorer/spark-connector.md b/data-explorer/spark-connector.md index d90023e50d..df16c9e317 100644 --- a/data-explorer/spark-connector.md +++ b/data-explorer/spark-connector.md @@ -14,9 +14,6 @@ The Kusto connector for Spark is an [open source project](https://github.com/Azu You can write to Azure Data Explorer via queued ingestion or streaming ingestion. Reading from Azure Data Explorer supports column pruning and predicate pushdown, which filters the data in Azure Data Explorer, reducing the volume of transferred data. -> [!NOTE] -> For information about working with the Synapse Spark connector for Azure Data Explorer, see [Connect to Azure Data Explorer using Apache Spark for Azure Synapse Analytics](/azure/synapse-analytics/quickstart-connect-azure-data-explorer). - This topic describes how to install and configure the Azure Data Explorer Spark connector and move data between Azure Data Explorer and Apache Spark clusters. > [!NOTE] @@ -28,7 +25,7 @@ This topic describes how to install and configure the Azure Data Explorer Spark * An Azure Data Explorer cluster and database. [Create a cluster and database](create-cluster-and-database.md). * A Spark cluster * Install connector library: - * Pre-built libraries for [Spark 2.4+Scala 2.11 or Spark 3+scala 2.12](https://github.com/Azure/azure-kusto-spark/releases) + * Pre-built libraries for [Spark 2.4+Scala 2.11 or Spark 3+scala 2.12](https://github.com/Azure/azure-kusto-spark/releases) * [Maven repo](https://mvnrepository.com/artifact/com.microsoft.azure.kusto/spark-kusto-connector) * [Maven 3.x](https://maven.apache.org/download.cgi) installed diff --git a/data-explorer/stream-analytics-connector.md b/data-explorer/stream-analytics-connector.md index 1251eb15ff..b3994248db 100644 --- a/data-explorer/stream-analytics-connector.md +++ b/data-explorer/stream-analytics-connector.md @@ -67,7 +67,7 @@ Before you begin, make sure you have an existing Stream Analytics job or [create | Output alias | A friendly name used in queries to direct the query output to this database. | | Subscription | Select the Azure subscription where your cluster resides. | | Cluster | The unique name that identifies your cluster. The domain name [region].kusto.windows.net is appended to the cluster name you provide. The name can contain only lowercase letters and numbers. It must contain from 4 to 22 characters. | - | Cluster URI | The data ingestion URI of your cluster. You can specify the URI for the Azure Data Explorer or [Azure Synapse Data Explorer](/azure/synapse-analytics/data-explorer/ingest-data/data-explorer-ingest-data-overview#programmatic-ingestion-using-sdks) data ingestion endpoints. | + | Cluster URI | The data ingestion URI of your Azure Data Explorer cluster. | | Database | The name of the database where you're sending your output. The database name must be unique within the cluster. | | Authentication | A [Microsoft Entra managed identity](/azure/active-directory/managed-identities-azure-resources/overview) that allows your cluster to easily access other Microsoft Entra protected resources. The identity is managed by the Azure platform and doesn't require you to provision or rotate any secrets. Managed identity configuration enables you to use customer-managed keys for your cluster. | | Table | The name of the table where you're sending your output. The column names and data types in the Azure Stream Analytics output must match the schema of the Azure Data Explorer table. | diff --git a/data-explorer/toc.yml b/data-explorer/toc.yml index 211cd5df32..7057d816c7 100644 --- a/data-explorer/toc.yml +++ b/data-explorer/toc.yml @@ -631,8 +631,6 @@ items: href: /sql/azure-data-studio/notebooks/notebooks-kqlmagic?context=/azure/data-explorer/context/context - name: Azure Functions href: integrate-azure-functions.md - - name: Connect from Azure Synapse Apache Spark - href: /azure/synapse-analytics/quickstart-connect-azure-data-explorer?toc=/azure/data-explorer/toc.json&bc=/azure/data-explorer/breadcrumb/toc.json - name: Use MCP servers to build AI agents href: integrate-mcp-servers.md - name: Linked server From c759b6dcf3f9f1424f215ef231915565b9a813c3 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 30 Oct 2025 16:55:18 +0200 Subject: [PATCH 03/22] wip --- data-explorer/integrate-overview.md | 1 + data-explorer/kusto/management/callout-policy.md | 1 + .../management/data-export/export-data-to-an-external-table.md | 2 +- data-explorer/toc.yml | 2 ++ 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/data-explorer/integrate-overview.md b/data-explorer/integrate-overview.md index f3be4fbfe7..14a8fcde61 100644 --- a/data-explorer/integrate-overview.md +++ b/data-explorer/integrate-overview.md @@ -71,6 +71,7 @@ The following table summarizes the available tools and integrations and their ca | Name | Ingest | Query | Share | Source control | Secure | Administrate | Visualize | | ----------------------------------------------------------------------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | | [Azure CLI](#azure-cli) | | | | | | :heavy_check_mark: | | +| [Azure Synapse Analytics](#azure-synapse-analytics) | :heavy_check_mark: | :heavy_check_mark: | | | | | :heavy_check_mark: | | [Azure Data Lake](#azure-data-lake) | :heavy_check_mark: | :heavy_check_mark: | | | | | | | [Azure Data Studio](#azure-data-studio) | | :heavy_check_mark: | | | | | | | [Azure Data Share](#azure-data-share) | | | :heavy_check_mark: | | | | | diff --git a/data-explorer/kusto/management/callout-policy.md b/data-explorer/kusto/management/callout-policy.md index 76db3499c3..2a80f1697f 100644 --- a/data-explorer/kusto/management/callout-policy.md +++ b/data-explorer/kusto/management/callout-policy.md @@ -50,6 +50,7 @@ The following table shows a set of predefined callout policies that are preconfi | Kusto | Cross cluster queries | `^https://[a-z0-9]{3,22}\\.[a-z0-9-]{1,50}\\.(kusto\\.azuresynapse | kustodev\\.azuresynapse-dogfood)\\.net/?$` | | Kusto | Cross cluster queries | `^https://([A-Za-z0-9]+\\.)?(ade | adx)\\.(int\\. | aimon\\.)?(applicationinsights | loganalytics | monitor)\\.(io | azure\\.com)/` | | Azure DB | SQL requests | `[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]?\\.database\\.windows\\.net/?$` | +| Synapse Analytics | SQL requests | `[a-z0-9-]{0,61}?(-ondemand)?\\.sql\\.azuresynapse(-dogfood)?\\.net/?$` | | External Data | External data | `.*` | | Azure Digital Twins | Azure Digital Twins | `[A-Za-z0-9\\-]{3,63}\\.api\\.[A-Za-z0-9]+\\.digitaltwins\\.azure\\.net/?$` | diff --git a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md index 2db9f15fc1..08b215548d 100644 --- a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md +++ b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md @@ -88,7 +88,7 @@ In order to export to an external table, you must set up write permissions. For * External table columns are mapped to suitable target format data types, according to [data types mapping](export-data-to-storage.md#data-types-mapping) rules. -* Parquet native export is a more performant, resource light export mechanism. +* Parquet native export is a more performant, resource light export mechanism. An exported `datetime` column is currently unsupported by Synapse SQL `COPY`. ### Number of files diff --git a/data-explorer/toc.yml b/data-explorer/toc.yml index 7057d816c7..211cd5df32 100644 --- a/data-explorer/toc.yml +++ b/data-explorer/toc.yml @@ -631,6 +631,8 @@ items: href: /sql/azure-data-studio/notebooks/notebooks-kqlmagic?context=/azure/data-explorer/context/context - name: Azure Functions href: integrate-azure-functions.md + - name: Connect from Azure Synapse Apache Spark + href: /azure/synapse-analytics/quickstart-connect-azure-data-explorer?toc=/azure/data-explorer/toc.json&bc=/azure/data-explorer/breadcrumb/toc.json - name: Use MCP servers to build AI agents href: integrate-mcp-servers.md - name: Linked server From 935c67531bdb9d6b091b941258102dbf8eb1d756 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:24:38 +0200 Subject: [PATCH 04/22] removing Synapse --- data-explorer/ingest-data-event-hub-overview.md | 2 +- data-explorer/integrate-data-overview.md | 1 - data-explorer/integrate-overview.md | 16 ++-------------- data-explorer/integrate-query-overview.md | 3 +-- data-explorer/kusto/management/callout-policy.md | 3 +-- .../export-data-to-an-external-table.md | 4 ++-- data-explorer/proof-of-concept-playbook.md | 4 ++-- .../security-network-restrict-outbound-access.md | 5 ++--- data-explorer/solution-architectures.md | 6 +++--- data-explorer/spark-connector.md | 5 +---- data-explorer/toc.yml | 2 -- 11 files changed, 15 insertions(+), 36 deletions(-) diff --git a/data-explorer/ingest-data-event-hub-overview.md b/data-explorer/ingest-data-event-hub-overview.md index 23cd67a3da..bc12d5a37f 100644 --- a/data-explorer/ingest-data-event-hub-overview.md +++ b/data-explorer/ingest-data-event-hub-overview.md @@ -3,7 +3,7 @@ title: Ingest from Event Hub - Azure Data Explorer description: This article describes how to ingest data from Azure Event Hubs into Azure Data Explorer. ms.reviewer: orspodek ms.topic: how-to -ms.date: 08/26/2025 +ms.date: 12/01/2025 ms.custom: sfi-ropc-nochange --- # Azure Event Hubs data connection diff --git a/data-explorer/integrate-data-overview.md b/data-explorer/integrate-data-overview.md index 357924bfd1..a729075815 100644 --- a/data-explorer/integrate-data-overview.md +++ b/data-explorer/integrate-data-overview.md @@ -37,7 +37,6 @@ The following tables summarizes the available data connectors, tools, and integr | [Apache Flink](integrate-overview.md#apache-flink) | **Ingestion** | :heavy_check_mark: | | [Open source](https://github.com/Azure/flink-connector-kusto/) | Telemetry | | [Apache Log4J 2](integrate-overview.md#apache-log4j-2) | **Ingestion** | :heavy_check_mark: | :heavy_check_mark: | First party, [Open source](https://github.com/Azure/azure-kusto-log4j) | Logs | | [Apache Spark](integrate-overview.md#apache-spark) | **Export**

**Ingestion** | | | [Open source](https://github.com/Azure/azure-kusto-spark/) | Telemetry | -| [Apache Spark for Azure Synapse Analytics](integrate-overview.md#apache-spark-for-azure-synapse-analytics) | **Export**

**Ingestion** | | | First party | Telemetry | | [Azure Cosmos DB](integrate-overview.md#azure-cosmos-db) | **Ingestion** | :heavy_check_mark: | | First party | Change feed | | [Azure Data Factory](integrate-overview.md#azure-data-factory) | **Export**

**Ingestion** | | | First party | Data orchestration | | [Azure Event Grid](integrate-overview.md#azure-event-grid) | **Ingestion** | :heavy_check_mark: | | First party | Event processing | diff --git a/data-explorer/integrate-overview.md b/data-explorer/integrate-overview.md index 14a8fcde61..b9f520f8a7 100644 --- a/data-explorer/integrate-overview.md +++ b/data-explorer/integrate-overview.md @@ -2,8 +2,8 @@ title: Integrations overview description: Learn about the available data connectors, tools, and integrations, and their capabilities. ms.reviewer: aksdi -ms.topic: conceptual -ms.date: 01/16/2024 +ms.topic: article +ms.date: 12/01/2025 --- # Integrations overview @@ -40,7 +40,6 @@ The following table summarizes the available connectors and their capabilities: | [Apache Flink](#apache-flink) | :heavy_check_mark: | | | | | [Apache Log4J 2](#apache-log4j-2) | :heavy_check_mark: | | | | | [Apache Spark](#apache-spark) | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | -| [Apache Spark for Azure Synapse Analytics](#apache-spark-for-azure-synapse-analytics) | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | | [Azure Cosmos DB](#azure-cosmos-db) | :heavy_check_mark: | | | | | [Azure Data Factory](#azure-data-factory) | :heavy_check_mark: | | :heavy_check_mark: | | | [Azure Event Grid](#azure-event-grid) | | | :heavy_check_mark: | | @@ -71,7 +70,6 @@ The following table summarizes the available tools and integrations and their ca | Name | Ingest | Query | Share | Source control | Secure | Administrate | Visualize | | ----------------------------------------------------------------------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | | [Azure CLI](#azure-cli) | | | | | | :heavy_check_mark: | | -| [Azure Synapse Analytics](#azure-synapse-analytics) | :heavy_check_mark: | :heavy_check_mark: | | | | | :heavy_check_mark: | | [Azure Data Lake](#azure-data-lake) | :heavy_check_mark: | :heavy_check_mark: | | | | | | | [Azure Data Studio](#azure-data-studio) | | :heavy_check_mark: | | | | | | | [Azure Data Share](#azure-data-share) | | | :heavy_check_mark: | | | | | @@ -146,16 +144,6 @@ The following are detailed descriptions of connectors and tools and integrations * **Documentation:** [Apache Spark connector](spark-connector.md) * **Community Blog:** [Data preprocessing for Azure Data Explorer for Azure Data Explorer with Apache Spark](https://techcommunity.microsoft.com/t5/azure-data-explorer-blog/data-pre-processing-for-azure-data-explorer-with-apache-spark/ba-p/2727993/) -### Apache Spark for Azure Synapse Analytics - -[Apache Spark](https://spark.apache.org/) is a parallel processing framework that supports in-memory processing to boost the performance of big data analytic applications. [Apache Spark in Azure Synapse](/azure/synapse-analytics/spark/apache-spark-overview) Analytics is one of Microsoft's implementations of Apache Spark in the cloud. You can access a database from [Synapse Studio](/azure/synapse-analytics/) with Apache Spark for Azure Synapse Analytics. - -* **Functionality:** Ingestion, Export -* **Ingestion type supported:** Batching -* **Use cases:** Telemetry -* **Underlying SDK:** [Java](/kusto/api/java/kusto-java-client-library?view=azure-data-explorer&preserve-view=true) -* **Documentation:** [Connect to an Azure Synapse workspace](/azure/synapse-analytics/quickstart-connect-azure-data-explorer) - ### Azure Cosmos DB The [Azure Cosmos DB](/azure/cosmos-db/) change feed data connection is an ingestion pipeline that listens to your Cosmos DB change feed and ingests the data into your database. diff --git a/data-explorer/integrate-query-overview.md b/data-explorer/integrate-query-overview.md index 6a37233766..8261fc7b20 100644 --- a/data-explorer/integrate-query-overview.md +++ b/data-explorer/integrate-query-overview.md @@ -3,7 +3,7 @@ title: Query integrations overview description: Learn about the available query integrations. ms.reviewer: aksdi ms.topic: conceptual -ms.date: 01/30/2024 +ms.date: 12/01/2025 # CustomerIntent: As a data ingestor, I want to know what query connectors and tools are available, so that I can choose the right one for my use case. --- @@ -35,7 +35,6 @@ The following tables summarize the available query connectors, tools, and integr | Name | Functionality | Roles | Use cases | | ---------------------------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | | [Apache Spark](integrate-overview.md#apache-spark) | Query, Ingest, and Export | Data Analyst, Data Scientist | Machine learning (ML), Extract-Transform-Load (ETL), and Log Analytics scenarios using any Spark cluster | -| [Apache Spark for Azure Synapse Analytics](integrate-overview.md#apache-spark-for-azure-synapse-analytics) | Query, Ingest, and Export | Data Analyst, Data Scientist | Machine learning (ML), Extract-Transform-Load (ETL), and Log Analytics scenarios using Synapse Analytics Spark cluster | | [Azure Functions](integrate-overview.md#azure-functions) | Query, Ingest, and Orchestrate | Data Engineer, Application Developer | Integrate Azure Data Explorer into your serverless workflows to ingest data and run queries against your cluster | | [JDBC](integrate-overview.md#jdbc) | Query | Application Developer | Use JDBC to connect to Azure Data Explorer databases and execute queries | | [Logic Apps](integrate-overview.md#logic-apps) | Query and Orchestrate | Low Code Application Developer | Run queries and commands automatically as part of a scheduled or triggered task. | diff --git a/data-explorer/kusto/management/callout-policy.md b/data-explorer/kusto/management/callout-policy.md index 2a80f1697f..893946f248 100644 --- a/data-explorer/kusto/management/callout-policy.md +++ b/data-explorer/kusto/management/callout-policy.md @@ -3,7 +3,7 @@ title: Callout policy description: Learn how to update a cluster's callout policy to manage authorized domains for external calls. ms.reviewer: orspodek ms.topic: reference -ms.date: 12/23/2024 +ms.date: 12/01/2025 monikerRange: "azure-data-explorer" --- # Callout policy @@ -50,7 +50,6 @@ The following table shows a set of predefined callout policies that are preconfi | Kusto | Cross cluster queries | `^https://[a-z0-9]{3,22}\\.[a-z0-9-]{1,50}\\.(kusto\\.azuresynapse | kustodev\\.azuresynapse-dogfood)\\.net/?$` | | Kusto | Cross cluster queries | `^https://([A-Za-z0-9]+\\.)?(ade | adx)\\.(int\\. | aimon\\.)?(applicationinsights | loganalytics | monitor)\\.(io | azure\\.com)/` | | Azure DB | SQL requests | `[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]?\\.database\\.windows\\.net/?$` | -| Synapse Analytics | SQL requests | `[a-z0-9-]{0,61}?(-ondemand)?\\.sql\\.azuresynapse(-dogfood)?\\.net/?$` | | External Data | External data | `.*` | | Azure Digital Twins | Azure Digital Twins | `[A-Za-z0-9\\-]{3,63}\\.api\\.[A-Za-z0-9]+\\.digitaltwins\\.azure\\.net/?$` | diff --git a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md index 08b215548d..9e7c43f59f 100644 --- a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md +++ b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md @@ -3,7 +3,7 @@ title: .export to table description: This article describes Export data to an external table. ms.reviewer: alexans ms.topic: reference -ms.date: 10/30/2025 +ms.date: 12/01/2025 --- # .export to table @@ -88,7 +88,7 @@ In order to export to an external table, you must set up write permissions. For * External table columns are mapped to suitable target format data types, according to [data types mapping](export-data-to-storage.md#data-types-mapping) rules. -* Parquet native export is a more performant, resource light export mechanism. An exported `datetime` column is currently unsupported by Synapse SQL `COPY`. +* Parquet native export is a more performant, resource light export mechanism. ### Number of files diff --git a/data-explorer/proof-of-concept-playbook.md b/data-explorer/proof-of-concept-playbook.md index 24dedf3c5a..4210d2986b 100644 --- a/data-explorer/proof-of-concept-playbook.md +++ b/data-explorer/proof-of-concept-playbook.md @@ -3,7 +3,7 @@ title: "Azure Data Explorer POC playbook: Big data analytics" description: "A high-level methodology for preparing and running an effective Azure Data Explorer proof of concept (POC) project." ms.reviewer: devsha ms.topic: conceptual -ms.date: 11/02/2023 +ms.date: 12/01/2025 --- # Azure Data Explorer POC playbook: Big data analytics @@ -29,7 +29,7 @@ The following scenarios are also good candidates for Azure Data Explorer: - Low latency data store for real-time telemetry-based alerts - [IoT telemetry data storage and analytics](/azure/architecture/solution-ideas/articles/iot-azure-data-explorer) -- [High speed interactive analytics layer](/azure/architecture/solution-ideas/articles/interactive-azure-data-explorer). Particularly when used with Apache Spark engines such as Synapse Spark, DataBricks, or traditional data warehouses such as Synapse SQL pools. +- [High speed interactive analytics layer](/azure/architecture/solution-ideas/articles/interactive-azure-data-explorer). Particularly when used with Apache Spark engines such as DataBricks. - [Log and observability analytics](/azure/architecture/solution-ideas/articles/monitor-azure-data-explorer) ## Prepare for the POC diff --git a/data-explorer/security-network-restrict-outbound-access.md b/data-explorer/security-network-restrict-outbound-access.md index 0038cac5c0..5de27f243b 100644 --- a/data-explorer/security-network-restrict-outbound-access.md +++ b/data-explorer/security-network-restrict-outbound-access.md @@ -3,7 +3,7 @@ title: Restrict outbound access from your Azure Data Explorer cluster description: Learn how to restrict the outbound access from your Azure Data Explorer cluster to other services. ms.reviewer: herauch ms.topic: how-to -ms.date: 04/10/2025 +ms.date: 12/01/2025 --- # Restrict outbound access from your Azure Data Explorer cluster @@ -112,8 +112,7 @@ The following ARM template allows outbound access to specific FQDNs while keepin "properties": { "restrictOutboundNetworkAccess": "Enabled", "allowedFqdnList": [ - "example.sql.azuresynapse.net", - "example.blob.core.windows.net" + "example.blob.core.windows.net" ] } } diff --git a/data-explorer/solution-architectures.md b/data-explorer/solution-architectures.md index 01382c8845..e0e4471c59 100644 --- a/data-explorer/solution-architectures.md +++ b/data-explorer/solution-architectures.md @@ -3,7 +3,7 @@ title: Solution architectures in Azure description: Learn about solution architectures in Azure Data Explorer. ms.reviewer: ms.topic: reference -ms.date: 07/05/2022 +ms.date: 12/01/2025 --- # Solution architectures @@ -15,7 +15,7 @@ This document refers you to all architectures that include Azure Data Explorer. ## Big data analytics with Azure Data Explorer -Azure Data Explorer and Azure Synapse Analytics work together for near real-time analytics and modern data warehousing use cases. +Azure Data Explorer works for near real-time analytics and modern data warehousing use cases. > [!div class="nextstepaction"] > [Big data analytics with Azure Data Explorer](/azure/architecture/solution-ideas/articles/big-data-azure-data-explorer) @@ -82,7 +82,7 @@ This solution also uses the following services: ## Data analytics for automotive test fleets -Automotive OEMs need solutions to minimize the time between doing test drives and getting test drive diagnostic data to R&D engineers. +Automotive OEMs need solutions to minimize the time between doing test drives and getting test drive diagnostic data to R&D engineers. This example workload relates to both telemetry and batch test drive data ingestion scenarios. The workload focuses on the data platform that processes diagnostic data, and the connectors for visualization and reporting. diff --git a/data-explorer/spark-connector.md b/data-explorer/spark-connector.md index abaed0f423..90131181d2 100644 --- a/data-explorer/spark-connector.md +++ b/data-explorer/spark-connector.md @@ -3,7 +3,7 @@ title: Use the Azure Data Explorer connector for Apache Spark to move data betwe description: This topic shows you how to move data between Azure Data Explorer and Apache Spark clusters. ms.reviewer: ohbitton ms.topic: how-to -ms.date: 11/03/2025 +ms.date: 12/01/2025 --- # Azure Data Explorer Connector for Apache Spark @@ -14,9 +14,6 @@ The Kusto connector for Spark is an [open source project](https://github.com/Azu You can write to Azure Data Explorer through queued ingestion or streaming ingestion. Reading from Azure Data Explorer supports column pruning and predicate pushdown, which filters the data in Azure Data Explorer, reducing the volume of transferred data. -> [!NOTE] -> For information about working with the Synapse Spark connector for Azure Data Explorer, see [Connect to Azure Data Explorer using Apache Spark for Azure Synapse Analytics](/azure/synapse-analytics/quickstart-connect-azure-data-explorer). - This article describes how to install and configure the Azure Data Explorer Spark connector and move data between Azure Data Explorer and Apache Spark clusters. > [!NOTE] diff --git a/data-explorer/toc.yml b/data-explorer/toc.yml index 211cd5df32..7057d816c7 100644 --- a/data-explorer/toc.yml +++ b/data-explorer/toc.yml @@ -631,8 +631,6 @@ items: href: /sql/azure-data-studio/notebooks/notebooks-kqlmagic?context=/azure/data-explorer/context/context - name: Azure Functions href: integrate-azure-functions.md - - name: Connect from Azure Synapse Apache Spark - href: /azure/synapse-analytics/quickstart-connect-azure-data-explorer?toc=/azure/data-explorer/toc.json&bc=/azure/data-explorer/breadcrumb/toc.json - name: Use MCP servers to build AI agents href: integrate-mcp-servers.md - name: Linked server From bd431aeb8ba5a9b6787a92e1c15da1bdf5969fc7 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:32:08 +0200 Subject: [PATCH 05/22] ms.topic: article --- data-explorer/integrate-data-overview.md | 2 +- data-explorer/integrate-query-overview.md | 2 +- data-explorer/proof-of-concept-playbook.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data-explorer/integrate-data-overview.md b/data-explorer/integrate-data-overview.md index a729075815..298633635b 100644 --- a/data-explorer/integrate-data-overview.md +++ b/data-explorer/integrate-data-overview.md @@ -2,7 +2,7 @@ title: Data integrations overview description: Learn about the available data integrations. ms.reviewer: aksdi -ms.topic: conceptual +ms.topic: article ms.date: 01/30/2024 # CustomerIntent: As a data ingestor, I want to know what data connectors and tools are available, so that I can choose the right one for my use case. --- diff --git a/data-explorer/integrate-query-overview.md b/data-explorer/integrate-query-overview.md index 8261fc7b20..251a5a5a2c 100644 --- a/data-explorer/integrate-query-overview.md +++ b/data-explorer/integrate-query-overview.md @@ -2,7 +2,7 @@ title: Query integrations overview description: Learn about the available query integrations. ms.reviewer: aksdi -ms.topic: conceptual +ms.topic: article ms.date: 12/01/2025 # CustomerIntent: As a data ingestor, I want to know what query connectors and tools are available, so that I can choose the right one for my use case. diff --git a/data-explorer/proof-of-concept-playbook.md b/data-explorer/proof-of-concept-playbook.md index 4210d2986b..43cdca679c 100644 --- a/data-explorer/proof-of-concept-playbook.md +++ b/data-explorer/proof-of-concept-playbook.md @@ -2,7 +2,7 @@ title: "Azure Data Explorer POC playbook: Big data analytics" description: "A high-level methodology for preparing and running an effective Azure Data Explorer proof of concept (POC) project." ms.reviewer: devsha -ms.topic: conceptual +ms.topic: article ms.date: 12/01/2025 --- From 2480c06ea8a916ac6c6bcbc4c91d5cfcb90d6b54 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:33:21 +0200 Subject: [PATCH 06/22] redirect added --- data-explorer/.openpublishing.redirection.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data-explorer/.openpublishing.redirection.json b/data-explorer/.openpublishing.redirection.json index 4fe514c58d..a377d0e762 100644 --- a/data-explorer/.openpublishing.redirection.json +++ b/data-explorer/.openpublishing.redirection.json @@ -15,6 +15,11 @@ "redirect_url": "/kusto/query/graph-best-practices?view=azure-data-explorer&preserve-view=true", "redirect_document_id": false }, + { + "source_path": "/azure/synapse-analytics/quickstart-connect-azure-data-explorer?toc=/azure/data-explorer/toc.json&bc=/azure/data-explorer/breadcrumb/toc.json", + "redirect_url": " /azure/data-explorer/data-explorer-overview", + "redirect_document_id": false + }, { "source_path": "graph-overview.md", "redirect_url": "/kusto/query/graph-semantics-overview?view=azure-data-explorer&preserve-view=true", From 1863786a076efaf1667c73b424a516ea0555f926 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 8 Dec 2025 14:04:53 +0200 Subject: [PATCH 07/22] Keep Synapse SQL --- data-explorer/kusto/management/callout-policy.md | 3 ++- .../data-export/export-data-to-an-external-table.md | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/data-explorer/kusto/management/callout-policy.md b/data-explorer/kusto/management/callout-policy.md index 893946f248..2a80f1697f 100644 --- a/data-explorer/kusto/management/callout-policy.md +++ b/data-explorer/kusto/management/callout-policy.md @@ -3,7 +3,7 @@ title: Callout policy description: Learn how to update a cluster's callout policy to manage authorized domains for external calls. ms.reviewer: orspodek ms.topic: reference -ms.date: 12/01/2025 +ms.date: 12/23/2024 monikerRange: "azure-data-explorer" --- # Callout policy @@ -50,6 +50,7 @@ The following table shows a set of predefined callout policies that are preconfi | Kusto | Cross cluster queries | `^https://[a-z0-9]{3,22}\\.[a-z0-9-]{1,50}\\.(kusto\\.azuresynapse | kustodev\\.azuresynapse-dogfood)\\.net/?$` | | Kusto | Cross cluster queries | `^https://([A-Za-z0-9]+\\.)?(ade | adx)\\.(int\\. | aimon\\.)?(applicationinsights | loganalytics | monitor)\\.(io | azure\\.com)/` | | Azure DB | SQL requests | `[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]?\\.database\\.windows\\.net/?$` | +| Synapse Analytics | SQL requests | `[a-z0-9-]{0,61}?(-ondemand)?\\.sql\\.azuresynapse(-dogfood)?\\.net/?$` | | External Data | External data | `.*` | | Azure Digital Twins | Azure Digital Twins | `[A-Za-z0-9\\-]{3,63}\\.api\\.[A-Za-z0-9]+\\.digitaltwins\\.azure\\.net/?$` | diff --git a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md index 9e7c43f59f..06620c7517 100644 --- a/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md +++ b/data-explorer/kusto/management/data-export/export-data-to-an-external-table.md @@ -3,7 +3,7 @@ title: .export to table description: This article describes Export data to an external table. ms.reviewer: alexans ms.topic: reference -ms.date: 12/01/2025 +ms.date: 12/01/2024 --- # .export to table @@ -88,7 +88,7 @@ In order to export to an external table, you must set up write permissions. For * External table columns are mapped to suitable target format data types, according to [data types mapping](export-data-to-storage.md#data-types-mapping) rules. -* Parquet native export is a more performant, resource light export mechanism. +* Parquet native export is a more performant, resource light export mechanism. An exported `datetime` column is currently unsupported by Synapse SQL `COPY`. ### Number of files From d9b38b290f689071b4aa38652c8e3a2c0f874485 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 8 Dec 2025 14:17:35 +0200 Subject: [PATCH 08/22] redirect file fix --- data-explorer/.openpublishing.redirection.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data-explorer/.openpublishing.redirection.json b/data-explorer/.openpublishing.redirection.json index a377d0e762..3e588b0cb9 100644 --- a/data-explorer/.openpublishing.redirection.json +++ b/data-explorer/.openpublishing.redirection.json @@ -16,8 +16,8 @@ "redirect_document_id": false }, { - "source_path": "/azure/synapse-analytics/quickstart-connect-azure-data-explorer?toc=/azure/data-explorer/toc.json&bc=/azure/data-explorer/breadcrumb/toc.json", - "redirect_url": " /azure/data-explorer/data-explorer-overview", + "source_path": "/azure/synapse-analytics/quickstart-connect-azure-data-explorer", + "redirect_url": "/azure/data-explorer/data-explorer-overview", "redirect_document_id": false }, { From bed878e9a193adb345920196bcbefc05be3d49cc Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 8 Dec 2025 14:40:24 +0200 Subject: [PATCH 09/22] updated images --- .../stream-analytics-job-output.png | Bin 41769 -> 55180 bytes .../stream-analytics-new-output.png | Bin 29968 -> 28390 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data-explorer/media/stream-analytics-connector/stream-analytics-job-output.png b/data-explorer/media/stream-analytics-connector/stream-analytics-job-output.png index a6d975c2f380bf8df22441fed53022b196494ea5..4247de22289eb1eec1cc3120e98664ec13fd0d0a 100644 GIT binary patch literal 55180 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

D@DBJy6GMw!Oj_Wi=!@gX%myWVRhM%u&sU%_u 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 bt6kq;swHw-Zo(Kt0sqNKDNB}!8wdSgcnMvB literal 41769 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 literal 29968 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%0A%B0WNtcoBa*iY4`kv)A${U0!Vpwq54>Mv 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 From a73795159d6b806c77bf357fc366a9dc938b4fbb Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 8 Dec 2025 14:51:31 +0200 Subject: [PATCH 10/22] final --- data-explorer/.openpublishing.redirection.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/.openpublishing.redirection.json b/data-explorer/.openpublishing.redirection.json index 3e588b0cb9..65ef9cf487 100644 --- a/data-explorer/.openpublishing.redirection.json +++ b/data-explorer/.openpublishing.redirection.json @@ -17,7 +17,7 @@ }, { "source_path": "/azure/synapse-analytics/quickstart-connect-azure-data-explorer", - "redirect_url": "/azure/data-explorer/data-explorer-overview", + "redirect_url": "/azure/data-explorer/integrate-overview", "redirect_document_id": false }, { From 59edcdb3d6ae18f6fe7115f9f810a8d8aa98019c Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 8 Dec 2025 15:17:49 +0200 Subject: [PATCH 11/22] Documentor and Acrolinx --- data-explorer/auto-stop-clusters.md | 70 ++++++++++++++--------------- data-explorer/azure-advisor.md | 65 ++++++++++++++------------- 2 files changed, 67 insertions(+), 68 deletions(-) diff --git a/data-explorer/auto-stop-clusters.md b/data-explorer/auto-stop-clusters.md index 8ca40eea31..64eb4c1328 100644 --- a/data-explorer/auto-stop-clusters.md +++ b/data-explorer/auto-stop-clusters.md @@ -1,81 +1,79 @@ --- title: Automatic stop of inactive clusters in Azure Data Explorer -description: Learn when your cluster will be stopped using the Automatic stop feature, and how to enable/disable the Automatic stop. +description: Learn when your cluster is due to stop running using the Automatic stop feature, and how to enable/disable the Automatic stop. ms.reviewer: orhasban ms.topic: how-to -ms.date: 11/03/2021 +ms.date: 12/08/2025 --- -# Automatic stop of inactive Azure Data Explorer clusters +# Configure automatic stop of inactive Azure Data Explorer clusters -Azure Data Explorer clusters that have been *inactive* for a specified time interval are automatically stopped. Inactivity is defined as clusters that haven't had any data ingestion or queries in the past 5 days. The interval is fixed at 5 days and cannot be changed. +Azure Data Explorer clusters that are *inactive* for a specified time interval stop automatically. Inactivity means clusters with no data ingestion or queries in the past 5 days. The interval is fixed at 5 days and can't be changed. -Cluster behavior isn't automatically resumed. To restart the cluster, do so manually. +Cluster behavior doesn't resume automatically. Restart the cluster manually. > [!NOTE] -> Cluster types listed below are not automatically stopped:
+> The following cluster types aren't stopped automatically:
> > * Leader clusters. For more information, see [follower databases](follower.md). -> * Clusters deployed in a Virtual Network -> * [Start-for-free](start-for-free.md) clusters -> * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off +> * Clusters deployed in a virtual network. +> * [Start-for-free](start-for-free.md) clusters. +> * Clusters where the [auto-stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off. +## Manage automatic stop behavior on your cluster -## Manage Automatic stop behavior on your cluster +Azure Data Explorer clusters are created by default with the cluster property `enableAutoStop = true`. You can set or change this property during or after cluster creation. -Azure Data Explorer clusters are created by default with the cluster property of `enableAutoStop = true`. This property can be set or altered either on cluster creation or post creation. +[Azure portal](#configure-auto-stop-while-creating-a-new-cluster) -Set this property using one of the following methods, or using the [Azure portal](#azure-portal): * [ARM Templates](/azure/templates/microsoft.kusto/clusters?tabs=json#trustedexternaltenant-object) * [Azure CLI](/cli/azure/kusto/cluster#az-kusto-cluster-update-optional-parameters) * [PowerShell](/powershell/module/az.kusto/new-azkustocluster) -* [Azure Resource Explorer](https://resources.azure.com/). +* [Azure Resource Explorer](https://resources.azure.com/) -For more information, see [Azure Data Explorer cluster request body](/rest/api/azurerekusto/clusters/createorupdate#request-body). +Learn more in [Azure Data Explorer cluster request body](/rest/api/azurerekusto/clusters/createorupdate#request-body). -## Azure portal +## Configure auto-stop while creating a new cluster -### Set Auto-Stop settings while creating a new cluster - -1. Follow the steps in [Create an Azure Data Explorer cluster and database](create-cluster-and-database.md). +1. In the Azure portal, follow the steps in [create an Azure Data Explorer cluster and database](create-cluster-and-database.md). 1. In the **Configurations** tab, select **Auto-Stop cluster** > **On**. -:::image type="content" source="media/auto-stop-clusters/auto-stop-cluster-creation.png" alt-text="Screenshot of auto-stop configuration."::: + :::image type="content" source="media/auto-stop-clusters/auto-stop-cluster-creation.png" alt-text="Screenshot of auto-stop configuration." ::: -### Modify settings on an existing cluster +## Modify settings on an existing cluster -To enable/disable Auto-Stop cluster after cluster was created: +To enable or disable Auto-Stop cluster after the cluster is created: -1. Sign into the [Azure portal](https://ms.portal.azure.com/). -1. Browse to your Azure Data Explorer cluster. +1. Sign in to the [Azure portal](https://ms.portal.azure.com/). +1. Go to your Azure Data Explorer cluster. 1. In **Settings**, select **Configurations**. -1. In the **Configurations** pane, select **On**/**Off** to enable/disable **Auto-Stop cluster**. +1. In the **Configurations** pane, select **On** or **Off** to enable or disable **Auto-Stop cluster**. 1. Select **Save**. -:::image type="content" source="media/auto-stop-clusters/auto-stop-cluster-update.png" alt-text="Screenshot of auto-stop configuration in Azure portal."::: +:::image type="content" source="media/auto-stop-clusters/auto-stop-cluster-update.png" alt-text="Screenshot of auto-stop configuration in the Azure portal."::: -## Verify Auto-Stop using the Activity log +## Verify auto-stop using the activity log When a cluster is automatically stopped, an Activity log is sent. To verify when and how the cluster was stopped, use the following steps: 1. Sign into the [Azure portal](https://ms.portal.azure.com/). 1. Browse to Azure Data Explorer cluster. -1. On the left pane, select **Activity log**. -1. Choose a timespan. -1. Under **Operation name**, look for **Stop Clusters**. +1. In the left pane, select **Activity log**. +1. Select a timespan. +1. Under **Operation name**, find **Stop Clusters**. -:::image type="content" source="media/auto-stop-clusters/auto-stop-cluster-activity-log.png" alt-text="Screenshot of activity log."::: +:::image type="content" source="media/auto-stop-clusters/auto-stop-cluster-activity-log.png" alt-text="Screenshot of the activity log."::: ## Examples ### REST example -Update the cluster using the following operation: +Update the cluster with this operation: ```http PATCH https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorgtest/providers/Microsoft.Kusto/clusters/kustoclustertest?api-version=2021-08-27 ``` -#### Request body to disable Auto-Stop +#### Request body to disable auto-stop ```json { @@ -85,12 +83,12 @@ PATCH https://management.azure.com/subscriptions/12345678-1234-1234-1234-1234567 } ``` -#### Request body to enable Auto-Stop +#### Request body to enable auto-stop ```json { - "properties": { - "enableAutoStop": true - } + "properties": { + "enableAutoStop": true + } } ``` diff --git a/data-explorer/azure-advisor.md b/data-explorer/azure-advisor.md index 22b7ce30b5..89e3be3cdd 100644 --- a/data-explorer/azure-advisor.md +++ b/data-explorer/azure-advisor.md @@ -8,9 +8,9 @@ ms.date: 03/08/2023 # Use Azure Advisor recommendations to optimize your Azure Data Explorer cluster -Azure Advisor analyzes the Azure Data Explorer cluster configurations and usage telemetry and offers personalized and actionable recommendations to help you optimize your cluster. +Azure Advisor analyzes Azure Data Explorer cluster configurations and usage telemetry, and offers personalized, actionable recommendations to help you optimize your cluster. -## Access the Azure Advisor recommendations +## Access Azure Advisor recommendations There are two ways to access the Azure Advisor recommendations: @@ -19,45 +19,45 @@ There are two ways to access the Azure Advisor recommendations: ### View Azure Advisor recommendations for your Azure Data Explorer cluster -1. In the Azure portal, go to your Azure Data Explorer cluster page. -1. In the left-hand menu, under **Monitoring**, select **Advisor recommendations**. A list of recommendations opens for that cluster. +1. In the Azure portal, go to your Azure Data Explorer cluster page. +1. In the left menu, under **Monitoring**, select **Advisor recommendations**. A list of recommendations opens for that cluster. - :::image type="content" source="media/azure-advisor/resource-group-advisor-recommendations.png" alt-text="Azure Advisor recommendations for your Azure Data Explorer cluster."::: + :::image type="content" source="media/azure-advisor/resource-group-advisor-recommendations.png" alt-text="Screenshot of Azure Advisor recommendations for an Azure Data Explorer cluster."::: ### View Azure Advisor recommendations for all clusters in your subscription -1. In the Azure portal, go to the [Advisor resource](https://ms.portal.azure.com/#blade/Microsoft_Azure_Expert/AdvisorMenuBlade/overview). -1. In **Overview**, select one or more subscriptions for which you want recommendations. +1. In the Azure portal, go to the [Advisor resource](https://ms.portal.azure.com/#blade/Microsoft_Azure_Expert/AdvisorMenuBlade/overview). +1. In **Overview**, select one or more subscriptions to get recommendations. 1. Select **Azure Data Explorer Clusters** and **Azure Data Explorer Databases** in the second dropdown. - :::image type="content" source="media/azure-advisor/advisor-resource.png" alt-text="Azure Advisor resource."::: + :::image type="content" source="media/azure-advisor/advisor-resource.png" alt-text="Screenshot of Azure Advisor resource page."::: -## Use the Azure Advisor recommendations +## Use Azure Advisor recommendations -There are various Azure Advisor recommendation types. Use the relevant recommendation type to help you optimize your cluster. +Azure Advisor offers different recommendation types. Use the relevant type to optimize your cluster. -1. In **Advisor**, under **Recommendations**, select **Cost** for cost recommendations. +1. In **Advisor**, under **Recommendations**, select **Cost** to view cost recommendations. - :::image type="content" source="media/azure-advisor/select-recommendation-type.png" alt-text="Select recommendation type."::: + :::image type="content" source="media/azure-advisor/select-recommendation-type.png" alt-text="Screenshot of the Azure Advisor interface showing the selection of recommendation type."::: 1. Select a recommendation from the list. - :::image type="content" source="media/azure-advisor/select-recommendation.png" alt-text="Select recommendation."::: + :::image type="content" source="media/azure-advisor/select-recommendation.png" alt-text="Screenshot of the Azure Advisor interface showing a list of recommendations."::: -1. The following window contains a list of clusters to which the recommendation is relevant. The recommendation details are different for every cluster and include the recommended action. +1. The window shows a list of clusters relevant to the recommendation. Recommendation details vary for each cluster and include the recommended action. - :::image type="content" source="media/azure-advisor/clusters-with-recommendations.png" alt-text="List of clusters with recommendations."::: + :::image type="content" source="media/azure-advisor/clusters-with-recommendations.png" alt-text="Screenshot showing a list of clusters with relevant recommendations in Azure Advisor."::: ## Recommendation types -Cost, performance, reliability, and service excellence recommendations are currently available. +Cost, performance, reliability, and service excellence recommendations are available. > [!IMPORTANT] -> Your actual yearly savings may vary. The yearly savings presented are based on 'pay-as-you-go' prices. These potential saving don't take into account Azure Reserved Virtual Machine Instance (RIs) billing discounts. +> Your actual yearly savings may vary. The yearly savings presented are based on 'pay-as-you-go' prices. These potential savings don't take into account Azure Reserved Virtual Machine Instance (RIs) billing discounts. ### Cost recommendations -The **Cost** recommendations are available for clusters that can be changed to reduce cost without compromising performance. +The **Cost** recommendations are for clusters that can be changed to reduce cost without compromising performance. Cost recommendations include: * [Unused running Azure Data Explorer cluster](#unused-running-azure-data-explorer-cluster) @@ -75,7 +75,7 @@ In some cases, clusters may be [automatically stopped](auto-stop-clusters.md). I * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off -The recommendation is to stop the cluster to reduce cost but still preserve the data. If the data isn't needed, consider deleting the cluster to increase your savings. +The recommendation is to stop the cluster to reduce cost while preserving the data. If the data isn't needed, consider deleting the cluster to increase your savings. #### Unused stopped Azure Data Explorer cluster @@ -89,20 +89,20 @@ The recommendation is to delete the cluster to reduce cost. #### Change Data Explorer clusters to a more cost effective and better performing SKU -The recommendation **Change Data Explorer clusters to a more cost effective and better performing SKU** is given to a cluster whose cluster is operating under a non-optimal SKU. This updated SKU should reduce your costs and improve overall performance. We have calculated the required instance count that meets the cache requirements of your cluster, while ensuring that performance will not be negatively impacted. +The recommendation **Change Data Explorer clusters to a more cost effective and better performing SKU** is for a cluster operating under a nonoptimal SKU. This updated SKU should reduce your costs and improve overall performance. We have calculated the required instance count that meets the cache requirements of your cluster, while ensuring that performance won't be negatively impacted. -As part of the recommendation, we recommend enabling Optimized Autoscale if not yet enabled. Optimized Autoscale will perform a more in-depth analysis of the cluster's performance, and if needed, will further scale-in the cluster. This will result in additional cost reductions. The Optimized Autoscale recommendations include a Min and Max instance count recommendation. The Max value is set to the recommended SKU instance count. If the cluster has plans to organically grow, it is recommended to manually increase this Max number. If Optimized Autoscale is already configured on your cluster, in some cases the recommendation may suggest to increase the Max instance count. +As part of the recommendation, we recommend enabling Optimized Autoscale if not yet enabled. Optimized Autoscale will perform a more in-depth analysis of the cluster's performance, and if needed, will further scale-in the cluster. This results in more cost reductions. The Optimized Autoscale recommendations include minimum and maximum instance count recommendations. The Max value is set to the recommended SKU instance count. If the cluster has plans to organically grow, it's recommended to manually increase this Max number. If Optimized Autoscale is already configured on your cluster, in some cases the recommendation may suggest increasing the Max instance count. -The SKU recommendation takes into account the current zones definitions of a cluster and if the cluster supports zones will only recommend target SKUs that have a minimum of two zones. Adding more compute availability zones does not incur any additional costs. +The SKU recommendation takes into account the current zones definitions of a cluster and if the cluster supports zones will only recommend target SKUs that have a minimum of two zones. Adding more compute availability zones doesn't incur extra costs. -The advisor SKU recommendation is updated every few hours. The recommendation checks for capacity availability of the selected SKU in the region. However, it is important to note that capacity availability is dynamic and changes over time. +The advisor SKU recommendation is updated every few hours. The recommendation checks for capacity availability of the selected SKU in the region. However, it's important to note that capacity availability is dynamic and changes over time. > [!NOTE] -> The advisor SKU recommendation does not currently support clusters with Virtual Network or managed private endpoint configurations. +> The advisor SKU recommendation doesn't support clusters with Virtual Network or managed private endpoint configurations. #### Reduce cache for Azure Data Explorer tables -The **reduce Azure Data Explorer table cache period for cluster cost optimization** recommendation is given for a cluster that can reduce its table's [cache policy](/kusto/management/cache-policy?view=azure-data-explorer&preserve-view=true). This recommendation is based on the query look-back period during the last 30 days. To see where savings are possible, you can view the most relevant 5 tables per database for potential cache savings. This recommendation is only offered if the cluster can scale-in or scale-down after a cache policy change. Advisor checks if the cluster is "bounded by data", meaning the cluster has low CPU and low ingestion utilization, but because of high data capacity the cluster can't scale-in or scale-down. +The **reduce Azure Data Explorer table cache period for cluster cost optimization** recommendation is given for a cluster that can reduce its table's [cache policy](/kusto/management/cache-policy?view=azure-data-explorer&preserve-view=true). This recommendation is based on the query look-back period during the last 30 days. To see where savings are possible, you can view the most relevant five tables per database for potential cache savings. This recommendation is only offered if the cluster can scale-in or scale-down after a cache policy change. Advisor checks if the cluster is "bounded by data," meaning the cluster has low CPU and low ingestion utilization, but because of high data capacity the cluster can't scale-in or scale-down. #### Enable Optimized autoscale @@ -111,20 +111,20 @@ The recommendation **enable Optimized autoscale** is given when enabling [Optimi ### Performance recommendations -The **Performance** recommendations help improve the performance of your Azure Data Explorer clusters. +The **Performance** recommendations improve the performance of your Azure Data Explorer clusters. Performance recommendations include the following: * [Change Data Explorer clusters to a more cost effective and better performing SKU](#change-data-explorer-clusters-to-a-more-cost-effective-and-better-performing-sku) * [Update the cache policy for Azure Data Explorer tables](#update-cache-policy-for-azure-data-explorer-tables) #### Update cache policy for Azure Data Explorer tables -The **review Azure Data Explorer table cache-period policy for better performance** recommendation is given for a cluster that requires a different look-back period time filter, or a larger [cache policy](/kusto/management/cache-policy?view=azure-data-explorer&preserve-view=true). This recommendation is based on the query look-back period of the last 30 days. Most queries run in the last 30 days accessed data not in the cache, which can increase the query run-time. You can view the top 5 tables per database that accessed out-of-cache data, ordered by querying percentage. +The **review Azure Data Explorer table cache-period policy for better performance** recommendation is given for a cluster that requires a different look-back period time filter, or a larger [cache policy](/kusto/management/cache-policy?view=azure-data-explorer&preserve-view=true). This recommendation is based on the query look-back period of the last 30 days. Most queries run in the last 30 days accessed data not in the cache, which can increase the query run-time. You can view the top five tables per database that accessed out-of-cache data, ordered by querying percentage. -You may also get a performance recommendation to reduce the cache policy. This can happen if the cluster is data-bound. A cluster is data-bound if the data to be cached according to the caching policy is larger that the total size of the cluster's cache. Reducing the cache policy for data-bound clusters will reduce the number of cache misses and potentially improves performance. +You may also get a performance recommendation to reduce the cache policy. This can happen if the cluster is data-bound. A cluster is data-bound if the data to be cached according to the caching policy is larger that the total size of the cluster's cache. Reducing the cache policy for data-bound clusters reduce the number of cache misses and potentially improves performance. ### Operational Excellence recommendations -The **Operational Excellence** or "best practice" recommendations are recommendations whose implementation does not improve cost or performance immediately but can benefit the cluster in the future. This includes [reducing the table cache policy to match usage patterns](#reduce-table-cache-policy-to-match-usage-patterns). +The **Operational Excellence** or "best practice" recommendations are recommendations whose implementation doesn't improve cost or performance immediately but can benefit the cluster in the future. This includes [reducing the table cache policy to match usage patterns](#reduce-table-cache-policy-to-match-usage-patterns). #### Reduce table cache policy to match usage patterns @@ -133,7 +133,8 @@ This recommendation can be useful for tables where the actual query lookback bas ### Reliability recommendations -The **Reliability recommendations** help you ensure and improve the continuity of your business-critical applications. +The **Reliability recommendations** help you ensure and improve the continuity of your business-critical applications. + Reliability recommendations include the following: * [Cluster uses subnet without delegation](#cluster-uses-subnet-without-delegation) @@ -141,7 +142,7 @@ Reliability recommendations include the following: #### Cluster uses subnet without delegation -The strong recommendation is given to a virtual network cluster that uses a subnet without delegation for 'Microsoft.Kusto/clusters'. When you delegate a subnet to a cluster, you allow that service to establish basic network configuration rules for the subnet, which helps the cluster operate its instances in a stable manner. +This recommendation is for a virtual network cluster that uses a subnet without delegation for 'Microsoft.Kusto/clusters'. When you delegate a subnet to a cluster, you allow that service to establish basic network configuration rules for the subnet, which helps the cluster operate its instances in a stable manner. #### Cluster uses subnet with invalid IP configuration @@ -150,4 +151,4 @@ The recommendation is given to a virtual network cluster where the subnet is als ## Related content * [Manage cluster horizontal scaling (scale out) in Azure Data Explorer to accommodate changing demand](manage-cluster-horizontal-scaling.md) -* [Manage cluster vertical scaling (scale up) in Azure Data Explorer to accommodate changing demand](manage-cluster-vertical-scaling.md) +* [Manage cluster vertical scaling (scale up) in Azure Data Explorer to accommodate changing demand](manage-cluster-vertical-scaling.md). From 0879c55dd3909a7eb18ba8646bc3d3fcba0c36a7 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 8 Dec 2025 15:25:50 +0200 Subject: [PATCH 12/22] build fixes --- data-explorer/.openpublishing.redirection.json | 2 +- data-explorer/auto-stop-clusters.md | 2 +- data-explorer/azure-advisor.md | 7 +++---- data-explorer/data-explorer-insights.md | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/data-explorer/.openpublishing.redirection.json b/data-explorer/.openpublishing.redirection.json index 65ef9cf487..d8f610cac1 100644 --- a/data-explorer/.openpublishing.redirection.json +++ b/data-explorer/.openpublishing.redirection.json @@ -16,7 +16,7 @@ "redirect_document_id": false }, { - "source_path": "/azure/synapse-analytics/quickstart-connect-azure-data-explorer", + "source_path": "azure/synapse-analytics/quickstart-connect-azure-data-explorer", "redirect_url": "/azure/data-explorer/integrate-overview", "redirect_document_id": false }, diff --git a/data-explorer/auto-stop-clusters.md b/data-explorer/auto-stop-clusters.md index 64eb4c1328..7d67ecac2a 100644 --- a/data-explorer/auto-stop-clusters.md +++ b/data-explorer/auto-stop-clusters.md @@ -17,7 +17,7 @@ Cluster behavior doesn't resume automatically. Restart the cluster manually. > * Leader clusters. For more information, see [follower databases](follower.md). > * Clusters deployed in a virtual network. > * [Start-for-free](start-for-free.md) clusters. -> * Clusters where the [auto-stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off. +> * Clusters where the [auto-stop setting](auto-stop-clusters.md#configure-auto-stop-while-creating-a-new-cluster) is turned off. ## Manage automatic stop behavior on your cluster diff --git a/data-explorer/azure-advisor.md b/data-explorer/azure-advisor.md index 89e3be3cdd..00d6bcabee 100644 --- a/data-explorer/azure-advisor.md +++ b/data-explorer/azure-advisor.md @@ -29,7 +29,7 @@ There are two ways to access the Azure Advisor recommendations: 1. In the Azure portal, go to the [Advisor resource](https://ms.portal.azure.com/#blade/Microsoft_Azure_Expert/AdvisorMenuBlade/overview). 1. In **Overview**, select one or more subscriptions to get recommendations. 1. Select **Azure Data Explorer Clusters** and **Azure Data Explorer Databases** in the second dropdown. - + :::image type="content" source="media/azure-advisor/advisor-resource.png" alt-text="Screenshot of Azure Advisor resource page."::: ## Use Azure Advisor recommendations @@ -70,11 +70,11 @@ Cost recommendations include: A cluster is considered unused and running if it is in the running state and has neither ingested data nor run queries in the past five days. In some cases, clusters may be [automatically stopped](auto-stop-clusters.md). In the following cases, the cluster won't automatically stop and a recommendation will be shown: + * Leader clusters. For more information, see [follower databases](follower.md). * Clusters deployed in a Virtual Network. - * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off + * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#configure-auto-stop-while-creating-a-new-cluster) is turned off - The recommendation is to stop the cluster to reduce cost while preserving the data. If the data isn't needed, consider deleting the cluster to increase your savings. #### Unused stopped Azure Data Explorer cluster @@ -86,7 +86,6 @@ The recommendation is to delete the cluster to reduce cost. > [!CAUTION] > Stopped clusters may still contain data. Before deleting the cluster, verify that the data is no longer needed. Once the cluster is deleted, the data will no longer be accessible. - #### Change Data Explorer clusters to a more cost effective and better performing SKU The recommendation **Change Data Explorer clusters to a more cost effective and better performing SKU** is for a cluster operating under a nonoptimal SKU. This updated SKU should reduce your costs and improve overall performance. We have calculated the required instance count that meets the cache requirements of your cluster, while ensuring that performance won't be negatively impacted. diff --git a/data-explorer/data-explorer-insights.md b/data-explorer/data-explorer-insights.md index ab112ddd84..8a52f7b9af 100644 --- a/data-explorer/data-explorer-insights.md +++ b/data-explorer/data-explorer-insights.md @@ -123,7 +123,7 @@ The **Tables** tab shows the latest and historical properties of tables in the c The **Cache** tab allows users to analyze their actual queries' lookback window patterns and compare them to the configured cache policy (for each table). You can identify tables used by the most queries and tables that aren't queried at all, and adapt the cache policy accordingly. -You might get cache policy recommendations on specific tables in Azure Advisor. Currently, cache recommendations are available only from the [main Azure Advisor dashboard](azure-advisor.md#use-the-azure-advisor-recommendations). They're based on actual queries' lookback window in the past 30 days and an unoptimized cache policy for at least 95 percent of the queries. +You might get cache policy recommendations on specific tables in Azure Advisor. Currently, cache recommendations are available only from the [main Azure Advisor dashboard](azure-advisor.md#use-azure-advisor-recommendations). They're based on actual queries' lookback window in the past 30 days and an unoptimized cache policy for at least 95 percent of the queries. Cache reduction recommendations in Azure Advisor are available for clusters that are "bounded by data." That means the cluster has low CPU and low ingestion utilization, but because of high data capacity, the cluster can't scale in or scale down. From 71d33b5d63da48ef9dca25a25e63955bad670396 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Mon, 8 Dec 2025 15:28:56 +0200 Subject: [PATCH 13/22] ms.topic update --- data-explorer/data-explorer-insights.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/data-explorer-insights.md b/data-explorer/data-explorer-insights.md index 8a52f7b9af..b36cca2188 100644 --- a/data-explorer/data-explorer-insights.md +++ b/data-explorer/data-explorer-insights.md @@ -2,7 +2,7 @@ title: Azure Data Explorer Clusters insights description: This article describes how to use Azure Data Explorer Clusters Insights. ms,reviewer: guregini -ms.topic: conceptual +ms.topic: article ms.date: 05/24/2022 ms.custom: - subject-monitoring From 81c5624500c350093fb31b0753d8257a144c8fb7 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Wed, 31 Dec 2025 12:46:14 +0200 Subject: [PATCH 14/22] double check --- data-explorer/auto-stop-clusters.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data-explorer/auto-stop-clusters.md b/data-explorer/auto-stop-clusters.md index 7d67ecac2a..57f77840ee 100644 --- a/data-explorer/auto-stop-clusters.md +++ b/data-explorer/auto-stop-clusters.md @@ -15,9 +15,9 @@ Cluster behavior doesn't resume automatically. Restart the cluster manually. > The following cluster types aren't stopped automatically:
> > * Leader clusters. For more information, see [follower databases](follower.md). -> * Clusters deployed in a virtual network. -> * [Start-for-free](start-for-free.md) clusters. -> * Clusters where the [auto-stop setting](auto-stop-clusters.md#configure-auto-stop-while-creating-a-new-cluster) is turned off. +> * Clusters deployed in a Virtual Network +> * [Start-for-free](start-for-free.md) clusters +> * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off ## Manage automatic stop behavior on your cluster From 082a770cf221759740d475f0dd340fca25c2f2f3 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Wed, 31 Dec 2025 13:40:46 +0200 Subject: [PATCH 15/22] fix bookmark --- data-explorer/auto-stop-clusters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/auto-stop-clusters.md b/data-explorer/auto-stop-clusters.md index 57f77840ee..401e0f8b87 100644 --- a/data-explorer/auto-stop-clusters.md +++ b/data-explorer/auto-stop-clusters.md @@ -17,7 +17,7 @@ Cluster behavior doesn't resume automatically. Restart the cluster manually. > * Leader clusters. For more information, see [follower databases](follower.md). > * Clusters deployed in a Virtual Network > * [Start-for-free](start-for-free.md) clusters -> * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#set-auto-stop-settings-while-creating-a-new-cluster) is turned off +> * Clusters where the [Auto-Stop setting](auto-stop-clusters.md#configure-auto-stop-while-creating-a-new-cluster) is turned off ## Manage automatic stop behavior on your cluster From 8076905f0fbedc17487a36a9ffdca5334990ac1b Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 8 Jan 2026 11:46:34 +0200 Subject: [PATCH 16/22] Update source path in redirection configuration --- data-explorer/.openpublishing.redirection.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/.openpublishing.redirection.json b/data-explorer/.openpublishing.redirection.json index d8f610cac1..96581bf158 100644 --- a/data-explorer/.openpublishing.redirection.json +++ b/data-explorer/.openpublishing.redirection.json @@ -16,7 +16,7 @@ "redirect_document_id": false }, { - "source_path": "azure/synapse-analytics/quickstart-connect-azure-data-explorer", + "source_path": "azure/synapse-analytics/quickstart-connect-azure-data-explorer.md", "redirect_url": "/azure/data-explorer/integrate-overview", "redirect_document_id": false }, From 3b3dbec46ad60a25b31c4754ab3046d5286b68c6 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 8 Jan 2026 11:47:37 +0200 Subject: [PATCH 17/22] Fix typo in database-script.md --- data-explorer/database-script.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/database-script.md b/data-explorer/database-script.md index 02434bdd86..d7049c1386 100644 --- a/data-explorer/database-script.md +++ b/data-explorer/database-script.md @@ -268,7 +268,7 @@ Use the following settings: ## Limitations -* Scripts are only supported in Azure Data Explorer +* Scripts are only supported in Azure Data Explorer. * Two scripts can't be added, modified, or removed in parallel on the same cluster. If this occurs, the following error: `Code="ServiceIsInMaintenance"` is raised. You can work around the issue by placing a dependency between the two scripts so that they're created or updated sequentially. * To create functions with [cross-cluster queries](/kusto/query/cross-cluster-or-database-queries?view=azure-data-explorer&preserve-view=true) using scripts, you must set the `skipvalidation` property to `true` in the [.create function command](/kusto/management/create-function?view=azure-data-explorer&preserve-view=true). From 79466ed4a1ce2e03abd0f7d82ffbe41b447ff3d7 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 8 Jan 2026 11:49:12 +0200 Subject: [PATCH 18/22] Fix capitalization in subscription picker explanation Corrected capitalization for consistency in the insights documentation. --- data-explorer/data-explorer-insights.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/data-explorer-insights.md b/data-explorer/data-explorer-insights.md index b36cca2188..8adc6ff7ae 100644 --- a/data-explorer/data-explorer-insights.md +++ b/data-explorer/data-explorer-insights.md @@ -183,7 +183,7 @@ The following sections will help you diagnose and troubleshoot of some of the co ### Why don't I see all my subscriptions in the subscription picker? - shows only subscriptions that contain Azure Data Explorer clusters chosen from the selected subscription filter. You select a subscription filter under **Directory + subscription** in the Azure portal. +Shows only subscriptions that contain Azure Data Explorer clusters chosen from the selected subscription filter. You select a subscription filter under **Directory + subscription** in the Azure portal. :::image type="content" source="/azure/azure-monitor/insights/media/key-vaults-insights-overview/Subscriptions.png" alt-text="Screenshot of selecting a subscription filter."::: From 07b8b4ff85a3139115fba94080397b87625aa296 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 8 Jan 2026 11:57:15 +0200 Subject: [PATCH 19/22] Fix title and grammar in Event Hub overview --- data-explorer/ingest-data-event-hub-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data-explorer/ingest-data-event-hub-overview.md b/data-explorer/ingest-data-event-hub-overview.md index bc12d5a37f..9cedea10f3 100644 --- a/data-explorer/ingest-data-event-hub-overview.md +++ b/data-explorer/ingest-data-event-hub-overview.md @@ -1,5 +1,5 @@ --- -title: Ingest from Event Hub - Azure Data Explorer +title: Ingest from Event Hubs - Azure Data Explorer description: This article describes how to ingest data from Azure Event Hubs into Azure Data Explorer. ms.reviewer: orspodek ms.topic: how-to @@ -214,7 +214,7 @@ See the [sample app](https://github.com/Azure-Samples/event-hubs-dotnet-ingest) ## Set up Geo-disaster recovery solution -Event hub offers a [Geo-disaster recovery](/azure/event-hubs/event-hubs-geo-dr) solution. +Event hubs offer a [Geo-disaster recovery](/azure/event-hubs/event-hubs-geo-dr) solution. Azure Data Explorer doesn't support `Alias` event hub namespaces. To implement the Geo-disaster recovery in your solution, create two event hub data connections: one for the primary namespace and one for the secondary namespace. Azure Data Explorer listens to both event hub connections. > [!NOTE] From d1fe4b74f4ec2b234dd0e0937f2105494d981b87 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 8 Jan 2026 11:57:54 +0200 Subject: [PATCH 20/22] Fix grammatical error in data overview documentation --- data-explorer/integrate-data-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/integrate-data-overview.md b/data-explorer/integrate-data-overview.md index 298633635b..fd5113585d 100644 --- a/data-explorer/integrate-data-overview.md +++ b/data-explorer/integrate-data-overview.md @@ -27,7 +27,7 @@ Use the following filters to see other connectors, tools, and integrations are a :::column-end::: :::row-end::: -The following tables summarizes the available data connectors, tools, and integrations. +The following tables summarize the available data connectors, tools, and integrations. ## [Connectors](#tab/connectors) From f478f287024b75a8e1a464e26ae7634c8b782376 Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 8 Jan 2026 11:59:15 +0200 Subject: [PATCH 21/22] Fix spelling errors in integration overview Corrected spelling errors in the Matlab and Kusto CLI sections. --- data-explorer/integrate-query-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data-explorer/integrate-query-overview.md b/data-explorer/integrate-query-overview.md index 251a5a5a2c..1f561b2f9d 100644 --- a/data-explorer/integrate-query-overview.md +++ b/data-explorer/integrate-query-overview.md @@ -38,7 +38,7 @@ The following tables summarize the available query connectors, tools, and integr | [Azure Functions](integrate-overview.md#azure-functions) | Query, Ingest, and Orchestrate | Data Engineer, Application Developer | Integrate Azure Data Explorer into your serverless workflows to ingest data and run queries against your cluster | | [JDBC](integrate-overview.md#jdbc) | Query | Application Developer | Use JDBC to connect to Azure Data Explorer databases and execute queries | | [Logic Apps](integrate-overview.md#logic-apps) | Query and Orchestrate | Low Code Application Developer | Run queries and commands automatically as part of a scheduled or triggered task. | -| [Matlab](integrate-overview.md#matlab) | Query | Data Analyst, Data Scientist | Analyse data, develop algorithms and create models. | +| [Matlab](integrate-overview.md#matlab) | Query | Data Analyst, Data Scientist | Analye data, develop algorithms and create models. | | [ODBC](integrate-overview.md#odbc) | Query | Application Developer | Establish a connection to Azure Data Explorer from any application that is equipped with support for the ODBC driver for SQL Serve. | | [Power Apps](integrate-overview.md#power-apps) | Query and Orchestrate | Low Code Application Developer | Build a low code, highly functional app to make use of data stored in Azure Data Explorer | | [Power Automate](integrate-overview.md#power-automate) | Query and Orchestrate | Low Code Application Developer | Orchestrate and schedule flows, send notifications, and alerts, as part of a scheduled or triggered task | @@ -52,7 +52,7 @@ The following tables summarize the available query connectors, tools, and integr | [Azure Monitor](/azure/data-explorer/integrate-overview?tabs=integrations#azure-monitor) | Query and Export | Data Engineer | Low cost data retention | | [Jupyter Notebooks](/azure/data-explorer/integrate-overview?tabs=integrations#jupyter-notebooks) | Author Notebooks | Data Engineer, Data Scientist | Create and share documents containing live code, equations, visualizations for statistical modeling, data visualization, and machine learning using data stored in Azure Data Explorer. | | [Kusto.Explorer](/azure/data-explorer/integrate-overview?tabs=integrations#kustoexplorer) | Query, Ingest, Admin and Dashboarding | Data Engineer, Data Analyst, Data Scientist | End-to-end data exploration | -| [Kusto CLI](/azure/data-explorer/integrate-overview?tabs=integrations#kusto-cli) | Query and Admin | Aplication Admin, System Administrator | Send queries and control commands to an Azure Data Explorer cluster using command line utility | +| [Kusto CLI](/azure/data-explorer/integrate-overview?tabs=integrations#kusto-cli) | Query and Admin | Application Admin, System Administrator | Send queries and control commands to an Azure Data Explorer cluster using command line utility | | [Kusto Query Language parser](/azure/data-explorer/integrate-overview?tabs=integrations#kql-parser) | Query and Schema Exploration | Application Developer | Parse queries, perform semantic analysis, check for errors, and optimize your queries. | | [Kusto Query Language Monaco editor](/azure/data-explorer/integrate-overview?tabs=integrations#monaco-editor-pluginembed) | Query, Admin, and Dashboarding | Application Developer, Data Engineer | Integrate Monaco Editor in your application | | [Real-Time Intelligence in Microsoft Fabric](/azure/data-explorer/integrate-overview?tabs=integrations#real-time-analytics-in-microsoft-fabric) | Query, Ingest, Admin, and Dashboarding | Data Engineer, Data Analyst, Data Scientist | End-to-end data exploration | From fa6ba6064db84df92ed1ad15420355dbab190cfe Mon Sep 17 00:00:00 2001 From: ktalmor <193799742+ktalmor@users.noreply.github.com> Date: Thu, 8 Jan 2026 12:00:49 +0200 Subject: [PATCH 22/22] Fix typos and improve clarity in POC playbook --- data-explorer/proof-of-concept-playbook.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-explorer/proof-of-concept-playbook.md b/data-explorer/proof-of-concept-playbook.md index 43cdca679c..a83e694a26 100644 --- a/data-explorer/proof-of-concept-playbook.md +++ b/data-explorer/proof-of-concept-playbook.md @@ -125,7 +125,7 @@ Here are the typical subject areas that are evaluated with Azure Data Explorer: > Use the following frequently asked questions to help you plan your POC. > > - **How do I choose the SKU for my POC cluster?** -> Use the [Select a SKU for your Azure Data Explorer cluster](manage-cluster-choose-sku.md) guide to help you choose the SKU for your POC cluster. When starting a POC, we recommend starting with a smaller SKUs and scale up SKU as required when you begin testing and capturing results. +> Use the [Select a SKU for your Azure Data Explorer cluster](manage-cluster-choose-sku.md) guide to help you choose the SKU for your POC cluster. When starting a POC, we recommend starting with a smaller SKU and scale up the SKU as required when you begin testing and capturing results. > - **How do I choose the caching period when creating my POC cluster?** > To provide best query performance, ingested data is cached on the local SSD disk. This level of performance is not always required and less frequently queried data can often be stored on cheaper blob storage. Queries on data in blob storage run slower, but this acceptable in many scenarios. Knowing this can help you identify the number of compute nodes you need to hold your data in local SSD and continue to meet your query performance requirements. For example, if you you want to query *x* days worth of data (based on ingestion age) more frequently and retain data for *y* days and query it less frequently, in your cache retention policy, specify *x* as the value for hot cache retention and *y* as the value for the total retention. For more information, see [Cache policy](/kusto/management/cache-policy?view=azure-data-explorer&preserve-view=true). > - **How do I choose the retention period when creating my POC cluster?**