Microsoft FabricのReal Time Analyticsを使ってみた-①
やってみること
Microsoft FabricのReal Time Analyticsを使ってみる
構成
手順
-
Microsoft Fabric(https://app.fabric.microsoft.com/home)にアクセス
-
「Synapse Real-Time Analytics」をクリック
-
「Eventstream」をクリック
-
名前を入力し、「作成」をクリック
-
開いたことを確認
-
「新しいリソース」を選択し、「Azure IoT Hub」をクリック
-
「Create new」をクリック
-
赤枠を入力後、「作成」をクリック
IoT Hub:Azureに構築した、IoT Hubの名前
Connnection,Connection name,Authentication Kindは、自動的に作成されます
Shared Access Key Nameは、iothubownerを入力
shared Access Keyは、下記の手順で取得する
8-1. Azure portalでIoT Hubを開く
8-2. 共有アクセスポリシーをクリック
8-3. 「iothubowner」をクリック
8-4. 「プライマリキー」をコピー
8-5. コピーしたプライマリキーをshared Access Keyに入力 -
ソース名,クラウド接続(8で作成済み),コンシューマーグループ,データ形式を選択後、「追加」をクリック
-
設定できたことを確認
-
「新しい宛先」を選択し、「レイクハウス」をクリック
-
赤枠を入力後、「追加」をクリック
宛先:宛先の名前を入力(なんでも大丈夫です)
ワークスペース:作業しているワークスペースを選択
レイクハウス:データをいれるLakehouseを選択
差分テーブル:データを入れるテーブルを選択(ない場合は、Create newから作成)
入力データ形式:Jsonを選択
-
設定できたことを確認
-
下記のスクリプトをPCで実行する
from azure.iot.device import IoTHubDeviceClient, Message
import random
import time
import json
from datetime import datetime
CONNECTION_STRING = "Your-Device-Connection-String"
# 接続文字列を使用してデバイスクライアントのインスタンスを生成
client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING)
while True:
# 現在の日時を取得
current_time = str(datetime.now())
# ランダムな温度と湿度の値を生成
temperature = 20 + (random.random() * 10)
humidity = 60 + (random.random() * 20)
# データを辞書形式で作成
data = {"temperature": temperature, "humidity": humidity, "time": current_time}
# データをJSON形式の文字列に変換
message = Message(json.dumps(data))
# メッセージを送信
client.send_message(message)
print(f"Message sent: {message}")
# 1秒待機
time.sleep(1)
- 実行して数分待つ
- Iothubtofabricを選択
- データプレビューを選択すると、IoT Hubに送られたデータを確認できる
- Iothubtolakehouseを選択
- データプレビューを選択すると、lakehouse送られたデータを確認できる
Discussion