すべてのプロダクト
Search
ドキュメントセンター

DataWorks:インテリジェント診断機能を使用する

最終更新日:Mar 19, 2025

ノードに対して生成されたインスタンスの実行は、現在のノードのスケジュール時間、先祖ノードのスケジュール時間、先祖インスタンスの実行が完了した時間、インスタンスの実行に使用されるリソースグループの残りのリソースなど、さまざまな要因の影響を受けます。ノードのスケジュール時間は DataStudio で指定されます。このトピックでは、インテリジェント診断機能を使用して、インスタンスが期待どおりに実行されない理由をすばやく特定する方法について説明します。

前提条件

自動トリガーインスタンスは、ノードに対して生成されます。自動トリガーノードをコミットしてスケジューリングシステムにデプロイすると、DataWorks は、DataStudio で構成した インスタンス生成モード パラメーターの値に基づいて、自動トリガーノードのインスタンスを生成します。

背景情報

オペレーションセンターでは、インスタンスのステータス、色、またはステータスアイコンを表示して、インスタンスのステージを判断したり、インスタンスが期待どおりに実行されない理由を特定したりできます。詳細については、「ログデータの表示」をご参照ください。

  • 色とステータスアイコン: オペレーションセンターでは、さまざまな色とステータスアイコンを使用してインスタンスのステータスを表します。次の表に、さまざまな色のステータスアイコンとインスタンスの状態のマッピングを示します。

  • ステータス: 次の操作を実行して、インスタンスのステータスを表示することもできます。インスタンスの有向非循環グラフ(DAG)を開きます。インスタンスを右クリックし、ショートカットメニューから [その他] を選択します。[全般] タブで、[ノードステータス] パラメーターの値を表示します。

番号

ステータス

アイコン

フローチャート

1

正常に実行

运行成功

运行流程图

2

未実行

未运行

3

実行に失敗しました

运行失败

4

実行中

正在运行

5

待機時間

等待状态

6

フリーズ

暂停冻结状态

説明

現在のインスタンスの先祖インスタンスが長時間実行中の状態にある場合は、次のいずれかの方法を使用して問題を解決できます。

  • 先祖インスタンスが非バッチ同期ノードによって生成された場合は、次の操作を実行して原因を表示できます。

  • 先祖インスタンスがバッチ同期ノードによって生成された場合、考えられる原因の 1 つは、先祖インスタンスが長時間リソースを待機している状態にあることです。もう 1 つの考えられる原因は、ノードの実行中に一部のコードのロジックの処理速度が遅いことです。詳細については、「バッチ同期ノードの実行時間が長いという問題のトラブルシューティング方法」をご参照ください。

インテリジェント診断ページに移動する

インスタンスが期待どおりに実行されない場合は、オペレーションセンターでインスタンスを見つけて、インスタンスの診断ページに移動し、理由を特定できます。インスタンスは、自動トリガーノードインスタンスデータバックフィルインスタンス、または テストインスタンス のいずれかです。次の図は、インスタンスの診断ページに移動する方法を示しています。Procedure to go to the Intelligent Diagnosis page

診断手順

インスタンスが正常に実行できるかどうかは、アップストリームの依存関係、スケジュール時間、インスタンスの実行に使用されるリソースグループのリソース使用量、インスタンスの実行の詳細など、複数の要因の影響を受けます。スケジュール時間が経過してもインスタンスが実行されない場合、またはインスタンスの実行に失敗した場合は、DataWorks が提供するインテリジェント診断機能を使用して理由を特定できます。

インテリジェント診断ページでは、次の表で説明されている操作を実行できます。

手順

説明

1. 先祖インスタンスのステータスを確認します。

依存関係が構成されているノードは、すべての上流ノードの実行が完了した後にのみ実行できます。現在のインスタンスの診断ページの [実行の詳細] タブの [アップストリームノード] ステップでは、現在のインスタンスの先祖インスタンスのステータスを表示できます。先祖インスタンスの実行に失敗した場合は、先祖インスタンスに対応する [操作] 列の [インスタンス診断] をクリックして、失敗の原因を特定できます。

2. スケジュール時間を確認します。

現在のインスタンスが生成されるノードに対して DataStudio で指定された スケジュール時間 は、ノードの実行が開始される予定時刻です。現在のインスタンスの診断ページの [実行の詳細] タブの [タイミングチェック] ステップでは、現在のインスタンスに指定されたスケジュール時間が到来したかどうかを確認できます。

インスタンスのスケジュール時間の自動チェックは、現在のインスタンスのすべての上流インスタンスが正常に実行された後にのみトリガーされます。この条件により、現在のインスタンスに必要なデータが生成されます。スケジュール時間が到来すると、現在のノードはすぐに現在のインスタンスを実行します。

