次の方法で共有


Real-Time Intelligence チュートリアルパート 5: データのクエリと視覚化のデジタル ツイン ビルダー (プレビュー)

デジタル ツイン ビルダー (プレビュー) データがイベントハウスに投影されたので、KQL クエリセットを使用してデータを調べ、Real-Time ダッシュボードで視覚化できます。 チュートリアルのこの部分では、データから分析情報を抽出し、Real-Time ダッシュボードを使用してこれらの分析情報を視覚化するためのサンプル クエリを使用して KQL (Kusto クエリ言語) クエリセットを設定します。

Von Bedeutung

この機能は プレビュー段階です

KQL を使用してデータのクエリを実行する

チュートリアルの前の部分の Tutorial_queryset から始めます。

クエリ ウィンドウの上の + を使用して、次の新しいクエリを作成します。 (KQL クエリの作成の詳細については、 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

クエリを実行し、結果を確認します。

Delay Status クエリの結果のスクリーンショット。

停止による遅延

このクエリは、バス停の観点からの遅延に関する情報を計算します。これには、停留所での平均遅延時間や、停留所への乗車が遅れる頻度が含まれます。

// 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

クエリを実行し、結果を確認します。

「Delays by Stop」クエリの結果のスクリーンショット。

バスとルートによる遅延

このクエリは、バス ルートの観点から遅延に関する情報を計算し、バスラインとストップ コードの組み合わせごとに平均遅延を計算します。

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

クエリを実行し、結果を確認します。

[Delays by Bus Route]\(バス ルートごとの遅延\) クエリ結果のスクリーンショット。

推定遅延時間

このクエリは、現在の時刻と次のステーションまでの時間に基づいて、バスが次の停留所で遅れるかどうかを予測します。

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 ダッシュボードに設定します。

ダッシュボードの外観を次に示します (前のセクションのクエリに注目してください: 遅延状態停止による遅延バスとルートによる遅延推定遅延数)。

Real-Time ダッシュボードのスクリーンショット。

新しいダッシュボードを作成する

まず、Fabric ワークスペースに空の Real-Time ダッシュボードを作成します。

リアルタイム ダッシュボードは、ワークスペースのコンテキスト内に存在します。 新しい KQL クエリセットは、作成時に使用しているワークスペースに常に関連付けられます。

  1. 対象のワークスペースを参照します。

  2. + 新規アイテム を選択します。

  3. 新しい項目 ウィンドウで、Real-Time ダッシュボード を選択します。 必要に応じて、テキスト ボックスを使用して検索します。

    Real-Time ダッシュボードが選択されている [新しいアイテム] ページのスクリーンショット。

  4. [ 新しい Real-Time ダッシュボード ] ポップアップで、ダッシュボードの名前を入力し、[ 作成] を選択します。

    ダッシュボードの名前を含む [新しい Real-Time ダッシュボード] ページのスクリーンショット。

  5. ワークスペースに新しいダッシュボードが作成されます。

    Microsoft Fabric のリアルタイム インテリジェンスで新しく作成されたリアルタイム ダッシュボードのスクリーンショット。

テンプレートをアップロードしてデータ ソースを接続する

次に、テンプレート ファイルを使用して、以前の KQL クエリに基づいてダッシュボードにタイルを設定します。

  1. GitHub のサンプル フォルダー (digital-twin-builder/bus-scenario) から DTB+RTI_dashboard.json ダッシュボード テンプレートをダウンロードします。

  2. Real-Time ダッシュボードで、[ 管理 ] タブを選択し、 ファイルに置き換えます

  3. ダウンロードしたダッシュボード テンプレート ファイルを開きます。 データベースとワークスペース ID のテンプレートのプレースホルダー値にフラグを設定する 移行の警告 を続行します。

  4. テンプレート ファイルはダッシュボードに複数のタイルを設定しますが、接続されたデータ ソースがまだないため、タイルはデータを取得できません。

    Real-Time ダッシュボードのスクリーンショット。エラーが表示されています。

  5. [管理] タブで、[データ ソース] を選択します。 この操作により、[ データ ソース ] ウィンドウが開き、データのサンプル ソースが表示されます。 チュートリアル データ ソースの編集アイコンを選択します。

    Real-Time ダッシュボードでのデータ ソースの管理のスクリーンショット。

  6. [ データベース] で、ドロップダウン矢印と KQL データベースを選択します。 チュートリアル KQL データベースを選択し、[接続] を選択します。 その他の既定の設定はそのままにして、[ 適用] を選択し、[ データ ソース ] ウィンドウを閉じます。

数秒後、ビジュアルにデータベースからのデータが入力されます。

ヒント

ダッシュボードは現在の時刻を UTC で保持するため、時間範囲セレクターが現地時刻と一致しない可能性があります。 タイルにデータが表示されない場合は、時間範囲を展開します。

ダッシュボードを調べる。 各タイルの [データの編集探索 ] アイコンを使用して、基になるクエリを表示したり、時間範囲フィルターやその他のタイル オプションを変更したり、独自の新しいクエリやタイルを追加したりできます。

Real-Time ダッシュボードの探索オプションのスクリーンショット。

この視覚化により、Real-Time Intelligence でデジタル ツイン ビルダー (プレビュー) を使用するためのエンド ツー エンドのチュートリアルが完了します。 デジタル ツイン ビルダーを使用して、Real-Time Intelligence からストリーミングされたサンプル バス データをコンテキスト化した後、オントロジ データを Eventhouse に投影して、KQL クエリと Real-Time ダッシュボードを通じてさらに洞察を得ています。

このチュートリアルで使用される KQL 演算子の詳細については、以下を参照してください。

次のステップ