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

DataWorks:データ開発: 開発者

最終更新日:Jan 14, 2025

このトピックでは、開発者が DataStudio で自動的にトリガーされるノードを作成する方法について説明します。 このトピックでは、MaxCompute データソースを使用して DataWorks で MaxCompute ジョブを実行する方法の例を示します。 これにより、DataStudio モジュールの基本的な使用方法をすばやく理解できます。

前提条件

データ開発に必要な環境が準備されています。 詳細については、「データ開発: 開発者」をご参照ください。

説明
  • この例では、ODPS SQL ノードを作成する必要があります。 そのため、ワークスペースに MaxCompute データソースを追加する必要があります。

  • データ開発権限を持つアカウントを準備する必要があります。 アカウントは、Alibaba Cloud アカウント、または [ワークスペース管理者] ロールまたは [開発] ロールが割り当てられた RAM ユーザーです。

背景情報

DataStudio は、MaxCompute、Hologres、E-MapReduce(EMR)、CDH など、さまざまなタイプのコンピューティングエンジンのノードに対して視覚化された開発インターフェースを提供します。 視覚化された開発インターフェースを使用して設定を構成し、インテリジェントなコード開発、データのクレンジングと処理、標準化されたノードの開発とデプロイを実行できます。 これにより、効率的かつ安定したデータ開発が保証されます。 DataStudio の使用方法の詳細については、「DataStudio」をご参照ください。

未加工のビジネスデータを DataWorks に書き込み、最終的な結果テーブルを取得するために使用される手順は、次のとおりです。

  1. DataWorks で複数のテーブルを作成します。 例:

    • ソーステーブル: 他のデータソースから同期されたデータを格納します。

    • 結果テーブル: DataWorks でクレンジングおよび処理されたデータを格納します。

  2. データ同期ノードを作成して、ビジネスデータを上記のソーステーブルに同期します。

  3. 計算ノードを作成して、ソーステーブルのデータをクレンジングし、各レイヤーでデータを処理し、各レイヤーの結果を結果テーブルに書き込みます。

オンプレミス マシンからソーステーブルにデータをアップロードすることもできます。 その後、計算ノードを使用してデータをクレンジングおよび処理し、処理されたデータを結果テーブルに格納できます。 この例では、データはオンプレミス マシンからソーステーブルにアップロードされ、計算ノードを使用してデータがクレンジングおよび処理されます。

DataStudio ページに移動する

DataWorks コンソール にログオンします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションペインで、[データ開発とガバナンス] > [データ開発] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。

手順

  1. 手順 1: ワークフローを作成する

    コードは、DataStudio のワークフローに基づいて開発されます。 開発操作を実行する前に、ワークフローを作成する必要があります。

  2. 手順 2: テーブルを作成する

    DataWorks では、視覚的な方法でテーブルを作成し、ディレクトリ構造でテーブルを表示できます。 データ開発の前に、データ処理結果を格納するために、MaxCompute コンピューティングエンジンにテーブルを作成する必要があります。

  3. 手順 3: ノードを作成する

    DataWorks でのデータ開発はノードに基づいており、さまざまなタイプのコンピューティングエンジンのノードは、DataWorks でさまざまなタイプのノードにカプセル化されています。 ビジネス要件に基づいて適切なノードタイプを選択して、コンピューティングエンジンノードを開発できます。

  4. 手順 4: ノードを構成する

    関連データベースでサポートされている構文に基づいて、ノード構成タブでノードのコードを記述できます。

  5. 手順 5: ノードのスケジューリングプロパティを構成する

    ノードのスケジューリングプロパティを構成して、システムがノードを定期的にスケジュールおよび実行できるようにすることができます。

  6. 手順 6: ノードのコードをデバッグする

    コードスニペットのクイック実行機能、または [実行] 機能または [パラメーター付きで実行] 機能を使用して、ノードのコードのロジックをデバッグおよびチェックできます。

  7. 手順 7: ノードを保存してコミットする

    ノードがデバッグされたら、ノードを保存してコミットする必要があります。

  8. 手順 8: スモークテストを実行する

    本番環境でノードを効率的に実行し、コンピューティングリソースの浪費を防ぐために、ノードをデプロイする前に、ノードを開発環境にコミットし、開発環境でスモークテストを実行できます。 これにより、ノードのコードの正確性が保証されます。

  9. 手順 9: ノードをデプロイする

    DataWorks は、本番環境にデプロイされたノードのみを自動的にスケジュールできます。 ノードがスモークテストに合格したら、DataWorks がノードを定期的にスケジュールできるように、ノードを本番環境にデプロイする必要があります。

