DataWorks V2.0 では、スケジューリング依存関係を設定するときに、タスク間の依存関係を、関連項目として現在のノードの出力名に従って設定する必要があります。 本ページでは、タスクスケジューリングの依存関係の入出力を設定する方法について詳しく説明します。
タスクのノード入力を設定する方法
無効な上流の依存関係
- 親ノードが存在しない。
- 親ノード出力が存在しない。
- テーブルに出力タスクがあることを確認します。
- このテーブルの出力タスクの出力名を確認し、ノードの出力名を依存する上流ノードに手動で入力します。
たとえば、上流ノード A の出力名は A1 で、下流ノード B はノード A に依存するとします。この時点で、上流ノードの入力ボックスに「A1」と入力し、右側にあるプラス記号をクリックして追加します。
上流の依存関係の設定方法
タスクのノード出力の設定方法
ノード出力を効率的に設定する最も簡単な方法は、ノード名、ノード出力名、およびノード出力テーブル名が同じ名前を 1 つずつ共有 (スリーインワン) することです。 利点は以下のとおりです。
- このタスクがどのテーブルで動作しているかをすぐに知ることができます。
- 失敗した場合にこのタスクがどの程度影響を与えるかを素早く知ることができます。
- 自動解析を使用してタスクの依存関係を設定すると、ノード出力がスリーインワンのルールと一致している限り、自動解析の精度パフォーマンスが大幅に向上します。
自動解析
自動解析: コードによってスケジューリング依存関係を自動的に解析します。 実装原理: コード内で取得できるのはテーブル名のみです。自動解析機能ではテーブル名に従って対応する出力タスクを解析できます。
INSERT OVERWRITE TABLE pm_table_a SELECT * FROM project_b_name.pm_table_b;
pm_table_b
を出力し、ノード pm_table_a
の最終出力を出力するために project_b_name
に依存する必要があるノードを自動的に解析できます。 したがって、解決策は、親ノードの出力名が project_b_name.pm_table_b
、ノードの出力名がproject_name.pm_table_a
(プロジェクト名はMaxCompute_DOC) です。
- コードから解析された依存関係を使用しない場合は、[No] を選択します。
- 一時テーブルであるテーブルがコードに多数ある場合: たとえば、t_ で始まるテーブルは一時テーブルです。 その場合、テーブルはスケジュール依存関係として解析されません。 一時テーブルの定義では、テーブルがどのフォームで始まるかをプロジェクト設定により一時テーブルとして定義できます。
- コード内のテーブルが出力テーブルと参照先テーブル (依存テーブル) の両方である場合、それは出力テーブルとしてのみ解析されます。
- コード内のテーブルが複数回参照または出力された場合、スケジューリング依存関係は 1 つだけ解析されます。
テーブルの入出力の削除方法
データ開発中に、しばしば静的テーブルが使われます (データはローカルファイルからテーブルにアップロードされます)、この静的データは実際にはタスクを出力しません。 現時点では、依存関係を設定するとき、静的テーブルの入力を削除する必要があります。静的テーブルが t_ のフォームを満たさない場合、一時テーブルとして処理されません。その場合は静的テーブルの入力を削除する必要があります。
ProjectName.NodeName
に設定されます。注意事項
タスク依存関係の設定が完了すると、送信されたウィンドウに、入出力がコード分析と一致しない場合、送信を続行するかどうかを確認するオプションが表示されます。