使用 SDK 建立 Azure 數據總管的事件中樞數據連線

Azure 數據總管提供從 事件中樞擷取、巨量數據串流平臺和事件擷取服務。 事件中樞可以近乎即時地每秒處理數百萬個事件。

在本文中,您會連線到事件中樞,並將數據內嵌至 Azure 數據總管。 如需從事件中樞擷取的概觀,請參閱 Azure 事件中樞 數據連線

若要瞭解如何在 Azure 數據總管 Web UI、Azure 入口網站 或使用 ARM 範本建立連線,請參閱建立事件中樞數據連線

如需以舊版 SDK 為基礎的程式代碼範例,請參閱 封存一文

必要條件

建立事件中樞數據連線

在本節中,您會建立事件中樞與 Azure 數據總管數據表之間的連線。 只要此連線已就緒,數據就會從事件中樞傳輸至目標數據表。 如果事件中樞移至不同的資源或訂用帳戶,您必須更新或重新建立連線。

  1. 安裝 Microsoft.Azure.Management.Kusto NuGet 套件

  2. 建立要用於驗證的Microsoft Entra 應用程式主體 。 您需要目錄(租使用者)識別碼、應用程式識別碼和客戶端密碼。

  3. 執行下列程式碼。

    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 您的租用戶識別碼。 也稱為目錄標識碼。
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 您用來建立資源的訂用帳戶標識碼。
    clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 應用程式可存取租用戶中資源的用戶端標識碼。
    clientSecret PlaceholderClientSecret 應用程式可存取租用戶中資源的客戶端密碼。
    resourceGroupName testrg 包含叢集的資源群組名稱。
    clusterName mykustocluster 您叢集的名稱。
    databaseName mykustodatabase 叢集中目標資料庫的名稱。
    dataConnectionName myeventhubconnect 數據連線所需的名稱。
    tableName StormEvents 目標資料庫中的目標數據表名稱。
    mappingRuleName StormEvents_CSV_Mapping 與目標數據表相關的數據行對應名稱。
    dataFormat csv 訊息的數據格式。
    eventHubResourceId 資源識別碼 事件中樞的資源標識碼,其中包含要擷取的數據。
    consumerGroup $Default 事件中樞的取用者群組。
    location Central US 數據連線資源的位置。
    壓縮 GzipNone 數據壓縮的類型。
    databaseRouting 多重單一 線上的資料庫路由。 如果您將值設定為Single,數據聯機會路由傳送至叢集中的單一資料庫,如 databaseName 設定中所指定。 如果您將值設定為 Multi,您可以使用資料庫擷取屬性覆寫預設目標資料庫。 如需詳細資訊,請參閱 事件路由

拿掉事件中樞數據連線

若要移除事件中樞連線,請執行下列命令:

kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);