3. スケジューリングリソースの使用状況を確認します。

ほとんどの場合、インスタンスは、次の条件が満たされると実行を開始できます。インスタンスの先祖インスタンスの実行が完了する、および インスタンスのスケジュール時間が到来する

ただし、スケジューリングリソースは限られています。現在のインスタンスに使用されるスケジューリング用リソースグループの残りのリソースが不足している場合、現在のインスタンスはリソース待機状態になります。現在のインスタンスの診断ページの [実行の詳細] タブの [リソース] ステップでは、リソースの使用状況を表示できます。

4. 実行の詳細を確認します。

現在のインスタンスを実行するための条件が満たされると、DataWorks は現在のインスタンスを実行するために使用される対応するコンピュートエンジンインスタンスまたはサーバーに現在のインスタンスを発行します。現在のインスタンスの実行に失敗した場合は、診断ページの [実行の詳細] タブの [実行] ステップで失敗の原因を特定できます。

(オプション) 5. 監視の詳細を表示します。

監視ルールまたはベースラインが構成されているインスタンスの場合、インスタンスの [診断] ページの [全般] タブ、[影響ベースライン] タブ、[履歴インスタンス] タブで、監視ルールまたはベースラインのステータスを表示できます。

先祖インスタンスのステータスを確認する

現在のインスタンスの先祖インスタンスのステータスを確認して、現在のインスタンスの実行をブロックしている主要な先祖インスタンスを特定できます。

先祖インスタンスが現在のインスタンスの実行に及ぼす影響

依存関係が構成されているノードは、すべての上流ノードの実行が完了した後にのみ実行を開始できます。現在のインスタンスの先祖インスタンスは、現在のインスタンスの実行に次の影響を与えます。

  • 現在のインスタンスを実行できるかどうかは、現在のインスタンスの先祖インスタンスが正常に実行されるかどうかに依存します。

    DataWorks でインスタンス間のスケジューリングの依存関係を構成すると、インスタンスのデータ間の依存関係がデフォルトで確立されます。現在のインスタンスの先祖インスタンスが実行されていない場合、現在のインスタンスが依存するデータは生成されません。この場合、現在のインスタンスが実行されると、データ品質の問題が発生します。現在のインスタンスを実行するには、現在のインスタンスに指定されたスケジュール時間が到来し、現在のインスタンスのすべての上流インスタンスの実行が完了していることを確認する必要があります。

  • 現在のインスタンスが実行を開始する最も早い時刻は、現在のインスタンスの先祖インスタンスのスケジュール時間によって異なります。

    現在のインスタンスの先祖インスタンスは、先祖インスタンスに指定されたスケジュール時間が到来した後にのみ実行を開始できます。現在のインスタンスの実行がスケジュールされている時刻が、現在のインスタンスの先祖インスタンスのスケジュール時間よりも早く、現在のインスタンスのスケジュール時間が到来した場合、現在のインスタンスは、現在のインスタンスの先祖インスタンスの実行が完了するまで実行を開始できません。したがって、現在のインスタンスの実行がスケジュールされている最も早い時刻は、現在のインスタンスの先祖インスタンスのスケジュール時間によって異なります。詳細については、「タスク間の依存関係がタスクの実行に及ぼす影響」をご参照ください。

実行されていない先祖インスタンスを見つける

現在のインスタンスのステータスアイコンが Pending (Ancestor) の場合、現在のインスタンスは保留中(先祖)状態です。次の操作を実行して、実行されていない先祖インスタンスを表示できます。現在のインスタンスの DAG を開きます。DAG 内の現在のインスタンスを右クリックし、ショートカットメニューから [インスタンス診断] を選択します。診断ページの [実行の詳細] タブで、[アップストリームノード] をクリックします。

説明

デフォルトでは、6 レベルの先祖インスタンスの出力が走査されます。条件を満たす先祖インスタンスが見つからない場合は、現在のインスタンスの DAG で [アップストリーム分析] をクリックして、データ分析を続行します。

Upstream Nodes

特別なケース:

  • 孤立ノード: ノードが先祖ノードに依存していない場合、ノードは孤立ノードです。詳細については、「シナリオ: 孤立ノード」をご参照ください。このタイプのノードは、スケジュールどおりに実行できません。現在のインスタンスが生成されるノードが孤立ノードの場合は、できるだけ早く孤立ノードの先祖ノードを構成します。

  • フリーズされた先祖インスタンス: 現在のインスタンスの先祖インスタンスがフリーズされている場合、現在のインスタンスの実行もブロックされます。この場合、現在のインスタンスの先祖インスタンスを担当するオーナーに連絡して、先祖インスタンスがフリーズされている理由を特定し、できるだけ早くビジネスを調整します。