手順 1: ワークフローを作成する

DataWorks は、ワークフローを使用してデータ開発プロセスを編成します。 DataWorks は、各ワークフローのさまざまなタイプのノードのダッシュボードを提供し、ダッシュボードでツールを使用してノードを最適化および管理できます。 これにより、データの開発と管理が容易になります。 ビジネス要件に基づいて、同じビジネスタイプのノードを 1 つのワークフローに配置できます。

  1. DataStudio ページに移動します。

    DataWorks コンソール にログオンします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションペインで、[データ開発とガバナンス] > [データ開発] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。

  2. ワークフローを作成します。

    次のいずれかの方法を使用して、ワークフローを作成できます。

    • 方法 1: 新建 アイコンにポインターを移動し、[ワークフローの作成] をクリックします。

    • 方法 2: スケジュールされたワークフローペインで [ビジネスフロー] を右クリックし、[ワークフローの作成] を選択します。

  3. [ワークフローの作成] ダイアログボックスで、ワークフローの [ワークフロー名] パラメーターと [説明] パラメーターを構成し、[作成] をクリックします。

    この例では、[ワークフロー名] パラメーターは 最初の自動トリガーノードの作成 に設定されています。 実際のデータ開発シナリオでは、ビジネス要件に基づいて [ワークフロー名] パラメーターを構成できます。

    説明

    ワークフローの使用方法の詳細については、「ワークフローを作成する」をご参照ください。

手順 2: テーブルを作成する

