다음을 통해 공유


SDK를 사용하여 Azure Data Explorer에 대한 Event Hubs 데이터 연결 만들기

Azure Data Explorer는 빅 데이터 스트리밍 플랫폼 및 이벤트 수집 서비스인 Event Hubs에서 수집을 제공합니다. Event Hubs에서는 초당 수백만 개의 이벤트를 거의 실시간으로 처리할 수 있습니다.

이 문서에서는 이벤트 허브에 연결하고 Azure Data Explorer에 데이터를 수집합니다. Event Hubs에서 수집에 대한 개요는 Azure Event Hubs 데이터 연결을 참조 하세요.

Azure Data Explorer 웹 UI, Azure Portal 또는 ARM 템플릿을 사용하여 연결을 만드는 방법을 알아보려면 Event Hubs 데이터 연결 만들기를 참조하세요.

이전 SDK 버전을 기반으로 하는 코드 샘플은 보관된 문서를 참조하세요.

필수 구성 요소

이벤트 허브 데이터 연결 만들기

이 섹션에서는 이벤트 허브와 Azure Data Explorer 테이블 간에 연결을 설정합니다. 이 연결이 있는 한, 데이터는 이벤트 허브에서 대상 테이블로 전송됩니다. 이벤트 허브가 다른 리소스 또는 구독으로 이동된 경우 연결을 업데이트하거나 다시 만들어야 합니다.

  1. Microsoft.Azure.Management.Kusto NuGet 패키지를 설치합니다.

  2. 인증에 사용할 Microsoft Entra 애플리케이션 주체 를 만듭니다. 디렉터리(테넌트) ID, 애플리케이션 ID 및 클라이언트 암호가 필요합니다.

  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 테넌트 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 이벤트 허브의 소비자 그룹입니다.
    위치 미국 중부 데이터 연결 리소스의 위치입니다.
    압축 gzip 또는 None 데이터 압축 형식입니다.
    databaseRouting Multi 또는 Single 연결에 대한 데이터베이스 라우팅입니다. 값을 Single로 설정하면 데이터베이스 이름 설정에 지정된 대로 데이터 연결이 클러스터의 단일 데이터베이스로 라우팅됩니다. 값을 Multi로 설정하면 데이터베이스 수집 속성을 사용하여 기본 대상 데이터베이스를 재정의할 있습니다. 자세한 내용은 이벤트 라우팅을 참조하세요.

이벤트 허브 데이터 연결 제거

이벤트 허브 연결을 제거하려면 다음 명령을 실행합니다.

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