スケジュール時間を確認する

DataStudio でノードに 定義されたスケジュール時間 は、ノードに対して生成されるインスタンスの予想実行時間です。現在のインスタンスに指定されたスケジュール時間の自動チェックは、現在のインスタンスのすべての上流インスタンスが正常に実行された後にのみトリガーされます。この条件により、現在のインスタンスに必要なデータが生成されます。ほとんどの場合、手動チェックを実行すると、次のいずれかの結果が得られます。

  • 現在のインスタンスのスケジュール時間が到来しました。ただし、現在のインスタンスの先祖インスタンスはまだ実行中です。

    このシナリオでは、現在のインスタンスの先祖インスタンスの実行が完了すると、現在のインスタンスのスケジューリングリソースが十分であれば、現在のインスタンスはすぐに実行されます。

  • 現在のインスタンスの先祖インスタンスの実行が完了しました。ただし、現在のインスタンスのスケジュール時間はまだ到来していません。

    このシナリオでは、現在のインスタンスは、現在のインスタンスのスケジュール時間が到来した後にのみ実行を開始できます。現在のインスタンスのステータスアイコンが Waiting の場合、現在のインスタンスは保留中(スケジュール)状態です。[インテリジェント診断] ページの [エンドツーエンド診断] タブの [タイミングチェック] ステップで、現在のインスタンスに関する詳細情報を表示できます。Timing Check

スケジューリングリソースを確認する

現在のインスタンスは、次の条件が満たされると実行を開始できます。現在のインスタンスの先祖インスタンスの実行が完了する、および 現在のインスタンスのスケジュール時間が到来する。ただし、スケジューリングリソースは限られています。現在のインスタンスに使用されるスケジューリング用リソースグループの残りのリソースが不足している場合、現在のインスタンスはリソース待機状態になります。

説明

ほとんどの場合、スケジューリングリソースは、インスタンスの実行に使用されるリソースとは異なります。スケジューリング用リソースグループを使用して、現在のインスタンスが生成されるノードを目的のコンピュートエンジンインスタンスにのみ発行できます。スケジューリング用リソースグループを使用して、現在のインスタンスが生成されるノードを対応するコンピュートエンジンインスタンスに発行した後、他のノードがコンピュートエンジンインスタンスを使用して長時間実行されている場合、コンピュートエンジンリソースが不足しているため、ノードの実行がブロックされます。詳細については、「概要」をご参照ください。

リソースを占有しているインスタンスを見つける

インスタンスのステータスアイコンが Pending (Resources) の場合、インスタンスは保留中(リソース)状態です。[インテリジェント診断] ページの [エンドツーエンド診断] タブの [リソース] ステップで、リソースを占有しているインスタンスを表示し、できるだけ早くビジネスを調整できます。

現在のインスタンスが保留中(リソース)状態になる可能性のあるシナリオ

ノードが長時間期待どおりに実行されていたにもかかわらず、そのインスタンスの 1 つが突然リソース待機状態になった場合は、次の表で説明されているシナリオのいずれかが存在するかどうかを確認します。

シナリオ

ソリューション

長時間リソースを占有しているインスタンスが存在し、リソースがタイムリーに解放されません。その結果、現在のインスタンスの実行がブロックされます。

診断ページの [実行の詳細] タブの [リソース] ステップで、長時間リソースを占有しているインスタンスが存在するかどうかを確認します。次に、実行ログを表示 して、インスタンスが長時間リソースを占有している理由を特定します。

現在のインスタンスの実行に使用されるリソースグループで実行されるインスタンスの数が増加します。

現在のインスタンスの実行に使用されるリソースグループで実行されるインスタンスの数が増加すると、現在のインスタンスはリソース待機状態になります。この場合、現在のインスタンスの優先順位を調整するか、現在のインスタンスのリソースグループを変更できます。

大量のメモリリソースを占有するインスタンスが存在します。

排他的リソースグループで大量のメモリリソースを占有する Shell ノードまたは PyODPS ノードが存在するかどうかを確認します。

重要
  • スケジューリング用の共有リソースグループは、DataWorks のテナントによって共有されます。ピーク時にスケジューリング用の共有リソースグループでノードを実行すると、ノードはスケジューリングリソースを競合します。その結果、ノードの実行適時性を確保できません。ほとんどの場合、ピーク時間は 00:00 から 09:00 です。スケジューリング用の共有リソースグループを使用してノードをスケジュールし、ノードがリソース待機状態になった場合は、ノードをスケジューリング用の排他的リソースグループに移行することをお勧めします。詳細については、「スケジューリング用の排他的リソースグループ」をご参照ください。

  • スケジューリング用の排他的リソースグループで同時に実行できるノードの最大数は、リソースグループの仕様によって異なります。詳細については、「スケジューリング用の排他的リソースグループ」をご参照ください。