DataWorks のデータ開発ノードは、ソースデータをクレンジングおよび処理します。 データ開発の前に、必要なコンピューティングエンジンにテーブルを作成してデータクレンジング結果を格納し、テーブルスキーマを定義する必要があります。

  1. テーブルを作成します。

    1. スケジュールされたワークフローペインで [ビジネスフロー] をクリックします。 手順 1 で作成したワークフローを見つけ、ワークフロー名をクリックし、[maxcompute] を右クリックして、[テーブルの作成] を選択します。

    2. [テーブルの作成] ダイアログボックスで、[エンジンインスタンス] や [名前] などのパラメーターを構成します。

    この例では、次のテーブルが作成されます。

    テーブル名

    説明

    bank_data

    未加工のビジネスデータを格納するために使用されます。

    result_table

    データクレンジング結果を格納するために使用されます。

    説明
    • テーブル作成ステートメントについては、「テーブル作成ステートメント」をご参照ください。

    • MaxCompute テーブルや EMR テーブルの作成など、さまざまなコンピューティングエンジンで視覚的な方法でテーブルを作成する方法については、「テーブルを作成する」をご参照ください。

  2. テーブルスキーマを生成します。

    テーブルの構成タブに移動し、DDL モードに切り替え、DDL ステートメントを使用してテーブルのスキーマを生成します。 テーブルスキーマが生成されたら、[全般] セクションで [表示名] パラメーターを構成し、[開発環境にコミット] をクリックしてから、上部のツールバーで [本番環境にコミット] をクリックします。 テーブルがコミットされると、関連環境の MaxCompute データソースでテーブルを表示できます。 さまざまな環境のワークスペースに追加されたデータソースを表示する方法については、「MaxCompute データソースを追加する」をご参照ください。

    説明
    • テーブルの作成やテーブルの更新などの操作は、必要な環境にコミットされた後にのみ、関連するコンピューティングエンジンで有効になります。

    • ビジネス要件に基づいて、DataWorks コンソールに表示される画面上の手順に従って、視覚的な方法でテーブルスキーマを構成することもできます。 視覚的な方法でテーブルを作成する方法の詳細については、「MaxCompute テーブルを作成および管理する」をご参照ください。

    生成表结构。この例では、次のステートメントを使用して bank_data テーブルのスキーマを生成します。

    CREATE TABLE IF NOT EXISTS bank_data
    (
     age             BIGINT COMMENT '年齢',
     job             STRING COMMENT '職種',
     marital         STRING COMMENT '婚姻状況',
     education       STRING COMMENT '学歴',
     default         STRING COMMENT 'クレジットカード',
     housing         STRING COMMENT '住宅ローン',
     loan            STRING COMMENT 'ローン',
     contact         STRING COMMENT '連絡先情報',
     month           STRING COMMENT '月',
     day_of_week     STRING COMMENT '曜日',
     duration        STRING COMMENT '期間',
     campaign        BIGINT COMMENT 'キャンペーン中の連絡回数',
     pdays           DOUBLE COMMENT '最後の連絡からの間隔',
     previous        DOUBLE COMMENT '顧客との連絡回数',
     poutcome        STRING COMMENT '前回のマーケティングキャンペーンの結果',
     emp_var_rate    DOUBLE COMMENT '雇用変化率',
     cons_price_idx  DOUBLE COMMENT '消費者物価指数',
     cons_conf_idx   DOUBLE COMMENT '消費者信頼感指数',
     euribor3m       DOUBLE COMMENT 'ユーロ預金金利',
     nr_employed     DOUBLE COMMENT '従業員数',
     y               BIGINT COMMENT '定期預金の有無'
    );

    この例では、次のステートメントを使用して result_table テーブルのスキーマを生成します。

    CREATE TABLE IF NOT EXISTS result_table
    (
    education STRING COMMENT '学歴',
    num BIGINT COMMENT '人数'
    )
    PARTITIONED BY
    (
    day STRING,
    hour STRING
    );
  3. データをアップロードします。

    未加工のビジネスデータを DataWorks のテーブルにアップロードします。 この例では、データは bank_data テーブルにアップロードされます。 この例では、banking.txt という名前のファイルが、オンプレミス マシンから DataWorks にアップロードされます。 次の図は、手順を示しています。 上传数据データのアップロード方法の詳細については、「オンプレミス マシンから bank_data テーブルにファイルをアップロードする」をご参照ください。

手順 3: ノードを作成する

ビジネス要件に基づいて、ノード開発に適したノードタイプを選択します。

説明

DataWorks のノードは、データ同期ノードと計算ノードに分類できます。 ほとんどのデータ開発シナリオでは、バッチ同期ノードを使用してビジネスデータベースからデータウェアハウスにデータを同期し、次に計算ノードを使用してデータウェアハウスのデータをクレンジングおよび処理する必要があります。

  1. ノードを作成します。

    次のいずれかの方法を使用して、ノードを作成できます。

    • 方法 1: スケジュールされたワークフローペインでノードを作成する

      1. DataStudio ページのスケジュールされたワークフローペインで、[ビジネスフロー] をクリックし、作成したワークフローを見つけて、ワークフローの名前をクリックします。

      2. 使用するコンピューティングエンジンを右クリックし、[ノードの作成] にポインターを移動した後に適切なノードタイプを選択して、選択したタイプのノードを作成します。

    • 方法 2: ワークフローの構成タブでノードを作成する

      1. DataStudio ページのスケジュールされたワークフローペインで、[ビジネスフロー] をクリックし、作成したワークフローを見つけます。

      2. ワークフローの名前をダブルクリックして、ワークフローの構成タブに移動します。

      3. 構成タブの左側のセクションで、必要なノードタイプをクリックするか、必要なノードタイプを右側のキャンバスにドラッグします。

  2. [ノードの作成] ダイアログボックスで、[エンジンインスタンス] や [名前] などのパラメーターを構成します。

    この例では、result_table という名前の ODPS SQL ノードが作成されます。 ノードの名前は、手順 2 で作成した結果テーブルの名前と同じです。

    説明

    DataWorks を使用してデータ開発を行う場合は、計算ノードを使用してデータをクレンジングし、クレンジング結果を結果テーブルに格納する必要があります。 ノードによって生成されたテーブルデータをすばやく見つけるために、結果テーブルの名前をノードの名前として使用することをお勧めします。

    创建节点

