Azure 数据资源管理器是一项快速、完全托管的数据分析服务,用于实时分析从应用程序、网站和 IoT 设备等资源流式传输的海量数据。 若要使用 Azure 数据资源管理器,请先创建群集,再在该群集中创建一个或多个数据库。 然后将数据引入(加载)到数据库,以便对其运行查询。 在本文中,将使用 C# 创建群集和数据库。
Visual Studio 2022 Community Edition
。 在 Visual Studio 设置期间打开
Azure 开发
。
Azure 订阅。 创建
免费 Azure 帐户
。
安装 C# NuGet
安装
Microsoft.Azure.Management.Kusto 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.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_E8ads_v5";
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);
使用以下代码创建数据库:
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。