你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 SDK 为 Azure 数据资源管理器创建事件中心数据连接
在 Azure 数据资源管理器中,可以从事件中心(一个大数据流式处理平台和事件引入服务)引入数据。 事件中心每秒可以准实时处理数百万个事件。
在本文中,你将连接到事件中心并将数据引入 Azure 数据资源管理器。 有关从事件中心引入数据的概述,请参阅 Azure 事件中心数据连接。
若要了解如何在 Azure 数据资源管理器 Web UI、Azure 门户中或使用 ARM 模板创建连接,请参阅创建事件中心数据连接。
有关基于以前的 SDK 版本的代码示例,请参阅存档的文章。
先决条件
- Azure 订阅。 创建免费 Azure 帐户。
- Azure 数据资源管理器群集和数据库。 创建群集和数据库。
- 一个目标表。 创建表或使用现有表。
- 表的引入映射。
- 包含要引入的数据的事件中心。
创建事件中心数据连接
在本部分,你将在事件中心与 Azure 数据资源管理器表之间建立连接。 只要建立了此连接,数据就会从事件中心传输到目标表。 如果将事件中心移动到了其他资源或订阅,则需要更新或重新创建连接。
创建用于身份验证的 Microsoft Entra 应用程序主体。 需要目录(租户)ID、应用程序 ID 和客户端密码。
运行以下代码。
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 租户 ID。 也称为目录 ID。 subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 用于创建资源的订阅 ID。 clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 可以访问租户中资源的应用程序的客户端 ID。 clientSecret PlaceholderClientSecret 可以访问租户中资源的应用程序的客户端密码。 resourceGroupName testrg 包含群集的资源组的名称。 clusterName mykustocluster 群集的名称。 databaseName mykustodatabase 群集中目标数据库的名称。 dataConnectionName myeventhubconnect 所需的数据连接名称。 tableName StormEvents 目标数据库中目标表的名称。 mappingRuleName StormEvents_CSV_Mapping 与目标表相关的列映射的名称。 dataFormat csv 消息的数据格式。 eventHubResourceId 资源 ID 包含要引入的数据的事件中心的资源 ID。 consumerGroup $Default 事件中心的使用者组。 location 美国中部 数据连接资源的位置。 compression gzip 或 None 数据压缩的类型。 databaseRouting 多或单 连接的数据库路由。 如果将该值设置为“单个”,则数据连接会按 databaseName 设置中指定的内容被路由到群集中的单个数据库。 如果将此值设置为“多”,可使用数据库引入属性重写默认目标数据库。 有关详细信息,请参阅事件路由。
删除事件中心数据连接
若要删除事件中心连接,请运行以下命令:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);
相关内容
- 检查与事件中心示例消息应用的连接
- 在 Web UI 中查询数据