手順 4: ノードを構成する

手順 3 で作成したノードを見つけ、ノードの名前をダブルクリックして、ノード構成タブに移動します。 ノード構成タブで、関連データベースでサポートされている構文に基づいてノードのコードを記述します。

この例では、result_table ノードを使用して、bank_data テーブルの指定されたパーティションのデータを result_table テーブルの指定されたパーティションに書き込みます。データが書き込まれるパーティションは、day 変数と hour 変数によって定義されます。

説明
  • コード開発中にスケジューリングシナリオで変数を使用してパラメーターを動的に置き換える場合は、${カスタム変数名} 形式でコードに変数を定義し、手順 5 でノードのスケジューリングプロパティを構成するときに、変数に値を割り当てることができます。

  • スケジューリングパラメーターの詳細については、「サポートされているスケジューリングパラメーターの形式」をご参照ください。

  • さまざまなタイプのノードのコード構文の詳細については、「ノードを作成および使用する」をご参照ください。

编辑代码サンプルコード:

INSERT OVERWRITE TABLE result_table partition (day='${day}', hour='${hour}')
SELECT education
, COUNT(marital) AS num
FROM bank_data
GROUP BY education;

手順 5: ノードのスケジューリングプロパティを構成する

ノードのスケジューリングプロパティを構成して、ノードの定期的なスケジューリングを有効にすることができます。 ノード構成タブの右側のナビゲーションペインで、[プロパティ] タブをクリックします。 ビジネス要件に基づいて、タブのさまざまなセクションでノードのスケジューリングプロパティを構成できます。

タブ

説明

全般

このセクションには、ノード名、ノード ID、ノードタイプ、ノードの所有者が自動的に表示されます。 追加の設定を行う必要はありません。

説明
  • デフォルトでは、ノードの所有者は現在のユーザーです。 ビジネス要件に基づいて、ノードの所有者を変更できます。 現在のワークスペースのメンバーのみをノードの所有者として選択できます。

  • ノードがコミットされると、ID が自動的に生成されます。

スケジューリングパラメーター

このセクションでは、ノードのスケジュール方法を定義するために使用されるスケジューリングパラメーターを構成できます。

DataWorks は、値の割り当て方法に基づいて、カスタムパラメーターと組み込み変数に分類できるスケジューリングパラメーターを提供します。 スケジューリングパラメーターは、ノードスケジューリングの動的パラメーター設定をサポートします。 手順 4 でノードのコードの変更中に変数が定義されている場合は、[パラメーター] セクションで変数に値を割り当てることができます。

この例では、手順 4 で次の変数が定義されており、bank_data テーブルの前日の 24 時間に生成されたデータを result_table テーブルのパーティションに書き込むために、変数に値が割り当てられています。

  • ${yyyymmdd} を値として day に割り当てます。

  • $[hh24] を値として hour に割り当てます。

参数赋值

スケジュール

このセクションでは、インスタンス生成モード、スケジューリングサイクル、ノードの開始をスケジュールする時点、再実行設定、タイムアウト期間など、ノードの時間プロパティを構成できます。

説明
  • [再実行] 設定を構成した後にのみ、ノードをコミットできます。

  • ノードに指定したスケジューリング時間は、ノードにのみ有効です。 ノードの実行開始時点は、ノードの祖先ノードのスケジューリング時間に関連しています。 ノードのスケジューリング時間が祖先ノードのスケジューリング時間よりも早い場合でも、ノードは、祖先ノードのスケジューリング時間が到着し、祖先ノードが正常に実行された場合にのみ実行を開始できます。

この例では、result_table ノードは、00:00 から 1 時間間隔で実行するようにスケジュールされています。 前日の 24 時間の bank_data テーブルで 1 時間ごとに生成されたデータは、1 時間ごとに result_table テーブルの関連する時間単位のパーティションに書き込まれます。时间周期

