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

DataWorks:スケジューリング依存関係の設定

最終更新日:May 13, 2026

DataWorks において、「スケジューリング依存関係」とは、定期的にスケジューリングされるノード間のアップストリームとダウンストリームの関係を定義するものです。依存関係を設定すると、システムは、すべてのアップストリームの ノード インスタンス が成功した後にのみ、ダウンストリームの ノード インスタンス がトリガーされるようにします。これにより、データが正しい順序で生成および消費されることを保証します。本ドキュメントでは、スケジューリング依存関係の基本概念、種類、設定方法を紹介し、基本を理解して関連する手順を見つけられるようにサポートします。

仕組み

スケジューリング依存関係」は、DataWorks においてノード間のアップストリームとダウンストリームの関係を定義するメカニズムです。依存関係を設定することで、ノード がそのアップストリームノードの成功後にのみ開始するように指定でき、データ処理の正しい順序を保証します。依存関係が設定されると、DataWorks のスケジューリングシステムが自動的に実行順序を調整します。ダウンストリームの インスタンス は、すべてのアップストリームの インスタンス が成功し、時間やリソースの可用性といった他のすべての条件が満たされた場合にのみトリガーされます。

DataWorks は、アップストリームノードの出力名とダウンストリームノードの入力名を照合することで依存関係を確立します。依存関係を設定するための主要なワークフローは以下のとおりです。

  1. アップストリームノードの出力設定:アップストリームの ノード に出力名を追加します。通常は project_name.table_name の形式 (例:my_project.dim_user) で、その ノード が生成するデータテーブルを表します。

  2. ダウンストリームノードの入力設定:ダウンストリームの ノード で、アップストリーム ノード の出力名を検索して選択し、その入力 (依存関係) として設定します。これにより、依存関係が確立されます。

  3. 自動解析 (オプション):SQL ベースのノードの場合、DataWorks はコード内の INSERT 文と SELECT 文を自動的に解析し、入力テーブルと出力テーブルを特定して依存関係設定を生成できます。自動解析された設定を手動で調整することも可能です。自動解析をサポートする ノード タイプの一覧については、「ノードタイプ別の自動解析シナリオ」をご参照ください。

重要

ノード には、少なくとも1つの出力名が必要です。システムは、各 ノード に対して project_name.nodeID_out という形式でデフォルトの出力を自動的に生成します。このデフォルト出力は、すべてのカスタム出力を削除しても保持されます。

ルールと制限

  • デプロイ時に有効化スケジューリング依存関係は、ノード[コミット] して オペレーションセンター[デプロイ] した後にのみ有効になります。開発環境 で行われた設定は、自動的に 本番環境 に同期されません。

  • アップストリームとダウンストリームのスケジューリングステータス:依存関係が機能するためには、アップストリームとダウンストリームの両方の ノード インスタンス が生成され、正常なスケジューリング状態にある必要があります。ノード の設定が誤っているか、アップストリームの インスタンス が失敗した場合、ダウンストリームの ノード は孤立し、スケジュール通りに実行できなくなる可能性があります。

  • 循環依存の制限:システムは、直接的 (AがBに依存し、BがAに依存する) および間接的な循環依存を禁止しています。コミット 時に 循環依存 が検出された場合、システムは [デプロイ] をブロックし、エラーを報告します。

依存関係の種類

DataWorks は、同周期依存クロスサイクル依存 の2種類のスケジューリング依存関係をサポートしています。それぞれの種類は、異なるビジネスシナリオに適しています。

前提となる概念

周期とは、ノードの スケジューリング時間によって定義される相対的な概念です。「スケジューリング周期」とは、ある ノード の連続する2つのスケジュール済みインスタンス間の時間オフセットであり、そのスケジューリング頻度によって決まります。例えば、日次でスケジュールされたタスクの場合、前の周期とは前日の インスタンス を指します。時間単位でスケジュールされたタスクの場合、前の時間の インスタンス を指します。

スケジューリング頻度

