Создание подключения к данным Центров событий для Azure Data Explorer с помощью пакетов SDK
Azure Data Explorer предлагает прием из Центров событий, платформу потоковой передачи больших данных и службу приема событий. Центры событий могут обрабатывать миллионы событий в секунду практически в режиме реального времени.
В этой статье вы подключаетесь к концентратору событий и приему данных в Azure Data Explorer. Общие сведения о приеме из Центров событий см. в разделе Центры событий Azure подключении к данным.
Чтобы узнать, как создать подключение в веб-интерфейсе Azure Data Explorer, портал Azure или шаблоне ARM, см. статью "Создание подключения к данным Центров событий".
Примеры кода на основе предыдущих версий пакета SDK см. в архивной статье.
Необходимые компоненты
- Подписка Azure. Создайте бесплатную учетную запись Azure.
- Кластер и база данных Azure Data Explorer. Создайте кластер и базу данных.
- Целевая таблица. Создайте таблицу или используйте существующую таблицу.
- Сопоставление приема для таблицы.
- Концентратор событий с данными для приема.
Создание подключения к данным концентратора событий
В этом разделе описано, как установить соединение между концентратором событий и таблицей Azure Data Explorer. Если подключение установлено, данные передаются из концентратора событий в целевую таблицу. Если концентратор событий перемещается в другой ресурс или подписку, необходимо обновить или повторно создать подключение.
Установите пакет NuGet Microsoft.Azure.Management.Kusto.
Создайте субъект приложения Microsoft Entra для проверки подлинности. Вам нужен идентификатор каталога (клиента), идентификатор приложения и секрет клиента.
Выполните следующий код.
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID var clientSecret = "PlaceholderClientSecret"; //Client Secret var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret); var resourceManagementClient = new ArmClient(credentials, subscriptionId); var resourceGroupName = "testrg"; //The cluster and database that are created as part of the Prerequisites var clusterName = "mykustocluster"; var databaseName = "mykustodatabase"; var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync(); var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value; var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value; var database = (await cluster.GetKustoDatabaseAsync(databaseName)).Value; var dataConnections = database.GetKustoDataConnections(); var eventHubConnectionName = "myeventhubconnect"; //The event hub that is created as part of the Prerequisites var eventHubResourceId = new ResourceIdentifier("/subscriptions/<eventHubSubscriptionId>/resourceGroups/<eventHubResourceGroupName>/providers/Microsoft.EventHub/namespaces/<eventHubNamespaceName>/eventhubs/<eventHubName>"); var consumerGroup = "$Default"; var location = AzureLocation.CentralUS; //The table and column mapping are created as part of the Prerequisites var tableName = "StormEvents"; var mappingRuleName = "StormEvents_CSV_Mapping"; var dataFormat = KustoEventHubDataFormat.Csv; var compression = EventHubMessagesCompressionType.None; var databaseRouting = KustoDatabaseRouting.Multi; var eventHubConnectionData = new KustoEventHubDataConnection { EventHubResourceId = eventHubResourceId, ConsumerGroup = consumerGroup, Location = location, TableName = tableName, MappingRuleName = mappingRuleName, DataFormat = dataFormat, Compression = compression, DatabaseRouting = databaseRouting }; await dataConnections.CreateOrUpdateAsync(WaitUntil.Completed, eventHubConnectionName, eventHubConnectionData);
Параметр Рекомендуемое значение Описание поля tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента. Также известен как идентификатор каталога. subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор подписки, используемой для создания ресурсов. clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента приложения, которое имеет доступ к ресурсам в клиенте. clientSecret PlaceholderClientSecret Секрет клиента приложения, которое имеет доступ к ресурсам в клиенте. resourceGroupName testrg Имя группы ресурсов, содержащей ваш кластер. clusterName mykustocluster Имя вашего кластера. databaseName mykustodatabase Имя целевой базы данных в вашем кластере. dataConnectionName myeventhubconnect Необходимое имя вашего подключения для передачи данных. tableName StormEvents Имя целевой таблицы в целевой базе данных. mappingRuleName StormEvents_CSV_Mapping Имя сопоставления столбцов, связанного с целевой таблицей. dataFormat csv Формат данных сообщения. eventHubResourceId Идентификатор ресурса Идентификатор ресурса вашего концентратора событий, в котором хранятся данные для приема. consumerGroup $Default Группа потребителей вашего концентратора событий. расположение Центральная часть США Расположение ресурса подключения к данным. compression gzip или None Тип сжатия данных. databaseRouting Multi или Single Маршрутизация базы данных для подключения. Если задано значение Single, подключение к данным направляется в одну базу данных в кластере, как указано в параметре databaseName . Если задать значение Multi, можно переопределить целевую базу данных по умолчанию с помощью свойства приема базы данных. Дополнительные сведения см. в разделе Маршрутизация событий.
Удаление подключения к данным концентратора событий
Чтобы удалить подключение концентратора событий, выполните следующую команду:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);
Связанный контент
- Проверка подключения к примеру приложения "Концентратор событий"
- Запрос данных в веб-интерфейсе