共用方式為


使用 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);