1周期

日次、週次、月次、年次

1日

説明

週次、月次、年次のタスクであっても、インスタンスは日次ベースで生成されますが、スケジュールされていない日はドライランインスタンスとなります。したがって、依存関係の計算は日次粒度で行われ、前周期の インスタンスドライランインスタンス である可能性があります。

時間単位

1時間の間隔

分単位

分単位の間隔 (例:5分ごと)

2種類の依存関係

例えば、日次でスケジュールされた ノード A がテーブル dim_user を生成し、ダウンストリームの ノード B がこのテーブルを消費する場合を考えます:

  • 同周期依存:ノード B の本日インスタンス は、ノード A の本日インスタンス が成功するのを待ちます。これは、ノード B が同日にノード A によって生成されたデータを消費することを意味します。

  • クロスサイクル依存:ノード B の本日インスタンス は、ノード A の昨日インスタンス が成功するのを待ちます。これは、ノード B が前日にノード A によって生成されたデータを消費することを意味します。

項目

同周期依存

クロスサイクル依存 (前周期への依存)

定義

ノード の現周期の インスタンス が、そのアップストリーム ノード の現周期の インスタンス の結果に依存します。

ノード の現周期の インスタンス が、指定された ノード の前周期の インスタンス の結果に依存します。指定された ノード は、その ノード 自体 (自己依存)、直接のダウンストリーム ノード、またはその他の任意の ノード である可能性があります。

DAG表現

実線で表現されます。

破線で表現されます。

典型的なユースケース

ノード B は、本日ノード A によって生成されたデータを読み取る必要があります。

ノード が昨日生成されたデータ (例:T-1 読み取り) に依存します。時間単位または分単位のタスクが自己依存を使用して、直列実行を保証し、同時実行を回避します。

設定方法

自動解析、ワークフローエディターでのドラッグアンドドロップ接続、および手動設定をサポートします。

[スケジューリング設定] パネルの [前周期] セクションで、依存関係の形式を選択し、ノード IDを指定します。

注:同じノードペア間に 同周期依存クロスサイクル依存 が共存できますが、それぞれのビジネスロジックを理解する必要があります。クロスサイクル依存 のみが必要な場合は、自動的に生成された可能性のある 同周期依存 を削除することを忘れないでください。そうしないと、ダウンストリームの インスタンス は依然としてアップストリームの現周期の インスタンス の完了を待ち、予期せぬ遅延を引き起こす可能性があります。

設定

スケジューリングパイプラインの完全性と保守性を確保するため、すべてのノードは オペレーションセンター にデプロイして自動スケジューリングを行う前に、アップストリームの依存関係を設定する必要があります。ノード にデータ依存関係がない場合、ゼロロードノード または ルートノード に依存する必要があります。スケジューリング依存関係 を設定するには、ノードのビジネスロジックを分析し、依存オブジェクトとタイプを特定し、堅牢なデータワークフローを構築するための最適な方法を選択します。

1. 依存オブジェクトの特定

依存関係を設定する前に、以下の準備を完了してください:

  • データリネージの分析:アップストリームの ノード が生成するテーブルまたはパーティションが、ダウンストリームの ノード が読み取るテーブルまたはパーティションと一致することを確認します。

  • スケジューリングプロパティの確認:ノードのスケジューリング周期、有効日、スケジューリングパラメーター が正しく設定されていることを確認します。これらのプロパティは依存関係の振る舞いに直接影響します。

ノードのデータ依存要件に基づいて依存オブジェクトを選択します。

シナリオ1:直接出力への依存

  • ユースケース:ダウンストリームの ノード が必要とするデータは、DataWorks によって自動的にスケジューリングされる別のアップストリーム ノード が生成するテーブルから直接供給されます。

  • 設定戦略データリネージ に基づいて ノード の依存関係を設定します。

  • 核心的価値:これは最も直接的で堅牢な方法です。スケジューリングシステムは、アップストリームのデータが準備できた後にのみダウンストリームの ノード が開始されることを保証し、エンドツーエンドのデータ一貫性を確保します。

