デジタル ツイン ビルダー (プレビュー) データがイベントハウスに投影されたので、KQL クエリセットを使用してデータを調べ、Real-Time ダッシュボードで視覚化できます。 チュートリアルのこの部分では、データから分析情報を抽出し、Real-Time ダッシュボードを使用してこれらの分析情報を視覚化するためのサンプル クエリを使用して KQL (Kusto クエリ言語) クエリセットを設定します。
Von Bedeutung
この機能は プレビュー段階です。
KQL を使用してデータのクエリを実行する
チュートリアルの前の部分の Tutorial_queryset から始めます。
クエリ ウィンドウの上の + を使用して、次の新しいクエリを作成します。 (KQL クエリの作成の詳細については、 KQL クエリ セット内のデータのクエリを参照してください)。
遅延状態
このクエリでは、現在の時刻と次のステーションへの時刻とスケジュールされた到着時刻を比較することで、各バス乗車の遅延を計算します。
//Start with the function generated by the eventhouse projection to get your time series bus data
Bus_timeseries()
// Parse your travel‑time string into a timespan
| extend TimeToNextStationSpan = totimespan(TimeToNextStation)
// Compute when the bus will actually arrive
| extend PredictedArrival = PreciseTimestamp + TimeToNextStationSpan
// Compare that prediction to the schedule
| extend Delay = PredictedArrival - ScheduleTime
| extend DelayRounded = format_timespan(Delay, 'hh:mm:ss')
// Flag and label a delay of more than 5 minutes
| extend IsDelayed = Delay > 5m
| extend DelayLabel = iff(IsDelayed, "Delayed", "On‑Time")
// Select final output columns
| project
TripId,
BusLine,
StopCode,
DelayLabel,
DelayRounded,
PreciseTimestamp,
TimeToNextStationSpan,
PredictedArrival,
ScheduledArrival = ScheduleTime
クエリを実行し、結果を確認します。
停止による遅延
このクエリは、バス停の観点からの遅延に関する情報を計算します。これには、停留所での平均遅延時間や、停留所への乗車が遅れる頻度が含まれます。
// Compute delay for each event
let delays =
Bus_timeseries()
| extend TimeToNextStationSpan = totimespan(TimeToNextStation)
| extend PredictedArrival = PreciseTimestamp + TimeToNextStationSpan
| extend Delay = PredictedArrival - todatetime(ScheduleTime);
// Join to Stop metadata
delays
| join kind=inner (
Stop_property()
| project Stop_Code, DisplayName, Borough, Suggested_Locality
) on $left.StopCode == $right.Stop_Code
// Aggregate
| summarize
AvgDelayMinutes = avg(Delay) // average timespan
/ 1m, // convert to minutes
TotalRuns = count(),
LateRuns = countif(Delay > 5m)
by Stop_Code, DisplayName, Borough, Locality=Suggested_Locality
| extend PercentLate = round((todouble(LateRuns) / TotalRuns * 100), 2)
| sort by AvgDelayMinutes
クエリを実行し、結果を確認します。
バスとルートによる遅延
このクエリは、バス ルートの観点から遅延に関する情報を計算し、バスラインとストップ コードの組み合わせごとに平均遅延を計算します。
Bus_timeseries()
| extend
// inline compute delay minutes without a two‑step PredictedArrival alias
DelayMinutes =
(
PreciseTimestamp
+ totimespan(TimeToNextStation)
- todatetime(ScheduleTime)
) / 1m
| summarize
AvgDelayMin = round(avg(DelayMinutes), 0) // round to whole minutes
by BusLine, StopCode
| sort by AvgDelayMin
クエリを実行し、結果を確認します。
推定遅延時間
このクエリは、現在の時刻と次のステーションまでの時間に基づいて、バスが次の停留所で遅れるかどうかを予測します。
Bus_timeseries()
// Compute when the bus will actually arrive at the next stop
| extend PredictedArrival = PreciseTimestamp + totimespan(TimeToNextStation)
// Classify "will be late" as a boolean
| extend WillBeLate = PredictedArrival > todatetime(ScheduleTime) + 5m
// Select final output columns
| project
PreciseTimestamp,
StopCode,
PredictedArrival,
WillBeLate
クエリを実行し、結果を確認します。
Real-Time ダッシュボードでデータを視覚化する
デジタル ツイン ビルダー (プレビュー) データから分析情報を抽出するための KQL クエリがいくつか用意されたので、Real-Time ダッシュボードでそれらのクエリの結果を視覚化できます。
このセクションでは、テンプレート ファイルを使用して、前のセクションで作成したクエリのデータといくつかの追加クエリを Real-Time ダッシュボードに設定します。
ダッシュボードの外観を次に示します (前のセクションのクエリに注目してください: 遅延状態、 停止による遅延、 バスとルートによる遅延、 推定遅延数)。
新しいダッシュボードを作成する
まず、Fabric ワークスペースに空の Real-Time ダッシュボードを作成します。
リアルタイム ダッシュボードは、ワークスペースのコンテキスト内に存在します。 新しい KQL クエリセットは、作成時に使用しているワークスペースに常に関連付けられます。
対象のワークスペースを参照します。
+ 新規アイテム を選択します。
新しい項目 ウィンドウで、Real-Time ダッシュボード を選択します。 必要に応じて、テキスト ボックスを使用して検索します。
[ 新しい Real-Time ダッシュボード ] ポップアップで、ダッシュボードの名前を入力し、[ 作成] を選択します。
ワークスペースに新しいダッシュボードが作成されます。
テンプレートをアップロードしてデータ ソースを接続する
次に、テンプレート ファイルを使用して、以前の KQL クエリに基づいてダッシュボードにタイルを設定します。
GitHub のサンプル フォルダー (digital-twin-builder/bus-scenario) から DTB+RTI_dashboard.json ダッシュボード テンプレートをダウンロードします。
Real-Time ダッシュボードで、[ 管理 ] タブを選択し、 ファイルに置き換えます。
ダウンロードしたダッシュボード テンプレート ファイルを開きます。 データベースとワークスペース ID のテンプレートのプレースホルダー値にフラグを設定する 移行の警告 を続行します。
テンプレート ファイルはダッシュボードに複数のタイルを設定しますが、接続されたデータ ソースがまだないため、タイルはデータを取得できません。
[管理] タブで、[データ ソース] を選択します。 この操作により、[ データ ソース ] ウィンドウが開き、データのサンプル ソースが表示されます。 チュートリアル データ ソースの編集アイコンを選択します。
[ データベース] で、ドロップダウン矢印と KQL データベースを選択します。 チュートリアル KQL データベースを選択し、[接続] を選択します。 その他の既定の設定はそのままにして、[ 適用] を選択し、[ データ ソース ] ウィンドウを閉じます。
数秒後、ビジュアルにデータベースからのデータが入力されます。
ヒント
ダッシュボードは現在の時刻を UTC で保持するため、時間範囲セレクターが現地時刻と一致しない可能性があります。 タイルにデータが表示されない場合は、時間範囲を展開します。
ダッシュボードを調べる。 各タイルの [データの編集 と 探索 ] アイコンを使用して、基になるクエリを表示したり、時間範囲フィルターやその他のタイル オプションを変更したり、独自の新しいクエリやタイルを追加したりできます。
この視覚化により、Real-Time Intelligence でデジタル ツイン ビルダー (プレビュー) を使用するためのエンド ツー エンドのチュートリアルが完了します。 デジタル ツイン ビルダーを使用して、Real-Time Intelligence からストリーミングされたサンプル バス データをコンテキスト化した後、オントロジ データを Eventhouse に投影して、KQL クエリと Real-Time ダッシュボードを通じてさらに洞察を得ています。
関連コンテンツ
このチュートリアルで使用される KQL 演算子の詳細については、以下を参照してください。
- 演算子 を拡張
- 結合演算子 を する
- プロジェクトオペレーター
- sort 演算子
- summarize 演算子の