実行の詳細

Dataflow では、ウェブベース モニタリング ユーザー インターフェースで [実行の詳細] タブを表示します。このツールは、ジョブのパフォーマンスを最適化し、ジョブの動作の遅延や停止の理由を診断するのに役立ちます。このドキュメントは、Dataflow ジョブの実行を詳細に調べる必要がある Dataflow ユーザーを対象としています。

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

用語

実行の詳細を効果的に使用するには、次の主要なコンセプトの Dataflow ジョブへの適用方法を知っておく必要があります。

Dataflow の用語

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

バッチの用語

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

ストリーミングの用語

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

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

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

実行の詳細を有効にする

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

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

ジョブを起動すると、Dataflow モニタリング UI を使用して [実行の詳細] タブを表示できます。詳細については、Dataflow モニタリング インターフェースにアクセスするをご覧ください。

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

[実行の詳細] タブには、ステージの進捗状況ステージ情報パネルステージの進捗状況内)、ステージのワークフローワーカーの進捗状況の 4 つのビューがあります。このセクションでは、各ビューの詳細と、正常に完了した、またはしなかった Dataflow ジョブの例について説明します。

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

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

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

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

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

ストリーミング ジョブの [ステージの進捗状況] ビューは、2 つのセクションに分割できます。ビューの上半分には、ジョブの実行ステージごとのデータの鮮度を示すグラフが表示されます。グラフにカーソルを合わせると、その時点のデータの鮮度の値が表示されます。ビューの下半分にはジョブの実行ステージがトポロジ順に表示されます。下位ステージがないステージは最上位に、下位は下位に一覧表示されます。このビューにより、想定よりも時間がかかっているパイプラインのステージを簡単に特定できます。バーは、時間ドメイン全体で最も長いデータ鮮度に基づいてサイズ設定されます。

ストリーミング ジョブは、キャンセル、ドレイン、または更新されるまで実行されます。グラフの上にある時間選択ツールを使用すると、より範囲を絞り込んでドメインを絞り込むことができます。また、[ステージをフィルタ] プルダウンから目的のステージのみを選択することもできます。

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

  1. [ステージ別のデータの鮮度] グラフには異常検出機能があります。これにより、データの鮮度が異常になったときに時間枠が自動的に表示されます。データの鮮度が選択した時間枠の 99 パーセンタイルを超えると、グラフに「潜在的な停滞」がハイライト表示されます。同様に、データの鮮度が 95 パーセンタイルを超えると、グラフに「潜在的な速度低下」がハイライト表示されます。
  2. 異常に見える時間のグラフ上にカーソルを合わせると、ボトルネックを確認できます。ホバーして表示されるバーが長いほど、ステージが遅いことを示します。また、グラフの X 軸をクリックすると、その時点のデータが表示されます。停止または速度低下を引き起こすステージを特定する一般的な方法は、データの鮮度の急上昇の原因となる上流(最上位)または下流(最下位)のステージを見つけることです。このアプローチは、すべてのシナリオで使用できるものではありません。正確な原因を特定するには、さらにデバッグが必要になることがあります。

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

ステージ情報パネル

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

ステージ情報パネルの例

ステージのワークフロー

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

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

ワーカーの進捗状況

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

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

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

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

次のステップ