シナリオ2:非スケジュールデータへの依存

  • ユースケース:アップストリームのデータは DataWorks のスケジューリングシステムによって管理されておらず、ダウンストリームの依存関係のためのスケジュール可能なインスタンスを生成しません。例として以下が挙げられます:

    • 外部システムから OSS や FTP にプッシュされたファイル。

    • リアルタイム同期によって生成されたテーブル。

    • DataWorks によってスケジュールされていないサードパーティの同期ツールによって生成されたテーブル。

    • 手動アップロードまたは実行によって生成された一時テーブル。

  • 設定戦略:チェッカー ノード (Check ノードなど) を設定して、データが準備できているか (例:ファイルの存在やテーブルパーティションの生成) を能動的に検証します。ダウンストリームのビジネスノードは、このチェッカー ノード に依存できます。

  • 核心的価値:このアプローチは、「データが生成された」状態を「スケジュール可能なイベント」に変換し、後続のプロセスがデータの準備状況によって駆動されるようにします。これにより、非スケジュール化されたワークフローでもデータの正確性が保証されます。

シナリオ3:ビジネスロジック依存

  • ユースケースノード はデータ処理とコードロジックにおいて完全に独立していますが、特定のビジネスプロセスに属するか、定期的な間隔でスケジュールされる必要があります。

  • 設定戦略

    • ゼロロードノード に依存する:関連するタスクを論理的なユニットにグループ化することで、開始、停止、監視、およびメンテナンスが簡素化され、ビジネスロジックの整理に役立ちます。

    • ワークスペースルートノード に依存する:これにより、タスクがスケジューリングシステムによって時間通りにインスタンス化および実行されることが保証され、自動的にスケジュールできない 孤立ノード になるのを防ぎます。

  • 核心的価値:これにより、ノードが孤立するのを防ぎ、プロセス制御と監視を明確にし、ビジネスロジックフローの完全性を保証します。

2. 依存関係の種類の選択

ノード がアップストリーム ノード の直接出力に依存している場合 (シナリオ1)、同じ周期からの出力に依存するのか、異なる周期からの出力に依存するのかを判断する必要があります。

重要な判断

ダウンストリームの ノード が実際にどの周期のデータを読み取っているかを確認します。ほとんどの場合、ノードスケジューリングパラメーター を使用して、テーブルの特定のパーティションに動的にデータを書き込みます。スケジューリングパラメーター の置換がどのように機能するかを理解するには、「サポートされているスケジューリングパラメーターの形式」をご参照ください。同じ ワークスペース 内の ノード に依存する必要がある場合は、その スケジューリングパラメーター の設定を確認できます。

確認方法

  • 同じ ワークスペース 内のノードの場合:アップストリームノードのコード内の スケジューリングパラメーター を確認し、書き込まれたパーティションがパラメーター置換後に「本日」または「昨日」に対応するかどうかを確認します。

    • 開発環境 では、アップストリームノードの スケジューリングパラメーター 設定とコードを確認します。本番環境 では、インスタンス の詳細でパラメーター置換結果を確認します。

  • 異なる ワークスペース 内のノードの場合:データマップ を使用して、アップストリームテーブルのパーティション情報と変更履歴を表示します。

    • 毎日書き込まれる実際のパーティション値を確認します。

種類の選択

  • ダウンストリームコードが当日/現周期のアップストリームパーティションを取得する場合:同周期。

  • ダウンストリームコードが前日/前周期のアップストリームパーティションを取得する場合:クロスサイクル。

  • 時間/分単位のタスクが並行処理なしで直列に実行される必要がある場合:クロスサイクル (ノード 自体への自己依存)。

重要

