実行の詳細

Dataflow では、ウェブベース モニタリング ユーザー インターフェースで [実行の詳細] タブを表示します。このタブの情報を使用して、ジョブのパフォーマンスを最適化し、ジョブの動作の遅延や停止の理由を診断します。ジョブを起動すると、Dataflow モニタリング UI を使用して [実行の詳細] タブを表示できます。詳細については、Dataflow モニタリング インターフェースにアクセスするをご覧ください。

この機能によって VM に追加の CPU やネットワークなどは発生しません。実行の詳細は、ジョブのパフォーマンスに影響しない Dataflow バックエンド モニタリング システムによって収集されます。

このページでは、実行の詳細機能とそのユーザー インターフェース レイアウトについての概要を説明します。その他のトラブルシューティング情報については、パイプラインのトラブルシューティングとデバッグをご覧ください。

実行の詳細を使用する場面

Dataflow ジョブの実行時に実行の詳細を使用する一般的なシナリオは次のとおりです。

  • パイプラインが停止し、問題のトラブルシューティングを行う。
  • パイプラインの速度が遅いため、パイプラインを最適化することを目標とする。
  • 修正する必要はないが、パイプラインの実行の詳細を確認してジョブを理解する必要がある。

用語

実行の詳細を効果的に使用するには、次のコンセプトが Dataflow ジョブにどのように適用されるかを理解しておくと役に立ちます。

Dataflow の用語

  • 融合最適化: Dataflow が複数のステップまたは変換を融合するプロセス。このプロセスにより、ユーザーが送信するパイプラインが最適化されます。詳細については、融合の最適化をご覧ください。
  • ステージ: Dataflow パイプラインで融合されるステップの単位。
  • 最終ステージ: Dataflow パイプラインの最終ノード。パイプラインには複数の最終ノードを設定できます。

バッチの用語

  • クリティカル パス: ジョブ全体のランタイムを左右するパイプラインのステージ シーケンス。たとえば、このシーケンスでは次のステージは除外します。
    • ジョブ全体が終了する前に終了したパイプラインのブランチ。
    • 下流の処理を遅延させなかった入力。
  • ワーカー: Dataflow ジョブを実行する Compute Engine VM インスタンス。
  • ワークアイテム: Dataflow によって選択されたバンドルに対応する作業単位。

ストリーミングの用語

  • データの鮮度: リアルタイムと出力ウォーターマークの間の経過時間。詳細については、データの更新頻度をご覧ください。

実行の詳細タブを使用する

[実行の詳細] タブには、ステージの進捗状況ステージ情報パネルステージの進捗状況内)、ステージのワークフローワーカーの進捗状況の 4 つのビューがあります。

[ステージのワークフロー] ビューは、すべてのバッチジョブとストリーミング ジョブで自動的に有効になります。バッチジョブとストリーミング ジョブには [ステージの進捗状況] ビューがあり、バッチジョブには [ワーカーの進捗状況] ビューもあります。

このセクションでは、各ビューの詳細と、正常に完了した、またはしなかった Dataflow ジョブの例について説明します。

バッチジョブのステージの進行状況

Batch ジョブの [ステージの進行状況] ビューには、ジョブの実行ステージが開始時間と終了時間別に整理されて表示されます。この時間はバーで表示されます。たとえば、最長のバーを調べることで、パイプラインの最長のステージを視覚的に確認できます。

各バーのスパークラインには、ステージの進捗状況が時系列で示されます。ジョブ全体のランタイムを左右するステージをハイライト表示するには、[クリティカル パス] トグルをクリックします。また、ステージをフィルタして、関心のあるステージのみを選択することもできます。

バッチジョブのステージの進捗状況ビューの例。6 つの異なる実行ステージの長さの可視化。

ストリーミング ジョブのステージの進捗状況

ストリーミング ジョブの [ステージの進捗状況] ビューは、2 つのセクションに分割できます。ビューの前半には、ジョブの実行ステージごとのデータの鮮度を示すグラフが表示されます。グラフにカーソルを合わせると、その時点のデータの鮮度の値が表示されます。

ビューの下半分には、ジョブの実行ステージがトポロジ順に表示されます。下位ステージがないステージが最初に表示され、次にその下位ステージが表示されます。このビューにより、想定よりも時間がかかっているパイプラインのステージを簡単に特定できます。バーは、時間ドメイン全体で最も長いデータ鮮度に基づいてサイズ設定されます。

ストリーミング ジョブは、キャンセル、ドレイン、または更新されるまで実行されます。

  • グラフに表示されている時間選択ツールを使用して、より有用な期間にドメインを絞り込むことができます。
  • [ステージをフィルタ] メニューを使用して、目的のステージを選択します。

[ステージの進捗状況] ビューでは、ストリーミング ジョブが速度低下または停滞しているタイミングを簡単に確認できます。これには、次の 2 通りの方法があります。

  • [ステージ別のデータの鮮度] グラフには異常検出機能があります。これにより、データの鮮度が異常になったときに時間枠が自動的に表示されます。データの鮮度が選択した時間枠の 99 パーセンタイルを超えると、グラフに「潜在的な停滞」がハイライト表示されます。同様に、データの鮮度が 95 パーセンタイルを超えると、グラフに潜在的な速度低下がハイライト表示されます。

  • 予期しない結果が示されている時間のグラフにカーソルを合わせると、ボトルネックを検出できます。バーが長いほど、ステージが遅いことを示します。また、グラフの X 軸をクリックすると、その時点のデータが表示されます。停止または速度低下を引き起こすステージを特定する一般的な方法は、データの鮮度の急上昇の原因となる上流(最上位)または下流(最下位)のステージを見つけることです。このアプローチは、すべてのシナリオで使用できるものではありません。正確な原因を特定するには、さらにデバッグが必要になることがあります。

ストリーミング ジョブのステージの進行状況ビューの例。1 つの実行ステージの時間的長さと、考えられる速度低下の異常が示されています。

ステージ情報パネル

ステージ情報パネルには、融合ステージに関連付けられたステップのリストが経過時間の降順に表示されます。パネルを開くには、[ステージの進捗状況] ビューのバーのいずれかにカーソルを合わせて、[詳細を表示] をクリックします。

ステージ情報パネルの例

ステージのワークフロー

ステージのワークフローは、ジョブの実行ステージをワークフロー グラフとして表示します。ジョブ全体のランタイムを直接左右するステージだけを表示するには、[クリティカル パス] トグルをクリックします。

ステージのワークフロー ビューの例。ジョブのさまざまな実行ステージの階層が表示されます。

ワーカーの進捗状況

バッチジョブの場合、[ワーカーの進捗状況] には特定のステージのワーカーが表示されます。このビューはストリーミング ジョブでは使用できません。

各バーは、ワーカーにスケジュール設定された作業アイテムと対応しています。各ワーカーの下にワーカーの CPU 使用率を追跡するスパークラインが表示されるので、低使用率の問題を簡単に把握できます。

適切な密度で表示するために、ステージを事前に選択してこのビューをフィルタする必要があります。まず、[ステージの進捗状況] ビューでステージを特定します。そのステージにポインタを合わせて、[ワーカーを表示] をクリックし、[ワーカーの進捗状況] ビューを開きます。

ワーカーの進捗状況ビューの例。ワーカーには、ワークアイテムのスケジュール設定と CPU 使用率に対応するバーとスパークラインがあります。

次のステップ