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

DataWorks:同一サイクル依存関係の構成

最終更新日:Mar 26, 2026

ノードが、同じスケジューリングサイクル内で別のノードが書き込むテーブルから読み取る場合、同一サイクルスケジューリング依存関係を構成します。依存ノードは、そのサイクル内で先祖ノードが正常に完了するまで待機してから開始します。

DataWorks は複数の構成方法と依存関係プレビュー機能を提供しており、問題が発生する前に依存関係を検証および調整できます。

説明

スケジューリング依存関係を構成する前に、「スケジューリング設定の構成」トピックを読んで基本概念を理解してください。

2種類の依存関係について

DataWorks には、2つの異なる依存関係があります。これらを混同すると、スケジューリング動作が正しくなくなります。

関係意味DAGでの視覚的インジケーター
同一サイクル依存関係サイクル N のノード B は、サイクル N のノード A に依存します。実線
クロスサイクル依存サイクル N のノード B は、サイクル N-1 以前のノード A に依存します。

デフォルト動作: デフォルトでは、ノードは現在のサイクル内のすべての先祖ノードが正常に完了するまで待機してから開始します。

同一サイクル依存関係が要件を満たせない場合 (たとえば、日次ノードが時間単位ノードに依存する場合)、日次ノード用に生成されたインスタンスは、デフォルトで現在の日の時間単位ノード用に生成されたすべてのインスタンスに依存します。時間単位ノードに自己依存関係を構成する場合、日次ノードが特定のスケジューリングサイクルで時間単位ノード用に生成されたインスタンスに依存するように指定できます。より複雑なシナリオの場合は、代わりにクロスサイクルスケジューリング依存関係を構成してください。

依存関係の仕組み

DataWorks のスケジューリング依存関係は、ノードからテーブル、そしてノードへのチェーンに従います。

  1. ノード A が実行され、出力テーブル (例: project.table_a) にデータを書き込みます。

  2. ノード A の出力は、workspace_name.output_name 形式で出力名として登録されます。

  3. ノード B は、ノード A の出力をその入力 (先祖ノード) として宣言し、依存関係を形成します。

  4. スケジューリングサイクルが実行されると、ノード B はノード A が正常に完了するまで待機してから開始します。

自動依存関係検出を最大限に活用するには、開発中に次の原則に従ってください。

原則ガイドライン
ノード命名各ノードに、それが生成する出力テーブルの名前を付けます。
コード開発複数のノードから同じテーブルにデータを書き込まないでください。
依存関係の構成出力テーブルをノードの出力として登録します。

スケジューリング依存関係の構成

DataStudio でノードを開き、右側のパネルで [プロパティ] タブをクリックします。[スケジューリング依存関係] セクションには、2 つの部分があります:

  • ノード依存関係 — 現在のノードが依存する先祖ノード

  • ノード出力 — 他のノードが現在のノードに依存するために参照する出力

imageimage

先祖ノードの指定

すべてのノードには、少なくとも1つの先祖ノードが必要です。テーブルリネージが存在しない場合は、ワークスペースのルートノードまたはゼロロードノードを使用します。

すべての先祖ノードがコミット済みであることを確認してください。コミット時に先祖ノードの出力が存在しないというエラーが表示される場合、その先祖ノードはまだコミットされていません。

次の方法が利用可能です。デフォルトとして自動解析を使用してください。これは最も高速でエラーが発生しにくいアプローチです。

自動解析 (推奨)

[コードから入力および出力を解析]」を「[ノードの依存関係]」セクションでクリックします。DataWorks はエディター内の最新のコードを解析し、テーブルリネージに基づいて入力テーブルおよび出力テーブルを特定し、先祖ノードを自動的に推奨します。

DataWorks は、コード解析結果から projectName.tableName 形式で出力名を生成し、一致するノードを検索して推奨します。

image
説明

自動的に推奨されるノードは、1日遅れて更新されます。ノードはコミットされ、本番環境にデプロイされ、データが現在の日に生成されてから、推奨事項に表示されます。推奨されるノードがコミットされ、期待されるテーブルが生成されていることを確認してください。

ワークフローキャンバスに線を引く

ワークフローの構成タブで、先祖ノードから現在のノードに線を引きます。DataWorks は、先祖ノードのデフォルト出力を現在のノードの入力として自動的に追加し、先祖ノードの出力パラメーターを子孫ノードに配信します。

ワークフロー設計中に視覚的に依存関係を設定する場合は、この方法を使用します。接続線を削除すると、対応するスケジューリング依存関係も削除されます。

先祖ノードの手動追加

[スケジューリング依存関係] セクションで、[依存関係の追加] をクリックします。依存関係のタイプとして、同一サイクルスケジューリング依存関係、クロスサイクルスケジューリング依存関係、クロスサイクル自己依存、またはレベル1の子孫ノードに対するクロスサイクル依存関係を選択し、その後、ノード名、[出力名]、またはスケジューリングタスク ID で検索します。

image

自動解析結果が要件と一致しない場合に依存関係を調整するには、この方法を使用します。

現在のノードの出力の指定

他のノードは、その出力名を参照することで現在のノードを見つけて依存します。ダウンストリームノードがそれに依存関係を宣言できるように、ノードの出力を構成します。

説明

デフォルトの出力名はグローバルに一意であり、変更または削除できません。ワークスペースに同じ名前のノードが含まれている場合、重複する出力名がコミット失敗の原因となる可能性があります。子孫ノードを持つノードの出力を削除すると、それらの子孫ノードが孤立し、スケジューリング不可になる可能性があります。詳細については、「ノード出力の削除または変更による影響」をご参照ください。

デフォルト出力の使用

DataWorks は、各ノードに対してデフォルトの出力を生成します。 出力テーブル名を変更するには、[操作] 列の [変更] をクリックします。

image

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

カスタム出力の追加

ノード出力」セクションで、「出力を追加」をクリックします。出力名と出力テーブル名を入力します。

image

workspace_name.custom_output_name 形式を使用します。出力名はグローバルに一意である必要があります。

スケジューリングの依存関係の確認

依存関係を構成した後、デプロイメントの前後でそれらが正しいことを確認します。

  • デプロイメント前: ノードをコミットし、DataWorks が依存関係エラーを報告しないことを確認します。

  • デプロイメント後: オペレーションセンターに移動し、本番環境で自動トリガーされたノードの有向非循環グラフ (DAG) を確認します。DAG 内の実線は同サイクル依存関係を表します。依存関係チェーンが期待通りであることを確認します。

説明

インスタンス間の依存関係は、インスタンス生成モードパラメーターの影響を受けます。本番 DAG が構成を反映しない場合は、この設定を確認してください。

ノード出力の削除または変更による影響

ノードの出力を変更しても、そのノードが生成するテーブルには影響しません。ただし、当該出力に依存する後続ノードには影響があります。

変更内容影響
出力の削除子孫ノードが先祖ノードへのリファレンスを失い、孤立(スケジュール不可)状態になる可能性があります。
出力の変更出力リファレンスは他のノードへ転送可能ですが、既存の子孫ノードに影響が及ぶ場合があります。

子孫ノードを持つノードの出力を削除する前に、当該子孫ノードのオーナーに事前に連絡し、依存関係の構成を更新していただく必要があります。

次のステップ