データリネージ 検証が不正確な場合の結果:

  1. 依存関係欠落のリスク:データリネージ 関係が存在するにもかかわらず、スケジューリング依存関係 が設定されていない場合、ダウンストリームタスクはアップストリームの インスタンス が成功する前に開始される可能性があり、データの欠落や不完全さにつながります。

  2. パラメーター不一致のリスク:依存関係が設定されているが、パーティションパラメーターが不一致の場合 (例えば、アップストリームの ノード が本日のパーティションを生成するが、ダウンストリームの ノード が昨日のパーティションを読み取る場合)、これはデータロジックエラーや品質問題につながる可能性があります。

3. 依存関係の設定

ステップ1と2で特定した依存オブジェクトと種類に基づいて、依存関係を設定するための適切な方法を選択します。

DataWorks では、スケジューリング頻度が異なるタスク間に依存関係を作成できます。同周期またはクロスサイクルの依存関係を スケジューリングパラメーター と組み合わせることで、さまざまな高度なスケジューリングパターンを実装できます。詳細については、以下をご参照ください:

4. 依存関係の検証

設定後、[デプロイ] する前に、依存関係を検証する必要があります:

検証方法

説明

設定中:スケジューリング依存関係のプレビュー

設定されたスケジューリング依存関係をプレビューして、期待通りであることを確認します。

  • 現時点では、現在の ノード の直接のアップストリームおよびダウンストリームの依存関係のみを表示できます。

  • 依存関係が正しく表示されるように、アップストリームの ノード が保存されていることを確認してください。

  • 依存関係プレビューグラフでは、実線同周期依存 を示し、破線クロスサイクル依存 を示します。

コミット時:コード解析結果の比較

ノード[コミット] する際に、依存関係の変更が意図したものであるかを確認し、本番環境 への影響を評価します。

自動解析が有効な場合、[コミット] 中にノードのスケジューリング設定への変更も確認する必要があります。これにより、依存関係の変更が本番タスクに悪影響を及ぼさないことを保証できます。

デプロイ後:自動トリガーノードの表示

ノード[デプロイ] された後、オペレーションセンター に移動して、本番タスクのスケジューリング依存関係が正しいことを確認します。

  • 本番タスクの依存関係の確認

    標準モードの ワークスペース では、ノード の依存関係は 開発環境本番環境 で異なる場合があります。本番ノードの依存関係は DataStudio で設定する必要があり、[デプロイ] 後にのみ有効になります。

    ノード[デプロイ] された後、オペレーションセンター[自動トリガーノード] ページに移動し、アップストリームおよびダウンストリームのノードを展開して スケジューリング依存関係 の詳細を表示できます。

    重要

    [自動トリガーノード] ページには、本番環境 のノードの最新ステータスが表示されます。ただし、新しい依存関係が インスタンス に追加されるか削除されるかは、選択されたインスタンス生成モード に依存します。

  • 本番データのステータスの確認

    スケジューリング依存関係が正しいことを確認した後、アップストリームおよびダウンストリームのノードによって読み書きされるデータパーティション (つまり、スケジューリングパラメーター が正しく設定されているか) も検証する必要があります。これにより、ダウンストリームの ノード が不正なデータを読み取り、データ品質の問題を引き起こすのを防ぎます。

    説明

    [デプロイ] ワークフローにレビュープロセスが含まれている場合は、タスクがデプロイされた後、オペレーションセンター の [自動トリガーノード] ページに移動して、その依存関係とプロパティを確認することを推奨します。タスクが期待通りに動作しない場合は、その [デプロイ] プロセスがブロックされていないか確認してください。詳細については、「タスクのデプロイ」をご参照ください。

依存関係削除の影響

タスクの運用やイテレーション中に、既存のスケジューリング依存関係を削除または調整する必要がある場合があります。

依存関係を削除する前に、孤立ノードの作成やデータインシデントの発生を避けるため、ダウンストリームタスクのスケジューリング動作への影響を評価する必要があります。

ダウンストリームの依存関係シナリオ

削除の影響

リスクレベル

ダウンストリームタスクが現在の ノード にのみ依存している

