Share via


SDK'larla Azure Veri Gezgini için Event Hubs veri bağlantısı oluşturma

Azure Veri Gezgini, büyük bir veri akışı platformu ve olay alma hizmeti olan Event Hubs'dan veri alımı sunar. Event Hubs saniyede milyonlarca olayı neredeyse gerçek zamanlı olarak işleyebilir.

Bu makalede bir olay hub'ına bağlanacak ve verileri Azure Veri Gezgini'a aacaksınız. Event Hubs'tan alma işlemine genel bakış için bkz. veri bağlantısı Azure Event Hubs.

Azure Veri Gezgini web kullanıcı arabiriminde, Azure portal veya ARM şablonuyla bağlantı oluşturmayı öğrenmek için bkz. Event Hubs veri bağlantısı oluşturma.

Önceki SDK sürümlerini temel alan kod örnekleri için arşivlenmiş makaleye bakın.

Önkoşullar

Olay hub'ı veri bağlantısı oluşturma

Bu bölümde olay hub'ı ile Azure Veri Gezgini tablonuz arasında bir bağlantı kuracaksınız. Bu bağlantı olduğu sürece veriler olay hub'ından hedef tablonuza iletilir. Olay hub'ı farklı bir kaynağa veya aboneliğe taşınırsa bağlantıyı güncelleştirmeniz veya yeniden oluşturmanız gerekir.

  1. Microsoft.Azure.Management.Kusto NuGet paketini yükleyin.

  2. Kimlik doğrulaması için kullanılacak bir Microsoft Entra uygulama sorumlusu oluşturun. Dizin (kiracı) kimliğine, uygulama kimliğine ve istemci gizli dizisine ihtiyacınız vardır.

  3. Aşağıdaki kodu çalıştırın.

    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);
    
    Ayar Önerilen değer Alan açıklaması
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Kiracı kimliğiniz. Dizin kimliği olarak da bilinir.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Kaynak oluşturmak için kullandığınız abonelik kimliği.
    clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Kiracınızdaki kaynaklara erişebilen uygulamanın istemci kimliği.
    clientSecret PlaceholderClientSecret Kiracınızdaki kaynaklara erişebilen uygulamanın istemci gizli dizisi.
    resourceGroupName testrg Kümenizi içeren kaynak grubunun adı.
    clusterName mykustocluster Kümenizin adı.
    veritabanıAdı mykustodatabase Kümenizdeki hedef veritabanının adı.
    dataConnectionName myeventhubconnect Veri bağlantınızın istenen adı.
    tableName StormEvents Hedef veritabanındaki hedef tablonun adı.
    mappingRuleName StormEvents_CSV_Mapping Hedef tabloyla ilgili sütun eşlemenizin adı.
    Dataformat Csv İletinin veri biçimi.
    eventHubResourceId Kaynak kimliği Veri alımı için verileri tutan olay hub'ınızın kaynak kimliği.
    consumerGroup $Default Olay hub'ınızın tüketici grubu.
    location Central US Veri bağlantısı kaynağının konumu.
    sıkıştırma Gzip veya Yok Veri sıkıştırma türü.
    databaseRouting Çoklu veya Tek Bağlantı için veritabanı yönlendirmesi. Değeri Tek olarak ayarlarsanız, veri bağlantısı databaseName ayarında belirtildiği gibi kümedeki tek bir veritabanına yönlendirilir. Değeri Multi olarak ayarlarsanız, Veritabanıalımı özelliğini kullanarak varsayılan hedef veritabanını geçersiz kılabilirsiniz. Daha fazla bilgi için bkz . Olay yönlendirme.

Olay hub'ı veri bağlantısını kaldırma

Olay hub'ı bağlantısını kaldırmak için aşağıdaki komutu çalıştırın:

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