Azure Stream Analytics からの Power BI 出力
Power BI を Stream Analytics ジョブの出力として使用して、分析結果の豊富な視覚化エクスペリエンスを提供できます。 この機能は、操作ダッシュボード、レポート生成、およびメトリックドリブン レポート作成に使用できます。
注意
Stream Analytics からの Power BI 出力は、現在、21Vianet によって運営される Microsoft Azure および Azure Germany (T-Systems International) では利用できません。
出力の構成
次の表に、ご自分の Power BI 出力を構成するためのプロパティの名前とその説明を示します。
プロパティ名 | 説明 |
---|---|
出力エイリアス | クエリの出力をこの Power BI 出力に出力するためにクエリ内で使用されるフレンドリ名を指定します。 |
グループ ワークスペース | 他の Power BI ユーザーとのデータの共有を有効にするには、ご自分の Power BI アカウント内のグループを選択できます。グループに書き込む必要がない場合は、 [マイ ワークスペース] を選択します。 既存のグループを更新するには、Power BI の認証を更新する必要があります。 |
データセットの名前 | Power BI 出力で使用するデータセット名を指定します。 |
テーブル名 | Power BI 出力のデータセットの下にテーブル名を入力します。 現在、Stream Analytics ジョブからの Power BI 出力では、1 つのデータセット内に 1 つのテーブルのみを保持できます。 |
接続の承認 | Power BI に出力設定を構成することを承認する必要があります。 この出力アクセスを Power BI ダッシュボードに付与した後は、ユーザー アカウントのパスワードを変更するか、ジョブ出力を削除するか、または Stream Analytics ジョブを削除することによってアクセスを取り消すことができます。 |
Power BI の出力とダッシュボードを構成する手順については、「チュートリアル:Stream Analytics で不正な通話のデータを分析し、Power BI ダッシュボードで結果を視覚化する」を参照してください。
注意
Power BI ダッシュボードにデータセットとテーブルを明示的に作成しないでください。 ジョブが開始され、このジョブによって出力が Power BI に流し込まれるときに、データセットとテーブルが自動的に設定されます。 ジョブ クエリで結果が生成されない場合、データセットとテーブルは作成されません。 また、この Stream Analytics ジョブで指定したものと同じ名前のデータセットとテーブルが Power BI に既に存在する場合は、既存のデータが上書きされます。
スキーマの作成
Power BI データセットとテーブル スキーマがまだ存在しない場合は、ユーザーのために Azure Stream Analytics がデータセットとテーブル スキーマを作成します。 それ以外の場合、テーブルは新しい値で更新されます。 現時点では、1 つのデータセット内に存在できるテーブルは 1 つのみです。
Power BI では、先入れ先出し (FIFO) のアイテム保持ポリシーが使用されます。 これを有効にすると、データは 200,000 行に達するまでテーブルに集積されます。
注意
複数の出力を使用して同じデータセットに書き込むことは、問題がいくつか発生する可能性があるため、お勧めしません。 各出力によって、Power BI データセットを個別に作成する試みが行われますが、これにより、同じ名前を持つ複数のデータセットが生成される可能性があります。 また、出力に一貫性のあるスキーマが含まれていない場合は、データセットによって書き込みごとにスキーマが変更されるため、スキーマ変更要求の過多につながります。 これらの問題が回避された場合でも、複数の出力は、マージされた 1 つの出力よりもパフォーマンスが低下します。
Stream Analytics から Power BI にデータ型を変換する
Azure Stream Analytics では、出力スキーマが変更されると、データ モデルが実行時に動的に更新されます。 列名の変更、列の型の変更、列の追加または削除は、すべて追跡されます。
次の表は、Power BI データセットとテーブルが存在しない場合の、Stream Analytics データ型から Power BI の Entity Data Model (EDM) 型へのデータ型の変換を示します。
Stream Analytics から | Power BI へ |
---|---|
bigint | Int64 |
nvarchar(max) | String |
DATETIME | Datetime |
float | Double |
レコードの配列 | 文字列型、定数値 IRecord または IArray |
スキーマを更新する
Stream Analytics では、出力内の最初のイベント セットに基づいてデータ モデルのスキーマを推論します。 その後、データ モデルのスキーマは、必要に応じて、元のスキーマに適合しない可能性のある受信イベントに対応できるように更新されます。
複数行にわたってスキーマが動的に更新されるのを防ぐために、SELECT *
クエリの使用を避ける必要があります。 パフォーマンスが低下する可能性があるだけでなく、結果を得るまでの所要時間が不確実になる恐れもあります。 Power BI ダッシュボードに表示する必要があるフィールドを厳密に選択してください。 また、データ値が、選択したデータ型に準拠している必要があります。
以前/現在 | Int64 | String | Datetime | Double |
---|---|---|---|---|
Int64 | Int64 | String | String | Double |
Double | Double | String | String | Double |
String | String | String | String | String |
Datetime | String | String | Datetime | String |
制限事項とベスト プラクティス
現在、Power BI は、およそ 1 秒に 1 回呼び出すことができます。 ストリーミング ビジュアルでは、15 KB のパケットがサポートされます。 これを超えると、ストリーミング ビジュアルは失敗します (ただし、プッシュは動作し続けます)。 このような制限から必然的に、Power BI は、Azure Stream Analytics で大幅なデータ負荷の低減が見られるケースへと落ち着きます。 1 秒あたりのデータ プッシュを 1 回以内に抑え、かつスループットの要件の範囲内にクエリを抑えるために、タンブリング ウィンドウやホッピング ウィンドウの使用をお勧めします。 出力バッチ サイズの詳細については、「Power BI REST API の制限事項」を参照してください。
必要な期間 (秒) の値は、次の数式を使用して計算することができます。
次に例を示します。
- 1 秒間隔でデータを送信するデバイスが 1,000 台。
- 1 時間あたり 1,000,000 行をサポートする Power BI Pro SKU を使用。
- デバイスごとの平均データ量を Power BI に発行する。
これを式に当てはめると次のようになります。
この構成では、最初のクエリを次のように変更できます:
SELECT
MAX(hmdt) AS hmdt,
MAX(temp) AS temp,
System.TimeStamp AS time,
dspl
INTO "CallStream-PowerBI"
FROM
Input TIMESTAMP BY time
GROUP BY
TUMBLINGWINDOW(ss,4),
dspl
承認の更新
ジョブが作成されてから、または最後の認証以降にパスワードが変わっている場合、Power BI アカウントを再認証する必要があります。 Microsoft Entra テナント上で Microsoft Entra 多要素認証が構成されている場合は、Power BI の承認を 2 週間ごとに更新することも必要になります。 更新しなかった場合、ジョブが出力されなかったり、操作ログに "Authenticate user error
" が記録されたりする現象が生じる可能性があります。
同様に、トークンの期限が切れた後でジョブが開始すると、エラーが発生し、ジョブは失敗します。 この問題を解決するには、実行中のジョブを停止し、Power BI 出力に移動します。 データの損失を避けるには、 [承認の更新] リンクを選択し、 [最後に停止した時刻] からジョブを再開します。
Power BI で承認が更新されると、承認の領域に緑色のアラートが表示され、問題が解決されたことがわかります。 この制限を克服するには、マネージド ID を使用して Azure Stream Analytics ジョブを Power BI に対して認証することをお勧めします