使用 C# 创建 Azure 数据资源管理器群集和数据库

Azure 数据资源管理器是一项快速、完全托管的数据分析服务,用于实时分析从应用程序、网站和 IoT 设备等资源流式传输的海量数据。 若要使用 Azure 数据资源管理器,请先创建群集,再在该群集中创建一个或多个数据库。 然后将数据引入(加载)到数据库,以便对其运行查询。 在本文中,将使用 C# 创建群集和数据库。

必备条件

  • 如果尚未安装 Visual Studio 2019,可以下载并使用 免费的 Visual Studio 2019 Community Edition。 在安装 Visual Studio 的过程中,请确保启用“Azure 开发”。
  • 如果没有 Azure 订阅,请在开始前创建一个试用订阅

安装 C# NuGet

身份验证

为了运行本文中的示例,我们需要可以访问资源的 Azure AD 应用程序和服务主体。 查看创建 Azure AD 应用程序以创建免费的 Azure AD 应用程序,并在订阅范围内添加角色分配。 它还演示如何获取 Directory (tenant) IDApplication IDClient Secret

创建 Azure 数据资源管理器群集

  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.chinacloudapi.cn/{tenantId}");
    var credential = new ClientCredential(clientId, clientSecret);
    var result = await authenticationContext.AcquireTokenAsync(resource: "https://management.core.chinacloudapi.cn/", 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 = "China East 2";
    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 SKU 层。
    容量 数字 群集实例的数目。
    resourceGroupName testrg 将在其中创建群集的资源组名称。

    备注

    创建群集 是一个长时间运行的操作,因此强烈建议使用 CreateOrUpdateAsync,而不是 CreateOrUpdate。

  2. 运行以下命令,检查群集是否已成功创建:

    kustoManagementClient.Clusters.Get(resourceGroupName, clusterName);
    

如果结果包含带 Succeeded 值的 ProvisioningState,则表示已成功创建群集。

在 Azure 数据资源管理器群集中创建数据库

  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 或更低版本,请使用 Database 而不是 ReadWriteDatabase。

    设置 建议的值 字段说明
    clusterName mykustocluster 将在其中创建数据库的群集的名称。
    databaseName mykustodatabase 数据库名称。
    resourceGroupName 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);
    

后续步骤