ワークフローの作成、ノードの作成、および依存関係の設定方法について説明します。その後、データ開発機能を使用して、ワークスペース内のデータを分析および計算できます。
前提条件
開始する前に、ワークスペースに業務データテーブル bank_data とシンクテーブル result_table を作成します。業務データテーブルにはデータが含まれている必要があります。詳細については、「テーブルの作成とデータのアップロード」をご参照ください。
背景情報
DataWorks では、ワークフロー内のノード間の依存関係を視覚的に設定できます。ワークフローを使用すると、データを処理し、その依存関係を定義できます。1つのワークスペースに複数のワークフローを作成できます。詳細については、「ワークフローの作成」をご参照ください。
ワークフローの作成
-
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
-
Data Studio ページで、
アイコンにポインターを合わせ、Create Workflow をクリックします。 -
Create Workflow ダイアログボックスで、Business Name と Description を入力します。
-
Create をクリックします。
ノードの作成と依存関係の設定
ワークフローにゼロロードノード (start) と ODPS SQL ノード (insert_data) を作成します。次に、insert_data ノードが start ノードに依存するように依存関係を設定します。
-
ゼロロードノードは、データを処理しないコントロールノードです。その代わりに、ダウンストリームノードのみを管理します。
-
運用保守タスク中にゼロロードノードを手動で失敗に設定すると、未実行のダウンストリームノードはトリガーされません。この機能は、アップストリームソースからの誤ったデータの伝播を防ぐのに役立ちます。
-
ゼロロードノードの親ノードは、通常、ワークスペースルートノードです。ワークスペースルートノード名は
WorkspaceName_rootという形式に従います。 -
DataWorks は、各ノードに対して WorkspaceName.NodeName という名前の出力を自動的に追加します。同じワークスペース内の2つのノードが同じ名前を持つ場合、いずれかのノードの出力の名前を変更する必要があります。
ワークフローのルートノードとして機能するゼロロードノードを作成することを推奨します。このノードは、ワークフロー全体の実行を制御できます。次の手順に従って、ワークフローを設計します。
-
ワークフロー名をダブルクリックして開発パネルを開きます。General[>]Zero Load Node をクリックします。
右側の開発パネルにZero Load Nodeをドラッグすることもできます。
-
Create Node ダイアログボックスで、Path を選択し、Node Name に start を入力し、OK をクリックします。
-
前述の手順を繰り返して、insert_data という名前の [ODPS SQL] ノードを作成します。
-
start ノードから insert_data ノードに線をドラッグして、start を insert_data の親ノードとして設定します。
ゼロロードノードのアップストリーム依存関係の設定
ゼロロードノードは、多くの場合、ワークフロー全体を制御し、他のすべてのノードの最終的な親ノードとして機能します。
通常、ゼロロードノードの Parent Nodes には、Add Root Node を設定します。
-
ゼロロードノードの名前をダブルクリックして、エディターを開きます。
-
右側のペインで、Scheduling をクリックします。
-
Scheduling Dependenciesセクションで、Add Root Nodeをクリックして、ワークスペースのルートノードをゼロロードノードの親ノードとして設定します。
-
ノードを保存してコミットします。
重要ノードをコミットするには、Rerun attribute と Parent Nodes のプロパティを設定する必要があります。
-
ツールバーで、
アイコンをクリックしてノードを保存します。 -
ツールバーで、
アイコンをクリックします。 -
Submit ダイアログボックスで、Change Description を入力します。
-
OK をクリックします。
-
ODPS SQL ノードの編集と実行
このセクションでは、insert_data ODPS SQL ノードで SQL コードを使用して、住宅ローンを持つ独身者の数を教育レベル別にグループ化してクエリし、ダウンストリームノードによるさらなる分析またはプレゼンテーションのために結果を保存する方法について説明します。
-
ODPS SQL ノードのエディターを開き、次のコードを入力します。
構文の詳細については、「SQLの概要」をご参照ください。
INSERT OVERWRITE TABLE result_table -- result_table テーブルにデータを挿入します。 SELECT education , COUNT(marital) AS num FROM bank_data WHERE housing = 'yes' AND marital = 'single' GROUP BY education; -
コード内の bank_data を右クリックし、Delete Input を選択します。
「テーブルの作成とデータのアップロード」で作成された bank_data テーブルは、スケジュールされたノードによって生成されたものではありません。ノードがこのようなテーブルから読み取る場合、コードエディターでテーブル名を右クリックして、自動的に解析された依存関係を削除できます。または、コードの先頭に特定のコメントを追加して、依存関係が作成されないようにすることもできます。
説明DataWorks のスケジューリング依存関係は、ダウンストリームノードが、定期的に更新されるアップストリームノードのデータに確実にアクセスできるようにします。このプラットフォームでは、DataWorks 内のスケジュールされたノードによって更新されないテーブルを監視できません。ノードがスケジュールされたタスクによって生成されないテーブルからデータを選択する場合、DataWorks が自動的に作成する依存関係を手動で削除する必要があります。
-
ツールバーの
アイコンをクリックして、コードを保存します。 -
アイコンをクリックして、コードを実行します。実行が完了したら、ページの下部で実行ログと結果を表示できます。
ワークフローのコミット
-
insert_data ODPS SQL ノードを実行してデバッグした後、ワークフローキャンバスに戻ります。
-
ツールバーの
アイコンをクリックします。 -
Submit ダイアログボックスで、コミットするノードを選択し、Change Description を入力し、[I/O 不整合アラートを無視] を選択します。
-
OK をクリックします。
ワークフローをコミットすると、Workflow の下のノードリストで各ノードのコミットステータスを確認できます。ノード名の左側にあるアイコン
は、ノードに未コミットの変更があることを示します。このようなアイコン
がない場合、ノードに未コミットの変更はありません。
次のステップ
ワークフローを作成してコミットしたので、次のチュートリアルに進み、さまざまなタイプのデータソースにデータを書き戻す同期タスクの作成方法について学習してください。詳細については、「同期タスクの作成」をご参照ください。