Skip to content

Commit c623560

Browse files
Merge pull request #2698 from MicrosoftDocs/main638895565452090060sync_temp
For protected branch, push strategy should use PR and merge to target branch method to work around git push error
2 parents e1b138e + f8b5a0f commit c623560

File tree

6 files changed

+115
-20
lines changed

6 files changed

+115
-20
lines changed

data-explorer/kusto/management/data-export/continuous-data-export.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Continuous data export
33
description: This article describes Continuous data export.
44
ms.reviewer: yifats
55
ms.topic: reference
6-
ms.date: 12/08/2024
6+
ms.date: 07/30/2025
77
---
88
# Continuous data export overview
99

@@ -101,12 +101,14 @@ Followed by:
101101
<| T | where cursor_before_or_at("636751928823156645")
102102
```
103103

104+
::: moniker range="azure-data-explorer"
104105
## Continuous export from a table with Row Level Security
105106

106107
To create a continuous export job with a query that references a table with [Row Level Security policy](../../management/row-level-security-policy.md), you must:
107108

108109
* Provide a managed identity as part of the continuous export configuration. For more information, see [Use a managed identity to run a continuous export job](continuous-export-with-managed-identity.md).
109110
* Use [impersonation](../../api/connection-strings/storage-connection-strings.md#impersonation) authentication for the external table to which the data is exported.
111+
::: moniker-end
110112

111113
## Continuous export to delta table - Preview
112114

data-explorer/kusto/management/data-export/create-alter-continuous.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: .create or alter continuous-export
33
description: This article describes how to create or alter continuous data export.
44
ms.reviewer: yifats
55
ms.topic: reference
6-
ms.date: 12/08/2024
6+
ms.date: 07/30/2025
77
---
88
# .create or alter continuous-export
99

@@ -31,11 +31,15 @@ You must have at least [Database Admin](../../access-control/role-based-access-c
3131
| *T1*, *T2* | `string` | | A comma-separated list of fact tables in the query. If not specified, all tables referenced in the query are assumed to be fact tables. If specified, tables *not* in this list are treated as dimension tables and aren't scoped, so all records participate in all exports. See [continuous data export overview](continuous-data-export.md) for details. |
3232
| *propertyName*, *propertyValue* | `string` | | A comma-separated list of optional [properties](#supported-properties).|
3333

34+
::: moniker range="azure-data-explorer"
3435
> [!NOTE]
3536
> If the target external table uses [impersonation](../../api/connection-strings/storage-connection-strings.md#impersonation) authentication, you must specify a managed identity to run the continuous export. For more information, see [Use a managed identity to run a continuous export job](continuous-export-with-managed-identity.md).
37+
::: moniker-end
3638

3739
## Supported properties
3840

41+
::: moniker range="azure-data-explorer"
42+
3943
| Property | Type | Description |
4044
|--|--|--|
4145
| `intervalBetweenRuns` | `Timespan` | The time span between continuous export executions. Must be greater than 1 minute. |
@@ -46,6 +50,20 @@ You must have at least [Database Admin](../../access-control/role-based-access-c
4650
| `managedIdentity` | `string` | The managed identity for which the continuous export job runs. The managed identity can be an object ID, or the `system` reserved word. For more information, see [Use a managed identity to run a continuous export job](continuous-export-with-managed-identity.md#use-a-managed-identity-to-run-a-continuous-export-job). |
4751
| `isDisabled` | `bool` | Disable or enable the continuous export. Default is false. |
4852

53+
::: moniker-end
54+
::: moniker range="microsoft-fabric"
55+
56+
| Property | Type | Description |
57+
|--|--|--|
58+
| `intervalBetweenRuns` | `Timespan` | The time span between continuous export executions. Must be greater than 1 minute. |
59+
| `forcedLatency` | `Timespan` | An optional period of time to limit the query to records ingested before a specified period relative to the current time. This property is useful if, for example, the query performs some aggregations or joins, and you want to make sure all relevant records have been ingested before running the export. |
60+
| `sizeLimit` | `long` | The size limit in bytes of a single storage artifact written before compression. Valid range: 100 MB (default) to 1 GB. |
61+
| `distributed` | `bool` | Disable or enable distributed export. Setting to false is equivalent to `single` distribution hint. Default is true. |
62+
| `parquetRowGroupSize` | `int` | Relevant only when data format is Parquet. Controls the row group size in the exported files. Default row group size is 100,000 records. |
63+
| `isDisabled` | `bool` | Disable or enable the continuous export. Default is false. |
64+
65+
::: moniker-end
66+
4967
## Example
5068

5169
The following example creates or alters a continuous export `MyExport` that exports data from the `T` table to `ExternalBlob`. The data exports occur every hour, and have a defined forced latency and size limit per storage artifact.

data-explorer/kusto/management/external-tables-azure-storage.md

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Create and alter Azure Storage external tables
33
description: This article describes how to create and alter external tables based on Azure Blob Storage or Azure Data Lake
44
ms.reviewer: orspodek
55
ms.topic: reference
6-
ms.date: 08/11/2024
6+
ms.date: 07/30/2025
77
---
88

99
# Create and alter Azure Storage external tables
@@ -13,13 +13,15 @@ ms.date: 08/11/2024
1313
The commands in this article can be used to create or alter an Azure Storage [external table](../query/schema-entities/external-tables.md) in the database from which the command is executed. An Azure Storage external table references data located in Azure Blob Storage, Azure Data Lake Store Gen1, or Azure Data Lake Store Gen2.
1414

1515
> [!NOTE]
16-
> If the table exists, the `.create` command will fail with an error. Use `.create-or-alter` or `.alter` to modify existing tables.
16+
> If the table exists, the `.create` command fails with an error. Use `.create-or-alter` or `.alter` to modify existing tables.
1717
1818
## Permissions
1919

2020
To `.create` requires at least [Database User](../access-control/role-based-access-control.md) permissions, and to `.alter` requires at least [Table Admin](../access-control/role-based-access-control.md) permissions.
2121

22+
:::moniker range="azure-data-explorer"
2223
To `.create-or-alter` an external table using managed identity authentication requires [AllDatabasesAdmin](../access-control/role-based-access-control.md) permissions.
24+
:::moniker-end
2325

2426
## Syntax
2527

@@ -38,22 +40,24 @@ To `.create-or-alter` an external table using managed identity authentication re
3840
|*Schema*| `string` | :heavy_check_mark:|The external data schema is a comma-separated list of one or more column names and [data types](../query/scalar-data-types/index.md), where each item follows the format: *ColumnName* `:` *ColumnType*. If the schema is unknown, use [infer\_storage\_schema](../query/infer-storage-schema-plugin.md) to infer the schema based on external file contents.|
3941
|*Partitions*| `string` || A comma-separated list of columns by which the external table is partitioned. Partition column can exist in the data file itself, or as part of the file path. See [partitions formatting](#partitions-formatting) to learn how this value should look.|
4042
|*PathFormat*| `string` ||An external data folder URI path format to use with partitions. See [path format](#path-format).|
41-
|*DataFormat*| `string` | :heavy_check_mark:|The data format, which can be any of the [ingestion formats](../ingestion-supported-formats.md). We recommend using the `Parquet` format for external tables to improve query and export performance, unless you use `JSON` paths mapping. When using an external table for [export scenario](data-export/export-data-to-an-external-table.md), you're limited to the following formats: `CSV`, `TSV`, `JSON` and `Parquet`.|
42-
|*StorageConnectionString*| `string` | :heavy_check_mark:|One or more comma-separated paths to Azure Blob Storage blob containers, Azure Data Lake Gen 2 file systems or Azure Data Lake Gen 1 containers, including credentials. The external table storage type is determined by the provided connection strings. See [storage connection strings](../api/connection-strings/storage-connection-strings.md).|
43+
|*DataFormat*| `string` | :heavy_check_mark:|The data format, which can be any of the [ingestion formats](../ingestion-supported-formats.md). We recommend using the `Parquet` format for external tables to improve query and export performance, unless you use `JSON` paths mapping. When using an external table for [export scenario](data-export/export-data-to-an-external-table.md), you're limited to the following formats: `CSV`, `TSV`, `JSON`, and `Parquet`.|
44+
|*StorageConnectionString*| `string` | :heavy_check_mark:|One or more comma-separated paths to Azure Blob Storage blob containers, Azure Data Lake Gen 2 file systems or Azure Data Lake Gen 1 containers, including credentials. The provided connection string determines the external table storage type. See [storage connection strings](../api/connection-strings/storage-connection-strings.md).|
4345
|*Property*| `string` ||A key-value property pair in the format *PropertyName* `=` *PropertyValue*. See [optional properties](#optional-properties).|
4446

4547
> [!NOTE]
46-
> CSV files with non-identical schema might result in data appearing shifted or missing. We recommend separating CSV files with distinct schemas to separate storage containers and defining an external table for each storage container with the proper schema.
48+
> CSV files with nonidentical schema might result in data appearing shifted or missing. We recommend separating CSV files with distinct schemas to separate storage containers and defining an external table for each storage container with the proper schema.
4749
4850
> [!TIP]
49-
> Provide more than a single storage account to avoid storage throttling while [exporting](data-export/export-data-to-an-external-table.md) large amounts of data to the external table. Export will distribute the writes between all accounts provided.
51+
> Provide more than a single storage account to avoid storage throttling while [exporting](data-export/export-data-to-an-external-table.md) large amounts of data to the external table. Export distributes the writes between all accounts provided.
5052
5153
## Authentication and authorization
5254

5355
The authentication method to access an external table is based on the connection string provided during its creation, and the permissions required to access the table vary depending on the authentication method.
5456

5557
The following table lists the supported authentication methods for Azure Storage external tables and the permissions needed to read or write to the table.
5658

59+
::: moniker range="azure-data-explorer"
60+
5761
| Authentication method | Azure Blob Storage / Data Lake Storage Gen2 | Data Lake Storage Gen1 |
5862
|--|--|--|
5963
|[Impersonation](../api/connection-strings/storage-connection-strings.md#impersonation)|**Read permissions:** Storage Blob Data Reader<br/>**Write permissions:** Storage Blob Data Contributor|**Read permissions:** Reader<br/>**Write permissions:** Contributor|
@@ -62,6 +66,18 @@ The following table lists the supported authentication methods for Azure Storage
6266
|[Microsoft Entra access token](../api/connection-strings/storage-connection-strings.md#microsoft-entra-access-token)|No additional permissions required.|No additional permissions required.|
6367
|[Storage account access key](../api/connection-strings/storage-connection-strings.md#storage-account-access-key)|No additional permissions required.|This authentication method isn't supported in Gen1.|
6468

69+
::: moniker-end
70+
::: moniker range="microsoft-fabric"
71+
72+
| Authentication method | Azure Blob Storage / Data Lake Storage Gen2 | Data Lake Storage Gen1 |
73+
|--|--|--|
74+
|[Impersonation](../api/connection-strings/storage-connection-strings.md#impersonation)|**Read permissions:** Storage Blob Data Reader<br/>**Write permissions:** Storage Blob Data Contributor|**Read permissions:** Reader<br/>**Write permissions:** Contributor|
75+
|[Shared Access (SAS) token](../api/connection-strings/storage-connection-strings.md#shared-access-sas-token)|**Read permissions:** List + Read<br/>**Write permissions:** Write|This authentication method isn't supported in Gen1.|
76+
|[Microsoft Entra access token](../api/connection-strings/storage-connection-strings.md#microsoft-entra-access-token)|No additional permissions required.|No additional permissions required.|
77+
|[Storage account access key](../api/connection-strings/storage-connection-strings.md#storage-account-access-key)|No additional permissions required.|This authentication method isn't supported in Gen1.|
78+
79+
::: moniker-end
80+
6581
[!INCLUDE [partitions-formatting](../includes/partitions-formatting.md)]
6682

6783
### Path format
@@ -125,12 +141,12 @@ external_table("ExternalTable")
125141
| `compressed` | `bool` | Only relevant for the [export scenario](data-export/export-data-to-an-external-table.md).<br>If set to true, the data is exported in the format specified by the `compressionType` property. For the read path, compression is automatically detected. |
126142
| `compressionType` | `string` | Only relevant for the [export scenario](data-export/export-data-to-an-external-table.md).<br>The compression type of exported files. For non-Parquet files, only `gzip` is allowed. For Parquet files, possible values include `gzip`, `snappy`, `lz4_raw`, `brotli`, and `zstd`. Default is `gzip`. For the read path, compression type is automatically detected. |
127143
| `includeHeaders` | `string` | For delimited text formats (CSV, TSV, ...), specifies whether files contain a header. Possible values are: `All` (all files contain a header), `FirstFile` (first file in a folder contains a header), `None` (no files contain a header). |
128-
| `namePrefix` | `string` | If set, specifies the prefix of the files. On write operations, all files will be written with this prefix. On read operations, only files with this prefix are read. |
129-
| `fileExtension` | `string` | If set, specifies the extension of the files. On write, files names will end with this suffix. On read, only files with this file extension will be read. |
144+
| `namePrefix` | `string` | If set, specifies the prefix of the files. On write operations, all files are written with this prefix. On read operations, only files with this prefix are read. |
145+
| `fileExtension` | `string` | If set, specifies the extension of the files. On write, files names end with this suffix. On read, only files with this file extension are read. |
130146
| `encoding` | `string` | Specifies how the text is encoded: `UTF8NoBOM` (default) or `UTF8BOM`. |
131147
| `sampleUris` | `bool` | If set, the command result provides several examples of simulated external data files URI as they're expected by the external table definition. This option helps validate whether the *Partitions* and *PathFormat* parameters are defined properly. |
132148
| `filesPreview` | `bool` | If set, one of the command result tables contains a preview of [.show external table artifacts](show-external-table-artifacts.md) command. Like `sampleUri`, the option helps validate the *Partitions* and *PathFormat* parameters of external table definition. |
133-
| `validateNotEmpty` | `bool` | If set, the connection strings are validated for having content in them. The command will fail if the specified URI location doesn't exist, or if there are insufficient permissions to access it. |
149+
| `validateNotEmpty` | `bool` | If set, the connection strings are validated for having content in them. The command fails if the specified URI location doesn't exist, or if there are insufficient permissions to access it. |
134150
| `dryRun` | `bool` | If set, the external table definition isn't persisted. This option is useful for validating the external table definition, especially in conjunction with the `filesPreview` or `sampleUris` parameter. |
135151

136152
> [!NOTE]
@@ -141,7 +157,7 @@ external_table("ExternalTable")
141157
142158
### File filtering logic
143159

144-
When querying an external table, performance is improved by filtering out irrelevant external storage files. The process of iterating files and deciding whether a file should be processed is as follows:
160+
When you query an external table, performance is improved by filtering out irrelevant external storage files. The process of iterating files and deciding whether a file should be processed is as follows:
145161

146162
1. Build a URI pattern that represents a place where files are found. Initially, the URI pattern equals a connection string provided as part of the external table definition. If there are any partitions defined, they're rendered using *PathFormat*, then appended to the URI pattern.
147163

@@ -158,9 +174,9 @@ Once all the conditions are met, the file is fetched and processed.
158174
159175
## Examples
160176

161-
### Non-partitioned external table
177+
### Nonpartitioned external table
162178

163-
In the following non-partitioned external table, the files are expected to be placed directly under the container(s) defined:
179+
In the following nonpartitioned external table, the files are expected to be placed directly under the container(s) defined:
164180

165181
```kusto
166182
.create external table ExternalTable (x:long, s:string)
@@ -250,8 +266,15 @@ external_table("ExternalTable")
250266
## Related content
251267

252268
::: moniker range="azure-data-explorer"
269+
253270
* [Query external tables](/azure/data-explorer/data-lake-query-data).
254-
::: moniker-end
255271
* [Export data to an external table](data-export/export-data-to-an-external-table.md).
272+
* [Continuous data export to an external table](data-export/continuous-data-export.md).
256273

274+
::: moniker-end
275+
::: moniker range="microsoft-fabric"
276+
277+
* [Export data to an external table](data-export/export-data-to-an-external-table.md).
257278
* [Continuous data export to an external table](data-export/continuous-data-export.md).
279+
280+
::: moniker-end

0 commit comments

Comments
 (0)