Skip to content

Commit eeb759d

Browse files
Merge pull request #2706 from MicrosoftDocs/main638907013904330206sync_temp
For protected branch, push strategy should use PR and merge to target branch method to work around git push error
2 parents 29723e4 + e8f8306 commit eeb759d

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

data-explorer/ingest-data-event-grid-overview.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Ingest from storage using Event Grid subscription - Azure Data Explorer
33
description: This article describes Ingest from storage using Event Grid subscription in Azure Data Explorer.
44
ms.reviewer: leshalev
55
ms.topic: how-to
6-
ms.date: 06/10/2025
6+
ms.date: 08/11/2025
77
ms.custom: devx-track-azurepowershell
88
---
99
# Event Grid data connection
@@ -21,7 +21,7 @@ For general information about data ingestion in Azure Data Explorer, see [Azure
2121
* [Managed Identity](managed-identities-overview.md) based data connection (recommended): Using a managed identity-based data connection is the most secure way to connect to data sources. It provides full control over the ability to fetch data from a data source.
2222

2323
Setup of an Event Grid data connection using managed identity requires the following steps and permissions:
24-
1. Make sure you have [EventGrid Contributor](/azure/role-based-access-control/built-in-roles/integration#eventgrid-contributor) role assignment on the Azure subscribtion of the source data storage account.
24+
1. Make sure you have [EventGrid Contributor](/azure/role-based-access-control/built-in-roles/integration#eventgrid-contributor) role assignment on the Azure subscription of the source data storage account.
2525
1. [Add a managed identity to your cluster](configure-managed-identities-cluster.md).
2626
1. [Grant permissions to the managed identity on the data source](ingest-data-managed-identity.md#grant-permissions-to-the-managed-identity). To fetch data from Azure Storage, the managed identity must have at least [Storage Blob Data Reader](/azure/role-based-access-control/built-in-roles#storage-blob-data-reader) permissions on the Azure Storage account.
2727
1. Grant permissions to the managed identity on the event hub. To fetch blob notifications from the event hub, the managed identity must have [Azure Event Hubs Data Receiver](/azure/role-based-access-control/built-in-roles#azure-event-hubs-data-receiver) permissions on the Azure Event Hubs.
@@ -76,7 +76,7 @@ Routing data to an alternate database is off by default. To send the data to a d
7676
To specify an alternate database, set the *Database* [ingestion property](#ingestion-properties).
7777

7878
> [!WARNING]
79-
> Specifying an alternate database without setting the connection as a multi-database data connection will cause the ingestion to fail.
79+
> Specifying an alternate database without setting the connection as a multi-database data connection causes the ingestion to fail.
8080
8181
### Route event data to an alternate table
8282

@@ -122,9 +122,10 @@ You can create a blob from a local file, set ingestion properties to the blob me
122122
>
123123
> * We highly recommend using `BlockBlob` to generate data, as using `AppendBlob` may result in unexpected behavior.
124124
> * Using Azure Data Lake Gen2 storage SDK requires using `CreateFile` for uploading files and `Flush` at the end with the close parameter set to `true`. For a detailed example of Data Lake Gen2 SDK correct usage, see [Use the Event Grid data connection](create-event-grid-connection.md?tabs=azure-data-lake#use-the-event-grid-data-connection).
125-
> * Triggering ingestion following a `CopyBlob` operation is not supported for storage accounts that have the hierarchical namespace feature enabled on them.
125+
> * Triggering ingestion following a `CopyBlob` operation isn't supported for storage accounts that have the hierarchical namespace feature enabled on them.
126126
> * When the event hub endpoint doesn't acknowledge receipt of an event, Azure Event Grid activates a retry mechanism. If this retry delivery fails, Event Grid can deliver the undelivered events to a storage account using a process of *dead-lettering*. For more information, see [Event Grid message delivery and retry](/azure/event-grid/delivery-and-retry#retry-schedule-and-duration).
127-
> * Using the "OpenWrite" API to write to a blob is not recommended, as it triggers a notification for an empty blob and causes an empty-blob error. Additionally, flush the stream only once to prevent duplicate notifications and multiple ingestions of the same blob.
127+
> * Using the "OpenWrite" API to write to a blob isn't recommended, as it triggers a notification for an empty blob and causes an empty-blob error. Additionally, flush the stream only once to prevent duplicate notifications and multiple ingestions of the same blob.
128+
> * Azure Data Explorer tries to filter out duplicate notifications for the same blob sent by upstream services like Event Grid or Storage. When it detects a duplicate event, it skips ingestion and logs the error `BlobAlreadyReceived_DuplicateEventGridNotification`, which means the blob is already processed.
128129
129130
## Rename blobs
130131

@@ -137,22 +138,21 @@ When using ADLSv2, you can rename a blob to trigger blob ingestion to Azure Data
137138
138139
## Delete blobs using storage lifecycle
139140

140-
Azure Data Explorer won't delete the blobs after ingestion. Use [Azure Blob storage lifecycle](/azure/storage/blobs/storage-lifecycle-management-concepts?tabs=azure-portal) to manage your blob deletion. It's recommended to keep the blobs for three to five days.
141+
Logic build into the Azure Data Explorer won't delete the blobs after ingestion. Use [Azure Blob storage lifecycle](/azure/storage/blobs/storage-lifecycle-management-concepts?tabs=azure-portal) to manage your blob deletion. It's recommended to keep the blobs for three to five days.
141142

142143
## Known Event Grid issues
143144

144145
### Working without local authentication
145146

146147
If local authentication is disabled on the Event Hubs namespace that contains the event hub used for streaming notifications, use the following steps to ensure that data flows properly from storage to the event hub using managed identities:
147148

148-
#### [Steps](#tab/steps)
149+
#### [Steps](#tab/steps)
149150

150151
1. Assign a system-assigned managed identity to the Event Grid system topic of the storage account. For more information, see [Enable managed identity for system topics](/azure/event-grid/enable-identity-system-topics).
151152
1. Grant the managed identity sender permissions by assigning it the *Azure Event Hubs Data Sender* role on the event hub. For more information, see [Add identity to Azure roles on destinations](/azure/event-grid/add-identity-roles).
152153
1. Make sure that the Event Grid subscription uses managed identity for event delivery. For more information, see [Create event subscriptions that use an identity](/azure/event-grid/managed-service-identity).
153154

154-
155-
#### [PowerShell script](#tab/powershell)
155+
#### [PowerShell script](#tab/powershell)
156156

157157
```powershell
158158
$eventGridSubscriptionId = "<AZURE SUBSCRIPTION ID OF EVENTGRID SYSTEM TOPIC>"
@@ -230,7 +230,7 @@ When using Azure Data Explorer to [export](/kusto/management/data-export/export-
230230

231231
### Emulating Storage events from custom components
232232

233-
When using custom components to emulate Azure Storage events, the emulated events must strictly comply with [Azure Blob Storage event schema](/azure/event-grid/event-schema-blob-storage?tabs=cloud-event-schema), as Azure Data Explorer will discard events that cannot be parsed by the Event Grid SDK.
233+
When using custom components to emulate Azure Storage events, the emulated events must strictly comply with [Azure Blob Storage event schema](/azure/event-grid/event-schema-blob-storage?tabs=cloud-event-schema), as Azure Data Explorer will discard events that can't be parsed by the Event Grid SDK.
234234

235235
## Related content
236236

0 commit comments

Comments
 (0)