Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions data-explorer/excel.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
---
title: 'Visualize a query in Excel'
title: 'Visualize a Query in Excel'
description: 'In this article, you learn how to use a query from the web UI into Excel, by exporting it directly or by using the native connector in Excel.'
ms.reviewer: orspodek
ms.topic: how-to
ms.date: 04/30/2024
ms.date: 02/08/2026

# Customer intent: As a data analyst, I want to understand how to visualize my Azure Data Explorer data in Excel.
---

# Use Excel to visualize data from the web UI

This article shows you how to view your query in Excel, by exporting directly from the web UI or importing into Excel.
This article shows you how to view your query in Excel by exporting directly from the web UI or importing into Excel.

## Prerequisites

* A Microsoft account or a Microsoft Entra user identity to sign in to the [help cluster](https://dataexplorer.azure.com/clusters/help/databases/Samples).

## View data in Excel

You can use the following options to query data in Excel:
Use the following options to query data in Excel:

### [Start from the web UI](#tab/azure-data-explorer)

Expand All @@ -32,7 +32,7 @@ Export the query directly from the web UI.

The query is saved as an Excel workbook in the Downloads folder.

1. Open the downloaded workbook to view your data. Enable editing and enable content if requested in the top ribbon.
1. Open the downloaded workbook to view your data. Select **Enable editing** and **Enable content** if requested in the top ribbon.

### [Start from Excel](#tab/excel)

Expand All @@ -58,7 +58,7 @@ Get data from Azure Data Explorer datasource into Excel.

|Field |Description |
|---------|---------|
|**Limit query result record number** | Limit the number of records loaded into excel |
|**Limit query result record number** | Limit the number of records loaded into Excel |
|**Limit query result data size (bytes)** | Limit the data size |
|**Disable result-set truncation** | |
|**Additional Set statements (separated by semicolons)** | Add `set` statements to apply to data source |
Expand All @@ -74,7 +74,7 @@ Get data from Azure Data Explorer datasource into Excel.
:::image type="content" source="media/excel/navigate-table-preview-window.png" alt-text="Screenshot of the Table preview window.":::

> [!TIP]
> If **Database** and/or **Table name or Azure Data Explorer query** are already specified, the correct table preview pane will open automatically.
> If **Database** and **Table name or Azure Data Explorer query** are already specified, the correct table preview pane opens automatically.

1. If you select **Transform Data**, the **Power Query Editor** window opens. In the window, select **Advanced Editor**.

Expand All @@ -96,7 +96,7 @@ Get data from Azure Data Explorer datasource into Excel.

## Analyze and visualize data in Excel

Once the data loads to excel and is available in your Excel sheet, you can analyze, summarize, and visualize the data by creating relationships and visuals.
After loading data to Excel and making it available in your Excel sheet, you can analyze, summarize, and visualize the data by creating relationships and visuals.

1. In the **Table Design** tab, select **Summarize with PivotTable**. In the **Create PivotTable** window, select the relevant table, and select **OK**.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Generate a SAS token
description: This article describes how to generate a SAS token.
ms.reviewer: shanisolomon
ms.topic: how-to
ms.date: 08/11/2024
ms.date: 02/01/2026
ms.custom: sfi-image-nochange
---
# Generate a SAS token
Expand All @@ -15,9 +15,9 @@ This article shows you how to generate a SAS token to a storage resource. You ca
## Azure portal

1. In the [Azure portal](https://portal.azure.com/), open **Storage accounts**.
1. Select the storage account that contains the resource for which you'd like to create a SAS token.
1. Select the storage account that contains the resource for which you want to create a SAS token.
1. From the left menu, select **Containers**.
1. Navigate to the container, or drill down to the individual blob for which you'd like to create a SAS token.
1. Navigate to the container, or drill down to the individual blob for which you want to create a SAS token.
1. Right-click on the container or blob and select **Generate SAS** from the context menu.

:::image type="content" source="storage/generate-sas-storage-account.png" lightbox="storage/generate-sas-storage-account.png" alt-text="Screenshot of Azure portal with Containers selected. Specific container is right-clicked and a menu opens. Generate SAS is selected from this menu.":::
Expand Down
23 changes: 12 additions & 11 deletions data-explorer/kusto/api/get-started/app-hello-kusto.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ title: Create your first
description: Learn how to create your first app to print Hello Kusto using Kusto client libraries.
ms.reviewer: yogilad
ms.topic: how-to
ms.date: 11/28/2024
ms.date: 02/01/2026
ms.custom: sfi-ropc-nochange
#customer intent: To learn about creating a simple app that prints Hello Kusto using Kusto client libraries.
---

# Hello Kusto: Create your first app

> [!INCLUDE [applies](../../includes/applies-to-version/applies.md)] [!INCLUDE [fabric](../../includes/applies-to-version/fabric.md)] [!INCLUDE [azure-data-explorer](../../includes/applies-to-version/azure-data-explorer.md)]
Expand Down Expand Up @@ -131,7 +132,7 @@ In your preferred IDE or text editor, create a project or file named *hello kust

### [TypeScript](#tab/typescript)

The `clientId` and `redirectUri` are from the Microsoft Entra app registration you created in the **Prerequisites** section of [Set up your development environment](app-set-up.md#prerequisites).
The `clientId` and `redirectUri` come from the Microsoft Entra app registration you create in the **Prerequisites** section of [Set up your development environment](app-set-up.md#prerequisites).

```typescript
const clusterUri = "https://help.kusto.windows.net";
Expand All @@ -157,15 +158,15 @@ In your preferred IDE or text editor, create a project or file named *hello kust
> [!NOTE]
> For interactive authentication, you need a Microsoft account or a Microsoft Entra user identity. An Azure subscription isn't required.
>
> In C#, the interactive authentication process may not prompt the user if:
> In C#, the interactive authentication process might not prompt the user if:
>
> - The user is already authenticated on the device
> - There is an existing Kusto.Explorer or Azure Data Explorer web UI authentication on the device
> - An existing Kusto.Explorer or Azure Data Explorer web UI authentication exists on the device

1. Create a client object that uses the connection string builder object to connect to the cluster.

> [!NOTE]
> We highly recommended that you cache and reuse the Kusto client instance. Frequently recreating Kusto clients may lead to performance degradation in your application and increased load on your cluster.
> Cache and reuse the Kusto client instance. Frequently recreating Kusto clients can cause performance problems in your application and increase the load on your cluster.

### [C\#](#tab/csharp)

Expand Down Expand Up @@ -274,7 +275,7 @@ In your preferred IDE or text editor, create a project or file named *hello kust
---

> [!NOTE]
> The query output is returned in the response as an object that contains one or more tables, comprised of one or more rows and columns.
> The query output comes back in the response as an object that contains one or more tables, made up of one or more rows and columns.
> The format of the object depends on the client library language.
>
> The *print kusto* query returns a single table with one row and column.
Expand All @@ -288,7 +289,7 @@ In your preferred IDE or text editor, create a project or file named *hello kust
>
> ### [Python / TypeScript](#tab/python+typescript)
>
> The response in the primary results JSON object. The object contains an array of tables, which in turn contains an array of rows. Each row contains data organized into a dictionary of columns. You can reference the result, as follows:
> The response is the primary results JSON object. The object contains an array of tables, which in turn contains an array of rows. Each row contains data organized into a dictionary of columns. You can reference the result, as follows:
>
> - The first array index `[0]` references the first table
> - The second array index `[0]` references the first row
Expand All @@ -301,8 +302,8 @@ In your preferred IDE or text editor, create a project or file named *hello kust
> The response is a KustoOperationResult object. You can reference the result, as follows:
>
> - Use the getPrimaryResults() method to get the primary results table
> - the [next()](https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/util/ListIterator.html#next()) method to read the first row
> - the getString() method to get the value of the first column
> - Use the [next()](https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/util/ListIterator.html#next()) method to read the first row
> - Use the getString() method to get the value of the first column
>
> ---

Expand Down Expand Up @@ -435,7 +436,7 @@ python hello_kusto.py

### [TypeScript](#tab/typescript)

In a Node.js environment:
In a Node.js environment, use the following command:

```bash
node hello-kusto.js
Expand All @@ -460,7 +461,7 @@ mvn install exec:java -Dexec.mainClass="<groupId>.HelloKusto"

---

You should see a result similar to the following:
You should see a result similar to the following output:

```bash
Hello Kusto!
Expand Down
26 changes: 13 additions & 13 deletions data-explorer/kusto/concepts/delete-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ title: Delete data
description: This article describes delete scenarios, including purge, dropping extents and retention based deletes.
ms.reviewer: avneraa
ms.topic: how-to
ms.date: 10/11/2024
ms.date: 02/01/2026
---
# Delete data

> [!INCLUDE [applies](../includes/applies-to-version/applies.md)] [!INCLUDE [fabric](../includes/applies-to-version/fabric.md)] [!INCLUDE [azure-data-explorer](../includes/applies-to-version/azure-data-explorer.md)]

Delete data from a table is supported in several ways. Use the following information to help you choose which deletion method is best for your use case.
You can delete data from a table in several ways. Use the following information to help you choose which deletion method is best for your use case.

:::moniker range="azure-data-explorer"
| Use case | Considerations | Method |
|--|--|--|
| Delete all data from a table. | | [Use the `.clear table data` command](#delete-all-data-in-a-table) |
| Routinely delete old data. | Use if you need an automated deletion solution. | [Use a retention policy](#delete-data-using-a-retention-policy) |
| Routinely delete old data. | Use if you need an automated deletion solution. | [Use a retention policy](#delete-data-by-using-a-retention-policy) |
| Bulk delete specific data by extents. | Only use if you're an expert user. | [Use the `.drop extents` command](#delete-data-by-dropping-extents) |
| Delete records based on their content. | - Storage artifacts that contain the deleted records aren't necessarily deleted. <br /> - Deleted records can't be recovered (regardless of any retention or recoverability settings). <br />- Use if you need a quick way to delete records. | [Use soft delete](#soft-delete)|
| Delete records based on their content. | - Storage artifacts that contain the deleted records are deleted. <br /> - Deleted records can't be recovered (regardless of any retention or recoverability settings). <br />- Requires significant system resources and time to complete. | [Use purge](#purge) |
Expand All @@ -25,7 +25,7 @@ Delete data from a table is supported in several ways. Use the following informa
| Use case | Considerations | Method |
|--|--|--|
| Delete all data from a table. | | [Use the `.clear table data` command](#delete-all-data-in-a-table) |
| Routinely delete old data. | Use if you need an automated deletion solution. | [Use a retention policy](#delete-data-using-a-retention-policy) |
| Routinely delete old data. | Use if you need an automated deletion solution. | [Use a retention policy](#delete-data-by-using-a-retention-policy) |
| Bulk delete specific data by extents. | Only use if you're an expert user. | [Use the `.drop extents` command](#delete-data-by-dropping-extents) |
| Delete records based on their content. | - Storage artifacts that contain the deleted records aren't necessarily deleted.<br /> - Deleted records can't be recovered (regardless of any retention or recoverability settings).<br />- Use if you need a quick way to delete records. | [Use soft delete](#delete-individual-rows) |
:::moniker-end
Expand All @@ -42,11 +42,11 @@ Syntax:
.clear table <TableName> data
```

## Delete data using a retention policy
## Delete data by using a retention policy

Automatically delete data based on a [retention policy](../management/retention-policy.md). You can set the retention policy at the database or table level. There's no guarantee as to when the deletion occurs, but it will not be deleted before the retention period. This is an efficient and convenient way to remove old data.
Automatically delete data based on a [retention policy](../management/retention-policy.md). You can set the retention policy at the database or table level. There's no guarantee as to when the deletion occurs, but data isn't deleted before the retention period. This method is an efficient and convenient way to remove old data.

Consider a database or table that is set for 90 days of retention. If only 60 days of data are needed, delete the older data as follows:
Consider a database or table that is set for 90 days of retention. If you need only 60 days of data, delete the older data as follows:

```kusto
.alter-merge database <DatabaseName> policy retention softdelete = 60d
Expand All @@ -56,7 +56,7 @@ Consider a database or table that is set for 90 days of retention. If only 60 da

## Delete data by dropping extents

[Extent (data shard)](../management/extents-overview.md) is the internal structure where data is stored. Each extent can hold up to millions of records. Extents can be deleted individually or as a group using [drop extent(s) commands](../management/drop-extents.md).
[Extent (data shard)](../management/extents-overview.md) is the internal structure where data is stored. Each extent can hold up to millions of records. You can delete extents individually or as a group by using [drop extent(s) commands](../management/drop-extents.md).

### Examples

Expand All @@ -77,19 +77,19 @@ You can delete all rows in a table or just a specific extent.
## Delete individual rows

:::moniker range="azure-data-explorer"
Both purge and soft delete can be used for deleting individual rows. Soft delete doesn't necessarily delete the storage artifacts that contain records to delete, and purge does delete all such storage artifacts.
You can use both purge and soft delete to delete individual rows. Soft delete doesn't necessarily remove the storage artifacts that contain records to delete, but purge removes all such storage artifacts.

Both methods prevent deleted records from being recovered, regardless of any retention or recoverability settings. The deletion process is final and irreversible.
Both methods prevent recovery of deleted records, regardless of any retention or recoverability settings. The deletion process is final and irreversible.

### Soft delete

With [soft delete](data-soft-delete.md), data isn't necessarily deleted from storage artifacts. This method marks all matching records as deleted, so that they'll be filtered out in queries, and doesn't require significant system resources.
By using [soft delete](data-soft-delete.md), you don't necessarily delete data from storage artifacts. This method marks all matching records as deleted, so that queries filter them out, and it doesn't require significant system resources.

### Purge

With [purge](data-purge.md), extents that have one or more records to be deleted, are replaced with new extents in which those records don't exist. This deletion process isn't immediate, requires significant system resources, and can take a whole day to complete.
By using [purge](data-purge.md), you replace extents that have one or more records to delete with new extents that don't contain those records. This deletion process isn't immediate, requires significant system resources, and can take a whole day to complete.
::: moniker-end

:::moniker range="microsoft-fabric"
[Soft delete](data-soft-delete.md) can be used for deleting individual rows. Data isn't necessarily deleted from storage artifacts. Soft delete prevent deleted records from being recovered, regardless of any retention or recoverability settings. The deletion process is final and irreversible. This method marks all matching records as deleted, so that they'll be filtered out in queries, and doesn't require significant system resources.
Use [soft delete](data-soft-delete.md) to delete individual rows. Data isn't necessarily deleted from storage artifacts. Soft delete prevents recovery of deleted records, regardless of any retention or recoverability settings. The deletion process is final and irreversible. This method marks all matching records as deleted, so queries filter them out, and it doesn't require significant system resources.
::: moniker-end
Loading