Создание кластера и базы данных Azure Data Explorer с помощью C#

Azure Data Explorer — это быстрая и полностью управляемая служба для аналитики большого объема потоковых данных в реальном времени, поступающих из приложений, а также с веб-сайтов, устройств Интернета вещей и т. д. Чтобы использовать обозреватель данных Azure, сначала нужно создать кластер и одну или несколько баз данных в этом кластере. Затем вы должны принять (загрузить) данные в базы данных, чтобы к ним можно было выполнять запросы. В этой статье вы создадите кластер и базу данных с помощью C#.

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

Установка пакета NuGet для C#

Аутентификация

Для выполнения примеров из этой статьи нам потребуется приложение Azure AD и субъект-служба, которые могут получить доступ к ресурсам. Установите флажок создать приложение Azure AD, чтобы создать бесплатное приложение Azure AD и добавить назначение ролей в области подписки. Также показано, как получить Directory (tenant) ID, Application ID, и Client Secret.

Создание кластера Azure Data Explorer

  1. Создайте кластер, используя приведенный ниже код:

    var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Directory (tenant) ID
    var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Application ID
    var clientSecret = "xxxxxxxxxxxxxx";//Client Secret
    var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
    var authenticationContext = new AuthenticationContext($"https://login.windows.net/{tenantId}");
    var credential = new ClientCredential(clientId, clientSecret);
    var result = await authenticationContext.AcquireTokenAsync(resource: "https://management.core.windows.net/", clientCredential: credential);
    
    var credentials = new TokenCredentials(result.AccessToken, result.AccessTokenType);
    
    var kustoManagementClient = new KustoManagementClient(credentials)
    {
        SubscriptionId = subscriptionId
    };
    
    var resourceGroupName = "testrg";
    var clusterName = "mykustocluster";
    var location = "Central US";
    var skuName = "Standard_D13_v2";
    var tier = "Standard";
    var capacity = 5;
    var sku = new AzureSku(skuName, tier, capacity);
    var cluster = new Cluster(location, sku);
    await kustoManagementClient.Clusters.CreateOrUpdateAsync(resourceGroupName, clusterName, cluster);
    
    Параметр Рекомендуемое значение Описание поля
    clusterName mykustocluster Необходимое имя кластера.
    skuName Standard_D13_v2 Номер SKU, который будет использоваться для кластера.
    Уровень Standard Edition Уровень SKU.
    Емкость number Количество экземпляров кластера.
    имя_группы_ресурсов testrg Имя группы ресурсов, в которой будет создан кластер.

    Примечание

    Создание кластера — это длительная операция, поэтому настоятельно рекомендуется использовать CreateOrUpdateAsync вместо CreateOrUpdate.

  2. Чтобы проверить, успешно ли создан кластер, можно выполнить следующую команду:

    kustoManagementClient.Clusters.Get(resourceGroupName, clusterName);
    

Если результат содержит параметр ProvisioningState со значением Succeeded, это означает, что кластер создан успешно.

Создание базы данных в кластере Azure Data Explorer

  1. Создайте базу данных, используя приведенный ниже код:

    var hotCachePeriod = new TimeSpan(3650, 0, 0, 0);
    var softDeletePeriod = new TimeSpan(3650, 0, 0, 0);
    var databaseName = "mykustodatabase";
    var database = new ReadWriteDatabase(location: location, softDeletePeriod: softDeletePeriod, hotCachePeriod: hotCachePeriod);
    
    await kustoManagementClient.Databases.CreateOrUpdateAsync(resourceGroupName, clusterName, databaseName, database);
    

    Примечание

    Если вы используете C# версии 2.0.0 или ниже, используйте базу данных вместо ReadWriteDatabase.

    Параметр Рекомендуемое значение Описание поля
    clusterName mykustocluster Имя кластера, в котором необходимо создать базу данных.
    databaseName mykustodatabase Имя базы данных.
    имя_группы_ресурсов testrg Имя группы ресурсов, в которой будет создан кластер.
    softDeletePeriod 3650:00:00:00 Время, на протяжении которого данные будут храниться таким образом, чтобы они были доступны для запроса.
    hotCachePeriod 3650:00:00:00 Время, на протяжении которого данные будут храниться в кэше.
  2. Выполните следующую команду, чтобы просмотреть созданную базу данных:

    kustoManagementClient.Databases.Get(resourceGroupName, clusterName, databaseName) as ReadWriteDatabase;
    

Теперь у вас есть кластер и база данных.

Очистка ресурсов

  • Если вы планируете следить за другими нашими статьями, сохраните созданные вами ресурсы.

  • Чтобы очистить ресурсы, удалите кластер. При удалении кластера также удаляются все содержащиеся в нем базы данных. Для удаления кластера используйте следующую команду:

    kustoManagementClient.Clusters.Delete(resourceGroupName, clusterName);
    

Дальнейшие действия