リソースグループ

このセクションでは、ノードを本番環境にデプロイするために使用するスケジューリングのリソースグループを選択できます。 DataWorks をアクティブ化すると、サーバーレス リソースグループが提供されます。 この例では、サーバーレス リソースグループが使用されます。 サーバーレス リソースグループの作成および使用方法の詳細については、「サーバーレス リソースグループを作成および使用する」をご参照ください。

依存関係

このセクションでは、ノードのスケジューリング依存関係を構成できます。 ノードの系列に基づいてノードのスケジューリング依存関係を構成することをお勧めします。 現在のノードの祖先ノードが正常に実行されると、現在のノードが使用する必要のあるテーブルデータが生成されます。 これにより、現在のノードはテーブルデータを取得できます。

説明
  • 現在のノードのコードに SELECT ステートメントが指定されていて、自動的にトリガーされるノードによって生成されていないテーブルデータがクエリされる場合は、[自動解析] 機能を無効にし、ワークスペースのルートノードを使用して現在のノードをスケジュールできます。

  • 現在のノードのコードに SELECT ステートメントが指定されていて、他のノードによって生成されたテーブルデータがクエリされる場合は、次の方法を使用して、現在のノードによって使用される祖先ノードを依存関係として構成できます。 祖先ノードは、現在のノードによってクエリされるテーブルデータを生成し、現在のノードのスケジュールに使用されます。

    • 祖先ノードが現在のワークフローまたはワークスペースに属していない場合[出力名][親ノード] テーブルに入力します。

    • 祖先ノードが現在のワークフローに属している場合、ワークフローのキャンバスに線を描画することにより、現在のノードのスケジューリング依存関係を構成します。

この例では、result_table ノードが現在のワークフローのノードによって生成されていない bank_data テーブルのデータをクエリする場合、ワークスペースのルートノードを result_table ノードの祖先ノードとして構成し、ルートノードを使用して result_table ノードをスケジュールします。

(オプション) 入力パラメーターと出力パラメーター

このセクションでは、ノードの入力パラメーターと出力パラメーターを構成できます。 このセクションの設定はオプションです。 ノードは、特定のパラメーターを使用して、祖先ノードに構成されているパラメーターの値を取得できます。

説明

ほとんどの場合、このプロセスには割り当てノードまたはスケジューリングパラメーターが必要です。

手順 6: ノードのコードをデバッグする

次のいずれかの機能を使用して、コードロジックをデバッグし、記述したコードが正しいことを確認できます。

機能

説明

提案

クイック実行 (コードスニペットのデバッグに使用)

ノードの構成タブで選択したコードスニペットをすばやく実行できます。

この機能を使用して、ノードのコードスニペットをすばやく実行できます。

上部ツールバー: 実行 (运行)

特定のテストシナリオで、コードで定義されている変数に定数を割り当てることができます。

説明

[実行] アイコンを初めてクリックして新しいノードを実行する場合は、表示されるダイアログボックスで、コードで定義されている変数に定数を手動で割り当てる必要があります。 割り当て操作はシステムに記録されます。 ノードの後続の実行で操作を繰り返す必要はありません。

この機能を使用して、ノードの完全なコードを頻繁にデバッグできます。

上部ツールバー: パラメーター付きで実行 (高级运行)

このアイコンをクリックするたびに、特定のテストシナリオで、コードで定義されている変数に定数を割り当てる必要があります。

この機能を使用して、コードの変数に割り当てられた値を変更できます。

この例では、ノードは [パラメーター付きで実行] テストで 2022.09.07 14:00 に実行されます。 次の図は、実行結果を示しています。高级运行

手順 7: ノードを保存してコミットする

ノードの構成とテストが完了したら、ノードの構成を保存してから、ノードを開発環境にコミットします。

説明

手順 5 でノードの [再実行設定][祖先ノード] を構成した後にのみ、ノードを開発環境にコミットできます。

  1. 上部ツールバーの 保存 アイコンをクリックして、ノードを保存します。

  2. 上部ツールバーの 提交 アイコンをクリックして、ノードを開発環境にコミットします。

