演算子プロファイリング機能を使用すると、ジョブを変更することなく中間結果を表示できます。これにより、データ正確性の問題に関するトラブルシューティングが簡素化され、効率と業務継続性が向上し、重大なリアルタイムサービスのダウンタイムが削減されます。このトピックでは、演算子プロファイリングの実行方法について説明します。
背景情報
Flink ジョブの運用保守 (O&M) 中に、出力が期待どおりにならないことがあります。これはデータ正確性の問題として知られています。データ正確性の問題の原因は複雑で、特定が困難です。一般的なソリューションは、SQL ジョブを論理的に分割し、Print コネクタを使用して各ステップの結果を出力し、データを分析して考えられる原因を特定することです。このプロセスには時間がかかります。テストデータ、オンラインデータ、またはステート間の不整合により、原因を特定できない場合があります。そのため、これらの問題の解決にはしばしば長時間を要し、ジョブを何度も停止および開始する必要があります。Realtime Compute for Apache Flink は、演算子プロファイリング機能を提供します。この機能を使用すると、ジョブを変更することなく、選択した演算子の入力と出力を検査できます。これにより、データ正確性の問題をより効率的にトラブルシューティングできます。
制限事項
実行中の SQL ジョブのみがサポートされます。
Ververica Runtime (VVR) 8.0.4 以降を使用するジョブのみがサポートされます。
CREATE TABLE AS (CTAS) または CREATE DATABASE AS (CDAS) 文を使用するジョブはサポートされません。
セッションクラスターにデプロイされたジョブはサポートされません。
前のプロファイリング操作が停止するまで、新しいプロファイリング操作を開始することはできません。
操作手順
Realtime Compute for Apache Flink コンソールにログインします。対象のワークスペースの [操作] 列で、[コンソール] をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
対象のジョブの名前をクリックし、[概要] タブをクリックします。
演算子プロファイリングを有効にします。
[演算子プロファイリング] スイッチをオンにします。

プロファイリングする演算子を 1 つ以上選択します。

最大サンプリング時間を設定します。
サンプリング時間は 1 分から 30 分まで設定できます。サンプリング中にストレージ制限に達した場合、プロセスは早期に停止します。
[プロファイリングの開始] をクリックします。[プロファイリングステータス] が [サンプリング中] に変わります。
説明前のプロファイリング操作が停止するまで、新しいプロファイリング操作を開始することはできません。

プロファイリング結果を表示します。
プロンプトの [TM ログリスト] をクリックして、運用ログページに移動します。[ログ名] が inspect-taskmanager_0.out であるログを表示します。

結果は次の図に示されています。[概要] タブの有向非巡回グラフ (DAG) から演算子名をコピーできます。その後、ログページで演算子の出力を検索します。

プローブ停止モード
JobManager (JM) または TaskManager (TM) のフェイルオーバー後、プロファイリングは自動的に停止します。
ストレージ制限に達した場合、サンプリングは早期に停止します。
指定されたサンプリング時間に達すると、プロファイリングは停止します。
プロファイリングは手動で停止できます。
参照
詳細については、「[概要] タブの頂点サブタスクのステータス期間の色の意味」をご参照ください。
詳細については、「データが正しく書き込まれている (たとえば、Kafka が Flink からデータを受信している) にもかかわらず、Flink ジョブの概要にデータがゼロと表示される場合の対処方法」をご参照ください。