「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
ここでは、C#で、IoTデバイス → Azure Event Hubs → Azure Databricksと繋いでみる。
詳細 †
契約 †
Event Hubsの契約 †
Basic レベル、Standard レベルを選択できるらしい。
構築 †
取り敢えず、Kafkaエンドポイントを持つEvent Hubsを構築してみる。
Kafkaエンドポイント †
- SKU
- Basic レベルではサポートされていない。
- Standard レベルを選択すれば利用可能である模様。
- マッピング
Event Hubs | Kafka |
名前空間 | クラスター |
イベントハブ | トピック |
Partition | Partition |
コンシューマーグループ | コンシューマーグループ |
Offset | Offset |
- 圧縮/メッセージフォーマットは現在サポートしていない。
- 追加の制限事項
- group.id プロパティの最大長は 256 文字
- offset.metadata.max.bytes の最大サイズは 1024 バイト
Event Hubsの作成 †
- リソース グループを作成
データ・パープライン系は「West US 2」辺りが良いかも。
送受信 †
環境構築 †
接続文字列の取得 †
- primaryConnectionString?を取得する。
コマンドで送受信 †
WSL2で実行する。
※ $eventhubsNameSpace?は、コチラで設定した値。
接続文字列の取得 †
ポータルの「共有アクセス ポリシー」から取得する。
Endpoint=sb://[EventHubsNamespace].servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
※ 内部的には、SASトークンを使用する。
サンプルをクローンして実行 †
- 環境に合わせて設定する。
- EH_FQDN
- EH_CONNECTION_STRING
- 必要に応じて設定する。
- EH_NAME:test(トピック名)
- CONSUMER_GROUP:$Default(既定のコンシューマ・グループ)
- CA_CERT_LOCATION
- そのままでも動作する(また、設定しなくても動作する)
- パラメタとしては、Confluent.KafkaのSslCaLocation?。
- Azure Event HubsのKafkaエンドポイントは既定でSSLらしい。
- 必要であれば、このパラメタで、認証局の証明書をポイントする。
- 実行結果の例
Initializing Producer
Sending 10 messages to topic: test, broker(s): osscjpdevinfra.servicebus.windows.net:9093
Message 0 sent (value: 'Sample message #0 sent at 2021-07-23_18:19:22.9101')
Message 1 sent (value: 'Sample message #1 sent at 2021-07-23_18:19:23.3055')
Message 2 sent (value: 'Sample message #2 sent at 2021-07-23_18:19:23.3599')
Message 3 sent (value: 'Sample message #3 sent at 2021-07-23_18:19:23.4080')
Message 4 sent (value: 'Sample message #4 sent at 2021-07-23_18:19:23.4652')
Message 5 sent (value: 'Sample message #5 sent at 2021-07-23_18:19:23.5150')
Message 6 sent (value: 'Sample message #6 sent at 2021-07-23_18:19:23.5784')
Message 7 sent (value: 'Sample message #7 sent at 2021-07-23_18:19:23.6300')
Message 8 sent (value: 'Sample message #8 sent at 2021-07-23_18:19:23.6865')
Message 9 sent (value: 'Sample message #9 sent at 2021-07-23_18:19:23.7695')
Initializing Consumer
Consuming messages from topic: test, broker(s): osscjpdevinfra.servicebus.windows.net:9093
Received: 'Sample message #0 sent at 2021-07-23_18:19:22.9101'
Received: 'Sample message #1 sent at 2021-07-23_18:19:23.3055'
Received: 'Sample message #2 sent at 2021-07-23_18:19:23.3599'
Received: 'Sample message #3 sent at 2021-07-23_18:19:23.4080'
Received: 'Sample message #4 sent at 2021-07-23_18:19:23.4652'
Received: 'Sample message #5 sent at 2021-07-23_18:19:23.5150'
Received: 'Sample message #6 sent at 2021-07-23_18:19:23.5784'
Received: 'Sample message #7 sent at 2021-07-23_18:19:23.6300'
Received: 'Sample message #8 sent at 2021-07-23_18:19:23.6865'
Received: 'Sample message #9 sent at 2021-07-23_18:19:23.7695'
Apache Spark系 †
上記の受信処理をAzure Databricks上で実行する。
参考 †
Qiita †
https://qiita.com/tags/eventhubs
- dz_
Check! ESP-WROOM-02 から Azure Event Hubs にデータを送り、Power BI で可視化する
confluent-kafka-dotnet †
Azure Event Hubs for Apache Kafka Ecosystems †
https://github.com/Azure/azure-event-hubs-for-kafka
Microsoft Docs †
クイック スタート †
チュートリアル †
操作方法ガイド †
- Apache Kafkaとの統合 > Event Hubs 用 Kafka
ナレコムAzureレシピ †
https://azure-recipe.kc-cloud.jp/category/azure-event-hubs/
概要とパフォーマンス †
触ってみた †
内部リンク †
Tags: :クラウド, :ビッグデータ, :Azure