ワークフローを定期的に実行する必要はないが、本番環境に公開する必要がある場合は、手動トリガーワークフローを作成できます。このトピックでは、手動トリガーワークフローを作成して本番環境に公開する方法について説明します。
使用上の注意
手動トリガーワークフローは手動でトリガーする必要があります。自動スケジューリングはサポートされていません。
手動トリガーワークフロー内のノード間の線は実行順序のみを示します。スケジューリングの依存関係は設定されません。
手動トリガーワークフローは、いくつかの点でスケジュールされたワークフローとは異なります。詳細については、「機能の違い」をご参照ください。
手動トリガーワークフローの設計
ワークフローの作成
DataWorks コンソールの [ワークスペース] ページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[アクション] 列で を選択します。
左側のナビゲーションウィンドウで、
をクリックします。手動トリガーワークフローの右側にある をクリックします。ワークフローの名前を入力し、[確認] をクリックしてワークフロー編集ページを開きます。
ノードのオーケストレーション
ワークフロー編集ページの上部で、[内部ノードの作成] をクリックします。内部ノードの [タイプ] を選択し、[名前] を入力して [確認] をクリックし、ノードをキャンバスに追加します。
必要に応じて手動トリガーワークフローを計画します。
ワークフロー内のノード数は、ランタイムパフォーマンスに影響を与える可能性があります。最適なパフォーマンスを得るには、単一のワークフローに含めるノード数を 100 以下にする必要があります。ワークフローで許可されるノードの最大数は 200 です。
ワークフローパラメーターの構成
ワークフロー内のすべてのノード間でパラメーターを共有するには、キャンバスの右側にある [スケジューリング構成] > [スケジューリングパラメーター] ペインに移動します。[パラメーターの追加] をクリックしてパラメーターを設定します。
${[パラメーター名]}形式を使用して、ノードコード内のパラメーターを参照します。説明内部ノードにワークフローパラメーターと同じ名前のスケジューリングパラメーターがある場合、ワークフローパラメーターが優先されます。これは、スケジューリングの優先度ルールとは異なります。
優先度と同時実行性 (高度な構成)
複数のワークフローまたはタスクが同時にトリガーされ、システムリソースのボトルネックが発生した場合、[優先度] および [重み付けポリシー] 設定を使用してリソーススケジューリングを管理できます。これにより、最も重要なタスクが最初に実行されるようになります。
コア業務の継続性の確保: コアビジネスのワークフローに高い優先度を設定できます。これにより、非コアビジネスのワークフローよりも常に先に実行されるようになります。
クリティカルフローの実行時間の短縮: 単一のワークフローインスタンス内で、[優先度重み付けポリシー] を使用してノードの実行順序に影響を与えることができます。たとえば、下方重み付けポリシーを使用すると、より多くのアップストリーム依存関係を持つクリティカルパス上のノードに、より高い動的な重みが割り当てられます。これにより、これらのノードの実行が優先され、ワークフローの総実行時間が短縮されます。
構成項目
説明
優先度
スケジューリングキューにおけるワークフローインスタンスの絶対的な優先度レベルを定義します。利用可能なレベルは 1、3、5、7、8 です。数値が大きいほど優先度が高くなります。優先度の高いタスクやワークフローは、優先度の低いものよりも常に先にスケジューリングリソースを取得します。
優先度重み付けポリシー
同じ優先度レベル内で各ノード (タスク) の動的な重みを計算する方法を定義します。重みが大きいノードが先に実行されます。
重み付けなし: すべてのノードが固定の基本重みを持ちます。
下方重み付け: ノードの重みは動的に調整されます。ノードが持つアップストリームの依存関係が多いほど、その重みは高くなります。このポリシーは、有向非循環グラフ (DAG) のクリティカルパス上にあるノードが最初に実行されるのに役立ちます。重みは次のように計算されます:
初期の重み + すべてのアップストリームノードの優先度の合計。
最大同時実行インスタンス数
このワークフローが同時に実行できるインスタンスの最大数を制御します。これは、同時実行制御とリソース保護に使用されます。実行中のインスタンス数が上限に達すると、トリガーされた新しいインスタンスは待機状態になります。これを [無制限] またはカスタムの最大値 (最大 100,000) に設定できます。
説明設定された制限がリソースグループの最大容量を超えた場合、実際の同時実行のボトルネックはリソースグループの物理的な制限によって決まります。
DataWorks の優先度システムは、階層的なオーバーライドルールに従います:
ランタイム仕様>ノードレベルの構成>ワークフローレベルの構成。ワークフローレベルの構成 (ベースライン): この構成は、ワークフローの [スケジューリングポリシー] で設定され、すべてのノードのデフォルトとして機能します。
ノードレベル (ローカル) の構成: 単一の内部ノードに適用され、[スケジューリング構成] > [スケジューリングポリシー] で設定されます。特定のノードの [優先度] が高い場合、ワークフローレベルの設定がオーバーライドされます。
ランタイム仕様 (一時的): この構成は、[オペレーションセンター] で [ランタイムで優先度をリセット] スイッチを使用してタスクを手動で実行するときに設定されます。これは最も高い優先度を持ち、現在の実行にのみ適用され、永続的な構成は変更しません。
ビジネスロジックの開発
DataWorks はエンジン機能をカプセル化しており、複雑なエンジンコマンドラインを管理することなく、エンジンノードを使用してデータ処理タスクを開発できます。また、プラットフォームの汎用ノードを使用して複雑なロジックを処理することもできます。
ワークフロー内で、同期ノード、計算ノード、およびその他のノードタイプを使用して、特定のビジネスプロセスを開発できます。
同期ノードを編集して、データソースと宛先を構成できます。これにより、あるデータベースから別のデータベースにデータを同期できます。
MaxCompute SQL ノードなどのデータ開発ノードを使用して、特定のデータクレンジングタスクを実行できます。コード開発中にリソースや関数を使用するために、DataWorks はビジュアルインターフェイスを介したリソースノードと関数ノードの作成もサポートしています。データ開発の詳細については、「ノード開発」をご参照ください。リソースと関数の作成の詳細については、「Resource Management」をご参照ください。
手動トリガーワークフローの公開
標準モードのワークスペースでは、データ開発インターフェイスを使用してタスクノードを開発およびテストすることしかできません。コードを本番環境に公開するには、ワークフローを直接公開できます。この操作により、ワークフロー内のすべてのノードがバッチとして公開されます。
手動トリガーワークフローの上部にある [実行] をクリックして、ワークフロー実行ページに移動し、各ノードが正常に実行されるかどうかをテストします。
ワークフロー実行ページの上部にある [戻る] をクリックします。次に、[公開] をクリックします。
[本番環境への公開を開始] をクリックした後、[増分公開] または [完全公開] を選択します。
増分公開: 選択した内部ノードタスクを公開します。
完全公開: 手動トリガーワークフロー全体とそのすべての内部ノードタスクを公開します。
公開プロセスは、[デプロイメントパッケージのビルド]、[開発チェッカー]、[開発環境への公開]、[本番チェッカー]、および [本番環境への公開] の順のステップで構成されます。
本番環境での手動トリガーワークフローの実行
タスクが公開された後、[O&M に移動] をクリックしてオペレーションセンターで表示できます。
説明または、DataWorks ワークスペース管理ページ に移動します。上部のナビゲーションバーでターゲットリージョンに切り替えます。ワークスペースを見つけます。[操作] 列で、 をクリックします。左側のナビゲーションウィンドウで、[ワンタイムタスク O&M] をクリックします。
ターゲットのワンタイムタスクの [操作] 列で、[実行] をクリックして手動トリガーワークフローを開始します。
その他の操作
手動トリガーワークフローのクローン
クローン機能を使用して、既存のワークフローをクローンすることで、新しいワークフローを迅速に作成できます。クローンされたワークフローには、その内部ノード (コード、[デバッグ構成]、[スケジューリング構成] を含む)、ノード間の依存関係、およびワークフロー自体の [スケジューリング構成] が含まれます。
左側の [手動トリガーワークフロー] リストで、クローンしたいワークフローを右クリックします。
ポップアップメニューで [クローン] を選択すると、クローンダイアログボックスが開きます。
ダイアログボックスで、手動トリガーワークフローの [名前] と [パス] を変更するか、デフォルト値のままにします。[確認] をクリックしてクローンを開始します。
クローンプロセス中に、ダイアログボックスで [現在の進捗]、[期間]、[完了したノード数] などの詳細を表示できます。
ワークフローがクローンされた後、[手動トリガーワークフロー] リストで新しい手動トリガーワークフローを表示できます。
バージョン管理
バージョン管理機能を使用して、手動トリガーワークフローを特定の履歴バージョンに復元できます。この機能は、バージョンの表示と比較機能も提供し、違いを分析して調整するのに役立ちます。
左側の [手動トリガーワークフロー] リストから、ターゲットのワークフローをダブルクリックしてそのキャンバスを開きます。
ワークフローキャンバスの右側で、[バージョン] をクリックします。[バージョン] ページで、[開発レコード] と [公開レコード] を表示および管理できます。
表示 バージョン:
[開発レコード] または [公開レコード] タブで、目的のワークフローバージョンを見つけることができます。
[操作] 列で、[表示] をクリックします。詳細ページで、ワークフローの コード と [スケジューリング構成] を表示できます。
説明[スケジューリング構成] は [コードエディター] または [可視化] モードで表示できます。これらのモードは、[スケジューリング構成] タブの右上隅で切り替えることができます。
比較 バージョン:
[開発レコード] または [公開レコード] タブで、ワークフローの異なるバージョンを比較できます。次の例は、開発レコードを使用してバージョンを比較する方法を示しています。
開発環境または公開環境でのバージョンの比較: [開発レコード] タブで、2 つのバージョンを選択し、上部にある [選択項目を比較] ボタンをクリックします。その後、2 つのワークフローバージョン間のコードとスケジューリング構成を比較できます。
開発、公開、またはビルド環境間の比較:
[開発レコード] タブで、特定のワークフローバージョンを見つけます。
[操作] 列で、[比較] ボタンをクリックします。開いた [比較するコンテンツを選択してください] ウィンドウで、[公開レコード] または [ビルドレコード] からバージョンを選択します。
バージョンに戻す:
[開発レコード] ページからのみ、手動トリガーワークフローを特定の履歴バージョンに復元できます。[開発レコード] タブで、ターゲットバージョンを見つけ、[操作] 列の [復元] ボタンをクリックして、ワークフローをそのバージョンに復元します。
説明ワークフローを復元すると、システムはそれをターゲットバージョンに復元し、新しいバージョンレコードを生成します。