DataWorks では、Workflowはビジネスの観点からデータ開発タスクを整理するのに役立ちます。定期的なスケジューリングが必要なタスクには自動トリガーワークフローを、オンデマンドのタスクにはManually Triggered Workflowsを作成できます。このトピックでは、ワークフローの作成、設計、コミット、表示、およびノードの一括変更または削除方法について説明します。
背景情報
ワークスペースは、複数のタイプのコンピュートエンジンをサポートし、複数のワークフローを含むことができます。ワークフローは、データ統合、MaxCompute、Hologres、E-MapReduce (EMR) などのさまざまなエンジン用のノードを含む、さまざまなオブジェクトのコレクションです。例としては、MaxCompute SQL ノードや MaxCompute テーブルノードなどがあります。
各オブジェクトタイプには独自のフォルダがあり、その中にサブフォルダを作成できます。管理性を確保するため、サブフォルダの深さは 4 階層以下にすることを推奨します。この構造を超える場合は、ワークフローを 2 つ以上の小さなワークフローに分割することを検討してください。その後、これらの関連するワークフローをソリューションにグループ化して効率を向上させることができます。
自動トリガーワークフローと手動トリガーワークフロー
DataWorks は、自動トリガーワークフローとManually Triggered Workflowsの 2 種類のワークフローを提供します。これらのタイプは、定期的およびオンデマンドの実行シナリオに対応します。DataStudio で両方のワークフロータイプのタスクを開発し、それらをオペレーションセンターにコミットして本番環境で実行できます。次の表は、2 つのタイプを比較したものです。
比較項目 | 自動トリガーワークフロー | 手動トリガーワークフロー |
利用シーン | 定期的なスケジュールで自動的に実行されるタスク向けです。 | オンデマンドで手動でトリガーされるタスク向けです。 |
実行方法 | スケジュールに基づいて自動的に実行されます。 | 手動でトリガーされます。 |
タスク開発の主な設定ポイント | スケジュール時刻やノードの依存関係など、定期的なスケジューリングパラメーターを設定する必要があります。 | タスクは手動でトリガーされるため、親ノードの依存関係、ノード出力、スケジュール実行時間などのスケジューリング関連のパラメーターを設定する必要はありません。 説明 これらのスケジューリングパラメーターを除き、設定は自動トリガーワークフローと同じです。このトピックのタスク開発例は、自動トリガーワークフローに基づいています。共有パラメーターの設定手順は、両方のワークフロータイプで同じです。 |
作成方法 | 左側のナビゲーションウィンドウで、[DataStudio] をクリックします。DataStudio ページで、右上の [+ 新規] をクリックし、ドロップダウンリストから [新規ワークフロー] を選択します。 | 左側のナビゲーションウィンドウで、[手動トリガーワークフロー] を選択します。右上の [+ 新規] をクリックし、ドロップダウンリストから [新規ワークフロー] を選択します。 |
左側のナビゲーションウィンドウに対応するエントリポイントが見つからない場合は、「DataStudio でのモジュール表示のカスタマイズ」をご参照いただき、DataStudio に表示されるモジュールを設定してください。
自動トリガーワークフローの作成
DataStudio では、すべての開発はワークフロー内で行われます。したがって、ノードを作成する前にワークフローを作成する必要があります。ワークフローを作成する前に、「ワークフローの設計」セクションを参照して、ビジネス要件を満たすワークフローを計画できます。以下の手順では、自動トリガーワークフローの作成方法について説明します。
-
DataStudio ページに移動します。
DataWorks コンソールにログインします。対象のリージョンで、左側のナビゲーションウィンドウで をクリックします。ドロップダウンリストからワークスペースを選択し、入力 データ開発 をクリックします。
アイコンにカーソルを合わせ、Create Workflow をクリックします。Create Workflow ダイアログボックスで、Workflow Name と Description を入力します。
Create をクリックします。
ワークフローが作成された後:
ワークフロー内の対応するエンジンの下でタスクの開発を開始できます。一般的な開発ガイドラインについては、「ビジネスロジックの開発」をご参照ください。
タスクの開発が完了したら、ワークフローをコミットしてタスクを本番環境にデプロイできます。詳細については、「ワークフローのコミット」をご参照ください。
また、さまざまなページからワークフローを管理することもできます。詳細については、「すべてのワークフローの表示」、「ワークフロー内のノードの削除」、「ワークフローの迅速なコピー」、および「他の DataWorks ワークスペースまたはオープンソースエンジンへの複数ワークフローの迅速なインポートとエクスポート」をご参照ください。
ワークフローの設計
すべてのコード開発はワークフロー内で行います。ノードは 2 つの方法で開発できます。リストビューのディレクトリツリーからノードを作成するか、ワークフローをダブルクリックしてそのキャンバスを開き、ドラッグアンドドロップの DAG ベースのインターフェイスを使用してマルチエンジンタスクを視覚的に編成します。DataWorks はデータ開発に階層構造を使用します。ソリューションは関連するワークフローのセットをグループ化し、ワークフローをダブルクリックしてそのワークフローキャンバスを開くことができます。ワークフローのディレクトリツリーには、データ統合、DataStudio、テーブル、リソース、関数、アルゴリズム、データサービス、コントロールなどのカテゴリが含まれており、コードを視覚的に整理できます。ワークフローキャンバスでは、開発コンポーネント (ノード) をドラッグしてビジネスロジックを視覚化し、開発できます。ワークフローを設計する際:
ワークフロー内に多数のノードがあると、パフォーマンスが低下する可能性があります。単一のワークフローには 100 ノード以内に制限することを推奨します。
説明ワークフローには最大 1,000 ノードを作成できます。
DAG モードでは、依存関係の線をドラッグしてノード間のスケジューリングの依存関係を設定できます。また、ノードのスケジューリング設定パネルを開いて、依存関係を手動で編集することもできます。詳細については、「スケジューリングの依存関係の設定」をご参照ください。
リストモードで作成されたノードについては、コードリネージに基づいてスケジューリングの依存関係を設定できます。詳細については、「スケジューリングの依存関係の設定」をご参照ください。
ビジネスロジックの開発
DataWorks はエンジンの機能をカプセル化しているため、複雑なエンジンのコマンドラインを操作することなく、エンジンノードを使用してデータを開発できます。また、プラットフォームの汎用ノードを使用して複雑なロジックを処理することもできます。
ワークフロー内で、同期ノードとコンピュートエンジンノードを使用してビジネスロジックを開発できます。
データ統合フォルダでは、バッチ同期およびリアルタイム同期コンポーネントノードを使用して、あるデータベースから別のデータベースにデータを同期できます。
ワークフロー内の対応するエンジングループの下にあるデータ開発ノードを使用して、データをクレンジングできます。例としては、MaxCompute エンジン用の ODPS SQL ノードがあります。コード開発中にリソースや関数を使用する必要がある場合、DataWorks ではビジュアルインターフェイスを通じてリソースノードと関数ノードを作成できます。
DataWorks がカプセル化するエンジンの機能と、プロダクトがサポートする開発機能の詳細については、「DataStudio (レガシー)」をご参照ください。
ノードのスケジューリングの依存関係とプロパティ設定については、「スケジューリング設定」をご参照ください。
ワークフローのコミット
標準モードのワークスペースでは、DataStudio インターフェイスはノードタスクの開発およびテスト環境として機能します。コードを本番環境に公開するには、ワークフロー内のノードをコミットし、デプロイメントページから一括で公開する必要があります。
ワークフローを設計およびテストした後、ツールバーの
アイコンをクリックします。Submission ダイアログボックスで、コミットしたいノードを選択し、Remarks を入力し、ビジネス要件に基づいて Ignore I/O Inconsistency Alerts するかどうかを選択します。入力と出力の内容がコードリネージ分析と一致せず、Ignore I/O Inconsistency Alerts を選択しない場合、アラートがトリガーされます。詳細については、「ノードをコミットする際に I/O とコードリネージの不一致を示すアラートが報告される」をご参照ください。
Submission をクリックします。
説明ノードがすでにコミットされており、その内容が変更されていない場合、再選択することはできません。この場合、Remarks を入力し、Submission をクリックします。ノードのプロパティへの変更は引き続きコミットされます。
タスクを公開します。詳細については、「標準モードのワークスペースのタスク公開プロセス」をご参照ください。
操作履歴の表示
DataStudio の 操作履歴 ページには、ご利用のアカウントの過去 3 日間のすべてのタスク実行レコードが表示されます。
DataStudio でタスクを実行すると、DataStudio はそれを対応するエンジンサービスに送信して実行します。誤ってタスクタブを閉じても、タスクは実行を続けます。操作履歴ページでは、実行ログを表示したり、実行中のタスクを停止したりできます。
すべてのワークフローの表示
Data Studio ページで、Workflow を右クリックし、All Workflows を選択して、ワークスペース内のすべてのワークフローを表示します。
カードをクリックすると、対応するワークフローキャンバスに移動します。このページには、新規ワークフローのエントリポイントと既存のワークフローのカードを含む、ワークフローカードのリストが表示されます。
ソリューションによるワークフローの管理
ワークフローをソリューションにグループ化できます。ソリューションは次の機能をサポートします:
ソリューションには複数のワークフローを含めることができます。
同じワークフローを異なるソリューションで再利用できます。
カスタムグループ化されたソリューションは、没入型の開発体験を提供します。
ソリューションを使用してワークフローを管理するには、次の操作を実行できます:
DataStudio ページの左側のナビゲーションウィンドウの下部にある
アイコンをクリックします。 ページで、File Management モジュールの Show Solution を選択します。ソリューション編集パネルを使用して、ワークフローをソリューションに一括で追加します。doctest などの対象のソリューションノードを右クリックし、[編集] をクリックします。
ワークフロー内のノードの削除
ノードの一括削除
タスクが使用するリソースグループの変更など、タスクのスケジューリングプロパティを変更する必要がある場合や、タスクを一括でレビューに提出する必要がある場合は、一括操作 機能を使用できます。この機能を使用すると、ノードタイプ、ワークフロー、スケジューリング用のリソースグループなどの基準に基づいて対象のノードをフィルターして処理できます。
一括操作は、開発環境のタスクプロパティのみを変更します。変更を本番環境に適用するには、一括操作が完了した後、デプロイメントページに移動して公開する必要があります。
Data Studio ページで、Workflow の横にある
アイコンをクリックして Tasks ページを開きます。これは タスクリスト アイコンで、検索ボックスの上にあるツールバーにあります。対象のノードを変更または削除します。
ノード名/ID、Node Type、Workflow などの基準に基づいてノードをフィルターできます。
処理したいノードの一部またはすべてを選択します。
対象のノードを変更または削除します。
対象のノードの変更:対象ノードの所有者とスケジューリング用のリソースグループのみを一括で変更できます。 Change Owner または Change Resource Group for Scheduling をクリックして変更を加えます。
変更ダイアログボックスで Forcefully Modify パラメーターを Yes に設定すると、選択したすべてのノードを変更できます。このパラメーターを No に設定した場合、ロック済みのノードのみを変更できます。
対象のノードの削除: をクリックして、選択したノードを削除します。
Delete Node ダイアログボックスで、Force deletion パラメーターを Yes に設定すると、選択したすべてのノードを削除できます。このパラメーターを No に設定した場合、ロック済みのノードのみを削除できます。
ノードグループを使用したノードの削除
ノードグループを使用して、ノードグループの作成、参照、分割、削除ができます。詳細については、「ノードグループの使用」をご参照ください。
ワークフローの迅速なコピー
ノードグループを使用して、ワークフローを迅速にノードグループにバンドルし、新しいワークフローでこのノードグループを参照できます。詳細については、「ノードグループの使用」をご参照ください。
ワークフローの移行
ある DataWorks ワークスペースから複数のワークフローを迅速にエクスポートし、別のワークスペースにインポートするには、DataWorks Migration Assistant を使用します。詳細については、「Migration Assistant」をご参照ください。