世界中の2,000店舗からPOSデバイスのデータを収集するAzureソリューションを開発しています。
1台のデバイスは24時間ごとに2MBのデータを生成します。
各店舗には1〜5台のデバイスがあり、データを送信します。
デバイスデータをAzure Blobストレージに保存する必要があります。
デバイス識別子に基づいてデータを関連付ける必要があります。
将来的に店舗数が増えることが予想されます。
デバイスデータを受信するためのソリューションを実装する必要があります。 ソリューション: Azure Event Gridをプロビジョニングします。デバイス識別子を評価するようにイベントフィルタリングを構成します。
このソリューションは目標を達成していますか?
正解:B
Azure Event Gridは、このシナリオのような「大量のデータの継続的な受信」には適していません。理由は以下の通りです。
1. メッセージングモデルの違い
Azure Event Grid は、「何かが起きた」という軽量な**通知(イベント)**をルーティングするためのサービスです(例:ファイルがアップロードされた、リソースが作成されたなど)。
この問題の要件は、POSデバイスから生成される**データそのもの(テレメトリ)**を収集・保存することです。Event Gridは大量のデータストリームをバッファリングしたり、直接Blobに書き込んだりする設計にはなっていません。
2. スループットと保存機能の欠如
2,000店舗の多数のデバイスから送られるデータをリアルタイムで受け止めるには、高いスループットを維持しつつ、順序を制御できる「メッセージキュー/ストリーミング基盤」が必要です。
また、Event Gridには受信したデータを自動的にBlobストレージに保存する機能がありません。
3. 正解となるべきソリューション
この要件(大量のデバイスからのデータ収集+Blobへの保存)に対する正解は Azure Event Hubs です。
Event Hubs は、1秒間に数百万のイベントを処理できるビッグデータ・ストリーミング・プラットフォームです。
Capture機能 を有効にするだけで、受信したデータをコードなしで自動的に Azure Blob ストレージへ保存できます。
パーティションキー にデバイス識別子を指定することで、同一デバイスのデータを同じパーティションにまとめ、関連付け(Correlation)を保つことができます。

コメント