Поделиться через


Создание подключения к данным Центров событий для 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 Секрет клиента приложения, которое имеет доступ к ресурсам в клиенте.
    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);