このトピックでは、ノードの実行、ノードでの O&M 操作の実行、およびログに基づいてノードで発生するエラーのトラブルシューティングを行う方法について説明します。
背景情報
たとえば、スケジューリングサイクルとスケジューリング依存関係の設定の操作で、バッチ同期ノードが毎週火曜日の 02:00 に実行されるように設定を構成します。ノードをコミットした後、ノードの自動実行結果を表示するには、翌日まで待つ必要があります。DataWorks では、次のモードでノードを実行できます。テスト実行、ノードのデータバックフィル、および定期実行。このようにして、ノードに対して生成された各インスタンスのスケジューリング時間、ノードのスケジューリング依存関係、および生成されたデータがビジネス要件を満たしているかどうかを確認できます。
テスト実行: ノードは手動でトリガーされます。単一のノードのスケジューリング時間と実行のみを確認する必要がある場合は、このモードを使用することをお勧めします。詳細については、「自動トリガータスクをテストし、タスクに対して生成されたテストインスタンスを表示する」をご参照ください。
データバックフィル: ノードは手動でトリガーされます。複数のノードのスケジューリング時間とノード間のスケジューリング依存関係を確認する必要がある場合、または特定のルートノードからデータ分析と計算を再実行する必要がある場合は、このモードを使用することをお勧めします。詳細については、「データをバックフィルし、データバックフィルインスタンスを表示する (新バージョン)」をご参照ください。
定期実行: ノードは自動的にトリガーされます。ノードをコミットすると、スケジューリングシステムは翌日の 00:00 からノードのインスタンスを自動的に実行します。各インスタンスのスケジューリング時間が到着すると、スケジューリングシステムはインスタンスの上位インスタンスが正常に実行されたかどうかを確認します。すべての上位インスタンスが正常に実行された場合、スケジューリングシステムは手動介入なしでインスタンスを実行します。詳細については、「自動トリガーインスタンスを表示する」をご参照ください。
スケジューリングシステムは、同じルールに基づいて、手動でトリガーされたノードと自動でトリガーされたノードのインスタンスを生成します。
スケジューリングシステムは、ノードが分、時、日、週、または月ごとに実行されるようにスケジュールされているかどうかに関係なく、毎日各ノードのインスタンスを生成します。
スケジューリングシステムは、インスタンスのスケジューリング時間が到着した日にのみ、ノードに対して生成されたインスタンスを実行します。この場合、インスタンスの実行ログが生成されます。
スケジューリングシステムは、他の日付にノードに対して生成されたインスタンスを実行しません。代わりに、スケジューリングシステムは、インスタンスを実行するための条件が満たされたときに、インスタンスのステータスを成功に変更します。インスタンスの実行ログは生成されません。
ノード O&M の詳細については、「オペレーションセンター」をご参照ください。
テスト実行を実行する
現在のページの左上隅にある
アイコンをクリックし、 を選択します。[オペレーションセンター] ページの左側のナビゲーションペインで、 を選択します。
表示されるページで、目的のノードを見つけ、[アクション] 列の [テスト] をクリックします。
[テスト] ダイアログボックスで、[テスト名] パラメーターと [データタイムスタンプ] パラメーターを構成し、[OK] をクリックします。
[テストインスタンス] ページで、生成されたインスタンスの名前をクリックします。インスタンスの有向非巡回グラフ (DAG) が右側に表示されます。
DAG では、インスタンスのスケジューリング依存関係と詳細を表示し、インスタンスに対する操作を実行できます。たとえば、インスタンスを右クリックして [停止] または [再実行] を選択して、インスタンスを停止または再実行できます。
説明テスト実行モードでは、ノードは手動でトリガーされます。スケジューリング時間が到着すると、スケジューリングシステムは、インスタンスの上位インスタンスが正常に実行されたかどうかに関係なく、ノードに対して生成されたインスタンスをすぐに実行します。
同期ノードは、毎週火曜日の 02:00 に実行されるように構成されています。このトピックで前述したインスタンス生成ルールに基づいて、ノードが実行されるようにスケジュールされている時刻の 1 日前のデータタイムスタンプがテスト実行で月曜日に設定されている場合、スケジューリングシステムは火曜日の 02:00 に同期ノードに対して生成されたインスタンスを実行します。テスト実行でデータタイムスタンプが月曜日に設定されていない場合、スケジューリングシステムは火曜日の 02:00 にインスタンスの状態を成功に変更し、実行ログは生成されません。
データバックフィル
複数のノードのスケジューリング時間とノード間のスケジューリング依存関係を確認する必要がある場合、または特定のルートノードからデータ分析と計算を再実行する必要がある場合は、ノードのデータをバックフィルすることをお勧めします。ノードのデータをバックフィルするには、次の手順を実行します。
[オペレーションセンター] ページの左側のナビゲーションペインで、 を選択します。
表示されるページで、目的のノードを見つけ、[アクション] 列で を選択します。
[データのバックフィル] ダイアログボックスで、パラメーターを構成し、[OK] をクリックします。次の表にパラメーターを示します。
パラメーター
説明
[データバックフィルインスタンス名]
ノードに対して生成されるデータバックフィルインスタンスの名前。
[データタイムスタンプ]
データバックフィルインスタンスのデータタイムスタンプ。データタイムスタンプの値は、
インスタンスが実行されるようにスケジュールされている時刻の 1 日前です。[ノード]
データをバックフィルするノード。デフォルトでは、現在のノードが指定されており、変更できません。
同時実行性
複数のデータバックフィルインスタンスを並列実行するかどうかを指定します。このパラメーターを [はい] に設定する場合は、並列実行できるデータバックフィルインスタンスの数も指定する必要があります。
[パッチデータ] ページで、生成されたデータバックフィルインスタンスの名前をクリックして、インスタンスの DAG を表示します。
DAG では、インスタンスのスケジューリング依存関係と詳細を表示し、インスタンスに対する操作を実行できます。たとえば、インスタンスを右クリックして [停止] または [再実行] を選択して、インスタンスを停止または再実行できます。
説明データバックフィルモードでは、ある日におけるデータバックフィルインスタンスの実行は、前日に実行されるようにスケジュールされているインスタンスに依存します。たとえば、ノードに対して 2017 年 9 月 15 日から 2017 年 9 月 18 日までの期間のデータをバックフィルするシナリオでは、2017 年 9 月 15 日のインスタンスが実行に失敗した場合、2017 年 9 月 16 日のインスタンスは実行できません。
同期ノードは、毎週火曜日の 02:00 に実行されるように構成されています。このトピックで前述したインスタンス生成ルールに基づいて、ノードが実行されるようにスケジュールされている時刻の 1 日前のデータタイムスタンプがデータバックフィル操作で月曜日に設定されている場合、スケジューリングシステムは火曜日の 02:00 に同期ノードに対して生成されたインスタンスを実行します。データバックフィル操作でデータタイムスタンプが月曜日に設定されていない場合、スケジューリングシステムは火曜日の 02:00 にインスタンスの状態を成功に変更し、実行ログは生成されません。
定期実行
定期実行モードでは、スケジューリングシステムは、ノードのスケジューリング設定に基づいて、すべてのノードのインスタンスを自動的に実行します。 [オペレーションセンター] ページでノードの定期実行を制御するためのメニュー項目は提供されていません。次のいずれかの方法を使用して、ノードに対して生成されたインスタンスの詳細と実行ログを表示できます。
[オペレーションセンター] ページの左側のナビゲーションペインで、 を選択します。表示されるページの [インスタンスパースペクティブ] タブで、[データタイムスタンプ] や [スケジュール] などのパラメーターを構成して、ノードの特定のインスタンスを検索します。次に、[アクション] 列で [詳細] > [ノードの詳細の表示] を選択してインスタンスの詳細を表示するか、[詳細] > [ランタイムログの表示] を選択してインスタンスの実行ログを表示します。
[サイクルインスタンス] ページの [インスタンスパースペクティブ] タブで、目的のノードのインスタンスを見つけ、[全般] 列でインスタンスの名前をクリックして、インスタンスの DAG を開きます。
DAG では、インスタンスのスケジューリング依存関係と詳細を表示し、インスタンスに対する操作を実行できます。たとえば、インスタンスを右クリックして [停止] または [再実行] を選択して、インスタンスを停止または再実行できます。
説明上位ノードが実行されていない場合、その下位ノードも実行されません。
インスタンスの初期状態が保留中の場合、スケジューリングシステムは、インスタンスのスケジューリング時間が到着したときに、すべての上位インスタンスが正常に実行されたかどうかを確認します。
インスタンスは、すべての上位インスタンスが正常に実行され、スケジューリング時間が到着した後にのみ実行できます。
インスタンスが保留中の場合は、すべての上位インスタンスが正常に実行されているかどうか、およびインスタンスのスケジューリング時間が到着しているかどうかを確認します。