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

DataWorks:スケジューリング依存関係を設定するためのベストプラクティス

最終更新日:Feb 15, 2025

スケジューリング依存関係を設定する場合、先祖ノードと子孫ノードは出力名によって関連付けられます。このトピックでは、ノードがスケジューリングにおいて依存する入力と出力を管理する方法について説明します。

ノード入力の設定

ノード入力は、次のいずれかの方法で設定できます。

  • 自動解析機能を使用して、コードからノードの依存関係を解析します。

  • 親ノードの出力名を入力して、ノードの依存関係を手動で設定します。

image

説明

親ノードを指定する場合、親ノードの出力名を入力します。親ノードの名前が親ノードの出力名と異なる場合は、出力名を入力する必要があります。

自動解析機能を使用してノード入力を設定する場合、自動的に解析された依存関係が無効になる可能性があります。解析された依存関係が有効かどうかを確認するには、解析された親ノードを見つけて、[親ノード ID] 列に値が表示されているかどうかを確認します。

依存関係は、2 つのノード間の論理的な関係です。実際に存在するノードに対してのみ、有効な依存関係を設定できます。

無効な依存関係

依存関係は、次の 2 つのケースで無効になります。

  • 親ノードが存在しません。image

  • 親ノードの出力名が存在しません。The output name of the parent node does not exist

通常、依存関係が無効になるのは、解析された親ノードの出力名が存在しないためです。先祖テーブルに出力がないか、先祖テーブルの出力が正しく設定されていないと仮定します。依存関係は無効です。

この問題を解決するには、次の手順を実行します。

  • テーブルに出力があるかどうかを確認します。

  • テーブルに出力がある場合は、出力に依存するノードの [親ノード] セクションに出力を追加します。

説明

注: 親ノードを指定する場合、親ノードの出力名を入力します。親ノードの名前が親ノードの出力名と異なる場合は、出力名を入力する必要があります。

ノード A の出力名が A1 で、ノード B がノード A に依存していると仮定します。この場合、検索ボックスに A1 を入力し、検索ボックスの横にあるプラス記号 (+) をクリックします。

親ノードの設定

テーブルに親ノードがない場合は、[ルートノードを使用] をクリックできます。Configure a parent node

ノード出力の設定

ノードの名前、出力名、および出力テーブル名に同じ名前を使用することで、ノード出力を効率的に設定できます。

  • ノードが操作を実行する特定のテーブルを知ることができます。

  • ノードの実行に失敗した場合の影響を知ることができます。

  • 自動解析機能を使用してノード出力を設定するとします。ノードの名前、出力名、および出力テーブル名が同じであれば、自動解析の精度を向上させることができます。

自動解析

[自動解析]: ノードの依存関係はコードから自動的に解析されます。

自動解析の原則: コードからはテーブル名のみを取得できます。自動解析機能は、テーブル名に基づいて出力ノードを解析するために使用されます。

ノードに次のコードが記述されていると仮定します。

INSERT OVERWRITE TABLE pm_table_a SELECT * FROM project_b_name.pm_table_b ;

次の図は、解析された依存関係を示しています。image

  • pm_table_a: 自動解析後の現在のノードの出力。

  • project_b_name.pmtable_b: 自動解析後の親ノードの出力名。

DataWorks は現在のノードを自動的に解析します。現在のノードの入力は、project_b_name ワークスペースの pm_table_b テーブルです。現在のノードの出力は pm_table_a テーブルです。親ノードの出力名は project_b_name.pm_table_b です。現在のノードの出力名は project_name.pm_table_a です。この例では、ワークスペース test_pm_01 が使用されています。

  • コードからノードの依存関係を解析したくない場合は、[自動解析] パラメーターを [いいえ] に設定します。

  • コードには、名前が [t_] で始まる一時テーブルが多数含まれている場合があります。一時テーブルは、スケジューリング依存関係の解析には関与しません。[ワークスペース設定] タブで一時テーブル名のプレフィックスを指定できます。

  • ノードのコード内のテーブルが出力テーブルであり、別のテーブルが依存する参照テーブルでもある場合、そのテーブルは出力テーブルとしてのみ解析されます。

  • ノードのコード内のテーブルが出力テーブルまたは参照テーブルとして複数回使用されている場合、1 つのスケジューリング依存関係のみが解析されます。

説明

デフォルトでは、名前が [t_] で始まるテーブルは一時テーブルとして認識され、一時テーブルとして解析されます。名前が [t_] で始まるテーブルが一時テーブルでない場合は、ワークスペース管理者に連絡して、[ワークスペース設定] タブで関連設定を変更してください。

image

テーブルの入力と出力の削除

静的テーブルは、データ分析によく使用されます。ローカルファイルから静的テーブルにデータをインポートする場合、これらのテーブルには出力はありません。

依存関係を設定する場合、静的テーブルがノードの入力として解析されないようにする必要があります。静的テーブルの名前が [t_] で始まらない場合、一時テーブルとしては認識されません。この場合、テーブル入力を削除します。

コード内のテーブル名を右クリックし、[入力を削除] を選択します。

image

説明

DataWorks サービスを V1.0 から V2.0 にアップグレードする場合、移行されたノードのデフォルトの出力名は ワークスペース名.ノード名 の形式になります。