SDK を使用して Azure Data Explorer 用に Event Hubs データ接続を作成する
Azure Data Explorer では、ビッグ データ ストリーミング プラットフォームとイベント インジェストのサービスである Event Hubs からのインジェストを行うことができます。 Event Hubs は、1 秒あたり数百万件のイベントをほぼリアルタイムで処理できます。
この記事では、イベント ハブに接続してデータを Azure Data Explorer に取り込みます。 Event Hubs からの取り込みの概要については、「Azure Event Hubs データ接続」を参照してください。
Azure Data Explorer Web UI、Azure portal、または ARM テンプレートを使用して接続を作成する方法については、「Event Hubs データ接続を作成する」を参照してください。
以前の SDK バージョンに基づくコード サンプルについては、アーカイブ記事を参照してください。
前提条件
- Azure サブスクリプション。 無料の Azure アカウントを作成します。
- Azure Data Explorer クラスターとデータベース。 クラスターとデータベースを作成します。
- 宛先テーブル。 テーブルを作成するか、既存のテーブルを使用する。
- テーブルのインジェスト マッピング。
- インジェスト対象のデータが存在するイベント ハブ。
イベント ハブ データ接続を作成する
このセクションでは、イベント ハブと Azure Data Explorer テーブルとの間の接続を確立します。 この接続が存在する間は、データがイベント ハブからターゲットのテーブルに送信されます。 イベント ハブが別のリソースまたはサブスクリプションに移動した場合は、接続を更新または再作成する必要があります。
Microsoft.Azure.Management.Kusto NuGet パッケージをインストールします。
認証に使用する 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 Multi または Single 接続のデータベース ルーティング。 値を Single に設定すると、このデータ接続のルーティング先は databaseName 設定で指定されたクラスター内の単一のデータベースとなります。 値を Multi に設定すると、Database というインジェスト プロパティを使用して既定のターゲット データベースをオーバーライドできます。 詳細については、「イベント ルーティング」を参照してください。
イベント ハブ データ接続を削除する
イベント ハブ接続を削除するには、次のコマンドを実行します。
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);
関連するコンテンツ
- イベント ハブ サンプル メッセージ アプリを使用して接続を確認する
- Web UI でデータに対してクエリを実行する