実行の詳細を表示する

現在のインスタンスを実行するための条件が満たされると、DataWorks は現在のインスタンスを、現在のインスタンスを実行するために使用されるリソースグループまたはコンピュートエンジンインスタンスに発行します。DataWorks の発行メカニズムの詳細については、「概要」をご参照ください。

現在のインスタンスのステータスアイコンが Failed の場合、現在のインスタンスは失敗状態です。診断ページの [実行の詳細] タブの [実行] ステップで、現在のインスタンスが実行に失敗した理由を特定できます。Failed ほとんどの場合、インスタンスは次のシナリオで実行に失敗します。

  • インスタンスのコードの実行に失敗しました。これは、データ同期ロジックまたはデータ処理ロジックの実行に失敗したことを示します。

  • インスタンスによって生成されたテーブルデータが、構成されたデータ品質監視ルールを満たしていません。

  • インスタンスがフリーズされています。

SQL ノードのコードの詳細を表示する

SQL ノードの場合、診断ページの [実行の詳細] タブの [実行] ステップで、SQL ノードに対して生成されたインスタンスの詳細なログデータを表示できます。DataWorks は、ノードを対応するコンピュートエンジンインスタンスに発行します。ノードの実行に使用する SQL 文の実行に失敗した場合は、対応するコンピュートエンジンのドキュメントを表示して、失敗の原因を特定できます。

同期ノードの実行の詳細を表示する

同期ノードの実行が開始されると、DataWorks のスケジューリングシステムは同期ノードのスケジュールを開始します。ただし、データの同期が開始されたかどうかは、ログデータの詳細に基づいてのみ判断できます。詳細については、「バッチ同期タスクに対して生成された実行ログの分析」をご参照ください。データ同期中に次の問題が発生する可能性があります。

  • データ同期中に、ログデータに WAIT が長時間表示されます。

    データ同期中に、ログデータに WAIT が長時間表示される場合、DataWorks のスケジューリングシステムは同期ノードを発行しています。同期ノードの実行に使用されるリソースグループのリソースが不足しているため、同期ノードはリソース待機状態になります。

    たとえば、4 vCPU と 8 GiB のメモリを使用するデータ統合専用リソースグループは、最大 8 つのパラレル スレッドをサポートします。3 つの同期ノードがデータ統合専用リソースグループで実行されるように構成されています。各同期ノードに 3 つのパラレル スレッドが構成されています。2 つのノードがリソースグループで並列に実行されている場合、データ統合用リソースグループはさらに 2 つのパラレル スレッドをサポートできます。この場合、残りのノードはリソースが不足しているためリソースグループのリソースを待機する必要があり、ノードのログにはノードが WAIT 状態であることが示されます。この場合、診断ページの Data Integration実行[実行の詳細] タブの ステップの タブに移動して、次の情報を表示できます。現在のインスタンスがリソース待機状態にあるときにデータ統合用リソースグループで実行されているインスタンス、および各インスタンスで使用されているリソースの量。

    説明
    • 各同期ノードは 1 つのスケジューリングリソースを占有します。同期ノードが長時間期待どおりに実行されない場合、他のノードの実行がブロックされる可能性があります。

    • リソース使用率が高いにもかかわらずノードが実行されていない場合、またはリソースグループで実行されているノードの数が上限に達していないにもかかわらず現在のノードを実行できない場合は、アプリケーションリンク をクリックするか、以下の QR コードをスキャンして DataWorks DingTalk グループに参加し、プリセールスおよびアフターセールス担当者に連絡してください。インテリジェントチャットボットまたはオンデューティ担当者に連絡して相談できます。QR code

    説明

    データ統合専用リソースグループでサポートされるパラレル スレッドの最大数は、リソースグループの仕様によって異なります。詳細については、「データ統合専用リソースグループ」をご参照ください。

  • データ同期に失敗しました。

    同期ノードの実行に失敗した場合は、エラーメッセージと特定のプラグインの説明に基づいて失敗の原因を特定できます。詳細については、「ネットワーク接続とリソースグループの操作に関するよくある質問」をご参照ください。

監視の詳細を表示する

監視ルールまたはベースラインが構成されているインスタンスの場合、次の操作を実行して、インスタンスが属する監視ルールまたはベースラインと、監視ルールまたはベースラインのステータスを表示できます。インスタンスのインテリジェント診断ページに移動します。次に、[実行の詳細] タブに表示されるプロンプトメッセージの横にある [詳細の表示] をクリックします。

説明

監視ルールが構成されている場合にのみ、監視の詳細を表示できます。詳細については、「アラート情報の表示」をご参照ください。