手順 8: スモークテストを実行する

開発したノードを効率的に実行し、コンピューティングリソースを最大限に活用できるように、ノードをコミットしてデプロイする前に、ノードでスモークテストを実行することをお勧めします。 スモークテストは、開発環境で実行する必要があります。 スモークテストを実行する前に、ノードを開発環境にコミットする必要があります。

  1. 上部ツールバーの 冒烟测试 アイコンをクリックします。 スモークテスト ダイアログボックスで、ノードのデータタイムスタンプを指定します。

  2. スモークテストが完了したら、上部ツールバーの 查看冒烟测试结果 アイコンをクリックして、テスト結果を表示します。

この例では、構成されたスケジューリングパラメーターがユーザー要件を満たしているかどうかを確認するために、スモークテストが実行されます。 result_table ノードは、00:00 から 23:59 まで 1 時間間隔で実行するようにスケジュールされています。 ノードでスモークテストを実行すると、2 つのインスタンスが生成されます。 インスタンスのスケジューリング時間は、00:0001:00 です。

説明
  • 自動的にトリガーされるインスタンスは、指定されたスケジューリングサイクルに基づいてノードが実行されるようにスケジュールされているときに、自動的にトリガーされるノードに対して生成されるスナップショットです。

  • result_table ノードは時間単位でスケジュールされます。 スモークテストのために、ノードのデータタイムスタンプを指定する必要があります。 また、テストの開始時刻と終了時刻を選択する必要もあります。

  • 開発環境でスモークテストを実行する方法の詳細については、「スモークテストを実行する」をご参照ください。

冒烟测试

手順 9: ノードをデプロイする

ワークスペースが基本モードの場合、ノードがコミットされた後に、ノードを定期的にスケジュールできます。 ワークスペースが標準モードの場合、ノードはコミットされた後、保留状態になります。 この手順で説明されている操作を参照して、ノードをデプロイする必要があります。 ノードは、デプロイされた後にのみ定期的にスケジュールできます。

説明
  • DataWorks は、本番環境にデプロイされたノードのみを自動的にスケジュールできます。 スモークテストが完了したら、ノードを本番環境にコミットしてデプロイし、DataWorks がノードを定期的にスケジュールできるようにします。

  • 基本モードのワークスペースと標準モードのワークスペースの詳細については、「基本モードのワークスペースと標準モードのワークスペースの違い」をご参照ください。

標準モードのワークスペースでは、データ開発ノード、リソース、関数の追加、更新、削除など、DataStudio ページでコミットされた操作は、[デプロイタスクの作成] ページで保留状態になります。 [デプロイ] をクリックして [デプロイタスクの作成] ページに移動し、関連する操作を本番環境にデプロイできます。 操作は、本番環境にデプロイされた後にのみ有効になります。 詳細については、「ノードをデプロイする」をご参照ください。

次の表に、デプロイ手順に関連する項目を示します。

項目

説明

デプロイ制御

デプロイ操作が成功するかどうかは、この操作を実行するユーザーのロールの権限と、使用される指定されたデプロイ手順によって異なります。

説明
  • ノードをデプロイした後、[デプロイパッケージ] ページで、ノードのデプロイレコードとステータスを表示できます。

  • 開発者はデプロイパッケージを作成することのみができます。 デプロイパッケージのデプロイには、O&M 権限が必要です。

インスタンス生成モード

ノードを作成または更新し、23:30 から 24:00 の時間範囲でノードをデプロイする場合、ノードに対して生成されるインスタンスは 3 日目に有効になります。

説明

この制限は、[インスタンス生成モード] パラメーターが [翌日] または [デプロイ直後] に設定されているノードに有効です。 インスタンス生成モードの詳細については、「タスクの即時インスタンス生成を構成する」をご参照ください。

次のステップ

[オペレーションセンター] に移動し、[自動的にトリガーされるタスク] ページで本番環境にデプロイされた自動的にトリガーされるノードを表示し、ノードで関連する O&M 操作を実行できます。 詳細については、「自動的にトリガーされるノードで基本的な O&M 操作を実行する」をご参照ください。