Создание подключения к данным Центров событий для azure Data Explorer с помощью пакетов SDK

Azure Data Explorer предлагает прием из Центров событий, платформы потоковой передачи больших данных и службы приема событий. Центры событий могут обрабатывать миллионы событий в секунду практически в реальном времени.

В этой статье описано, как подключиться к концентратору событий и принять данные в azure Data Explorer. Общие сведения о приеме данных из Центров событий см. в статье подключение к данным Центры событий Azure.

Сведения о том, как создать подключение в пользовательском веб-интерфейсе Azure Data Explorer, портал Azure или с помощью шаблона ARM, см. в статье Создание подключения к данным Центров событий.

Примеры кода на основе предыдущих версий пакета SDK см. в архивной статье.

Предварительные требования

Создание подключения к данным концентратора событий

В этом разделе описано, как установить подключение между концентратором событий и таблицей azure Data Explorer. Пока это подключение установлено, данные передаются из концентратора событий в целевую таблицу. Если концентратор событий перемещен в другой ресурс или подписку, необходимо обновить или повторно создать подключение.

  1. Установите пакет NuGet Microsoft.Azure.Management.Kusto.

  2. Создайте Microsoft Entra субъект приложения, который будет использоваться для проверки подлинности. Вам потребуется идентификатор каталога (клиента), идентификатор приложения и секрет клиента.

  3. Выполните следующий код.

    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 Секрет клиента приложения, которое имеет доступ к ресурсам в клиенте.
    имя_группы_ресурсов testrg Имя группы ресурсов, содержащей ваш кластер.
    clusterName mykustocluster Имя вашего кластера.
    databaseName mykustodatabase Имя целевой базы данных в вашем кластере.
    dataConnectionName myeventhubconnect Необходимое имя вашего подключения для передачи данных.
    tableName StormEvents Имя целевой таблицы в целевой базе данных.
    mappingRuleName StormEvents_CSV_Mapping Имя сопоставления столбцов, связанного с целевой таблицей.
    dataFormat csv Формат данных сообщения.
    eventHubResourceId Идентификатор ресурса Идентификатор ресурса вашего концентратора событий, в котором хранятся данные для приема.
    consumerGroup $Default Группа потребителей вашего концентратора событий.
    location Центральная часть США Расположение ресурса подключения к данным.
    compression Gzip или None Тип сжатия данных.
    databaseRouting Multi или Single Маршрутизация базы данных для подключения. Если задать значение Single, подключение к данным направляется в отдельную базу данных в кластере, как указано в параметре databaseName . Если задать значение Multi, можно переопределить целевую базу данных по умолчанию с помощьюсвойства приемаDatabase. Дополнительные сведения см. в разделе Маршрутизация событий.

Удаление подключения к данным концентратора событий

Чтобы удалить подключение к концентратору событий, выполните следующую команду:

kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);