ダウンストリームタスクは 孤立ノード となり、アップストリームのトリガーを失い、自動的に実行されなくなります。

ダウンストリームタスクが複数の親ノードに依存している

ダウンストリームタスクは、必要なすべてのアップストリームデータが準備される前に開始される可能性があり、データの欠落や計算エラーにつながります。

ダウンストリームタスクがクロスサイクルの インスタンス に依存している

クロスサイクル依存 が削除されると、ダウンストリームタスクは誤った業務日のデータを読み取る可能性があり、データロジックエラーを引き起こします。

ユースケース

  • 階層化されたオフラインデータウェアハウスODS → DWD → DWS → ADS パイプライン全体にわたって依存関係を設定し、各層でデータが正しい順序で生成されることを保証します。

  • 標準的なETLパイプライン同周期依存 を設定して、ダウンストリームタスクがそのアップストリーム インスタンス の成功を待つようにし、シーケンシャルで一貫性のあるデータ処理を保証します。

  • 翌日 (T+1) レポートクロスサイクル依存 (オフセット -1) を設定して、本日のタスクが昨日の完全な業務データに依存するようにし、正確な翌日分析と出力を可能にします。

  • 複数周期のハイブリッド集計クロスサイクル依存 を設定して、日次タスクが時間単位タスクのすべてのインスタンスに依存するようにし、集計前に基盤となるデータが完全に準備されていることを保証します。

  • 外部データ準備完了トリガー:カスタム依存関係またはチェッカー ノード を設定して、外部ファイルが到着したか、API が準備できたかを確認してからワークフローをトリガーし、クロスシステムのスケジューリングを可能にします。

  • 複雑なワークフロー制御ゼロロードノード を使用して複数の依存関係ブランチを集約し、制御マイルストーンとして機能させることで、パイプライン構造を簡素化し、監視の可視性を向上させます。

よくある質問

以下のセクションでは、一般的なシナリオについて説明します。スケジューリング依存関係に関するその他のよくある質問については、「依存関係に関するFAQ」をご参照ください。

  • ノードの一意性

    • ノード は異なる設定を持つことができますが、論理的には一意です:単一の ノード は、開発環境本番環境 で異なる スケジューリング依存関係 の設定を持つことができます。その形式は異なる場合がありますが、依然として単一の一意な ノード です。

    • ノードを廃止する前に、両方の環境でダウンストリームの依存関係を削除する必要があります:ノード は一意であるため、ダウンストリームタスクが正しく実行されるようにするには、まずダウンストリームノードの設定から依存関係を削除し、新しいアップストリーム ノード に依存するように再設定してから、変更を [コミット] して [デプロイ] する必要があります。元のアップストリームタスクを廃止するのは、開発環境本番環境 の両方でその依存関係が削除されたことを確認した後です。

  • インスタンス生成モード

    • ノード を作成する際は、その インスタンス生成モード がアップストリームおよびダウンストリームのノードと同じであることを確認してください。インスタンス生成モード が異なる場合、例えばアップストリームの ノード が当日に インスタンス を生成するが、ダウンストリームの ノード が翌日に生成する場合、ダウンストリームの インスタンス孤立ノード になる可能性があります。

    • 既存の ノード のスケジューリング周期を変更し、[デプロイ] 直後にインスタンスを生成することを選択した場合、以前に生成されたインスタンスは自動的に削除されません。これにより、[デプロイ] 当日のインスタンスの依存関係がずれる可能性があります。詳細については、「リアルタイムインスタンス変換が同日インスタンスの依存関係に与える影響」をご参照ください。

  • API を使用してジョブを更新する際に、200 を超えるアップストリーム依存関係があるというエラーが報告される。

    • エラー詳細: 'One file could not have more than 200 inputs'。

    • DataStudio でアップストリームとダウンストリームのノードの間に ゼロロードノード を追加して、直接のアップストリーム依存関係の数を減らすことができます。ゼロロードノード の設定方法の詳細については、「ゼロロードノード」をご参照ください。