ノードが、同じスケジューリングサイクル内で別のノードが書き込むテーブルから読み取る場合、同一サイクルスケジューリング依存関係を構成します。依存ノードは、そのサイクル内で先祖ノードが正常に完了するまで待機してから開始します。
DataWorks は複数の構成方法と依存関係プレビュー機能を提供しており、問題が発生する前に依存関係を検証および調整できます。
スケジューリング依存関係を構成する前に、「スケジューリング設定の構成」トピックを読んで基本概念を理解してください。
2種類の依存関係について
DataWorks には、2つの異なる依存関係があります。これらを混同すると、スケジューリング動作が正しくなくなります。
| 関係 | 意味 | DAGでの視覚的インジケーター |
|---|---|---|
| 同一サイクル依存関係 | サイクル N のノード B は、サイクル N のノード A に依存します。 | 実線 |
| クロスサイクル依存 | サイクル N のノード B は、サイクル N-1 以前のノード A に依存します。 | — |
デフォルト動作: デフォルトでは、ノードは現在のサイクル内のすべての先祖ノードが正常に完了するまで待機してから開始します。
同一サイクル依存関係が要件を満たせない場合 (たとえば、日次ノードが時間単位ノードに依存する場合)、日次ノード用に生成されたインスタンスは、デフォルトで現在の日の時間単位ノード用に生成されたすべてのインスタンスに依存します。時間単位ノードに自己依存関係を構成する場合、日次ノードが特定のスケジューリングサイクルで時間単位ノード用に生成されたインスタンスに依存するように指定できます。より複雑なシナリオの場合は、代わりにクロスサイクルスケジューリング依存関係を構成してください。
依存関係の仕組み
DataWorks のスケジューリング依存関係は、ノードからテーブル、そしてノードへのチェーンに従います。
ノード A が実行され、出力テーブル (例:
project.table_a) にデータを書き込みます。ノード A の出力は、
workspace_name.output_name形式で出力名として登録されます。ノード B は、ノード A の出力をその入力 (先祖ノード) として宣言し、依存関係を形成します。
スケジューリングサイクルが実行されると、ノード B はノード A が正常に完了するまで待機してから開始します。
自動依存関係検出を最大限に活用するには、開発中に次の原則に従ってください。
| 原則 | ガイドライン |
|---|---|
| ノード命名 | 各ノードに、それが生成する出力テーブルの名前を付けます。 |
| コード開発 | 複数のノードから同じテーブルにデータを書き込まないでください。 |
| 依存関係の構成 | 出力テーブルをノードの出力として登録します。 |
スケジューリング依存関係の構成
DataStudio でノードを開き、右側のパネルで [プロパティ] タブをクリックします。[スケジューリング依存関係] セクションには、2 つの部分があります:
ノード依存関係 — 現在のノードが依存する先祖ノード
ノード出力 — 他のノードが現在のノードに依存するために参照する出力


先祖ノードの指定
すべてのノードには、少なくとも1つの先祖ノードが必要です。テーブルリネージが存在しない場合は、ワークスペースのルートノードまたはゼロロードノードを使用します。
すべての先祖ノードがコミット済みであることを確認してください。コミット時に先祖ノードの出力が存在しないというエラーが表示される場合、その先祖ノードはまだコミットされていません。
次の方法が利用可能です。デフォルトとして自動解析を使用してください。これは最も高速でエラーが発生しにくいアプローチです。
自動解析 (推奨)
ワークフローキャンバスに線を引く
先祖ノードの手動追加
現在のノードの出力の指定
他のノードは、その出力名を参照することで現在のノードを見つけて依存します。ダウンストリームノードがそれに依存関係を宣言できるように、ノードの出力を構成します。
デフォルトの出力名はグローバルに一意であり、変更または削除できません。ワークスペースに同じ名前のノードが含まれている場合、重複する出力名がコミット失敗の原因となる可能性があります。子孫ノードを持つノードの出力を削除すると、それらの子孫ノードが孤立し、スケジューリング不可になる可能性があります。詳細については、「ノード出力の削除または変更による影響」をご参照ください。
デフォルト出力の使用
DataWorks は、各ノードに対してデフォルトの出力を生成します。 出力テーブル名を変更するには、[操作] 列の [変更] をクリックします。

ワークフローキャンバスでノードを接続するために線を引くと、DataWorks は自動的に出力テーブル名と出力名をダウンストリームノードの入力として生成します。
カスタム出力の追加
「ノード出力」セクションで、「出力を追加」をクリックします。出力名と出力テーブル名を入力します。

workspace_name.custom_output_name 形式を使用します。出力名はグローバルに一意である必要があります。
スケジューリングの依存関係の確認
依存関係を構成した後、デプロイメントの前後でそれらが正しいことを確認します。
デプロイメント前: ノードをコミットし、DataWorks が依存関係エラーを報告しないことを確認します。
デプロイメント後: オペレーションセンターに移動し、本番環境で自動トリガーされたノードの有向非循環グラフ (DAG) を確認します。DAG 内の実線は同サイクル依存関係を表します。依存関係チェーンが期待通りであることを確認します。
インスタンス間の依存関係は、インスタンス生成モードパラメーターの影響を受けます。本番 DAG が構成を反映しない場合は、この設定を確認してください。

