使用 C# 创建 Azure 数据资源管理器群集和数据库
Azure 数据资源管理器是一项快速、完全托管的数据分析服务,用于实时分析从应用程序、网站和 IoT 设备等资源流式传输的海量数据。 若要使用 Azure 数据资源管理器,请先创建群集,再在该群集中创建一个或多个数据库。 然后将数据引入(加载)到数据库,以便对其运行查询。 在本文中,将使用 C# 创建群集和数据库。
必备条件
- Visual Studio 2019,下载并使用免费的 Visual Studio 2019 Community Edition。 在安装 Visual Studio 的过程中,请确保启用“Azure 开发”。
- Microsoft 帐户或 Azure Active Directory 用户标识。 无需 Azure 订阅。
安装 C# NuGet
身份验证
为了运行本文中的示例,我们需要可以访问资源的 Azure AD 应用程序和服务主体。 查看创建 Azure AD 应用程序以创建免费的 Azure AD 应用程序,并在订阅范围内添加角色分配。 它还演示如何获取 Directory (tenant) ID
、Application ID
和 Client Secret
。
创建 Azure 数据资源管理器群集
使用以下代码创建群集:
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 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。
运行以下命令,检查群集是否已成功创建:
kustoManagementClient.Clusters.Get(resourceGroupName, clusterName);
如果结果包含带 Succeeded
值的 ProvisioningState
,则表示已成功创建群集。
在 Azure 数据资源管理器群集中创建数据库
使用以下代码创建数据库:
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 数据将在缓存中保留的时间。 若要查看已创建的数据库,请运行以下命令:
kustoManagementClient.Databases.Get(resourceGroupName, clusterName, databaseName) as ReadWriteDatabase;
现在,你有了一个群集和一个数据库。
清理资源
如果计划学习我们的其他文章,请保留已创建的资源。
若要清理资源,请删除群集。 删除群集时,也会删除其中的所有数据库。 使用以下命令删除群集:
kustoManagementClient.Clusters.Delete(resourceGroupName, clusterName);