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

Data Management:eコマース向けタグ付けにタスクオーケストレーション機能を使用する

最終更新日:Mar 29, 2026

Data Management (DMS) のタスクオーケストレーション機能では、タスクノードを有向のタスクフローで接続し、定期スケジュールで実行する自動化されたワークフローを構築できます。本チュートリアルでは、ユーザーの累計購入金額がしきい値を超えた場合にクーポンを自動発行するという具体的な eコマースのシナリオを紹介します。

このタスクフローでは、以下の 3 種類のノードを使用します:

  • 単一インスタンス向け SQL 代入 — プロモーション設定をクエリし、結果を出力変数として公開します

  • 条件分岐 — プロモーションがアクティブかどうかを評価します

  • 単一インスタンス SQL — 対象となるユーザーをクーポン発行テーブルに挿入します

作業完了後、このロジックを定期的に実行し、結果をデータベースに自動書き込みするタスクフローが完成します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • DMS で作成済みのデータベースインスタンス

  • 対象データベースに対する権限変更(権限の申請方法については、「概要」をご参照ください)

ステップ 1:データベーステーブルのセットアップ

このタスクフローでは、2 つのソーステーブルから読み取り、1 つの出力テーブルに結果を書き込みます。

  • activity_setting — プロモーション設定(プロモーションの有効/無効、購入金額のしきい値、クーポン割引額)を格納します

  • consumption_records — 各ユーザーの購入トランザクションを記録します

  • voucher_send_list — タスクフローによって生成されたクーポン発行結果を格納します

以下の手順に従って、テーブルを作成し、テストデータをロードします。

SQL コンソールを開く

  1. DMS コンソール V5.0 にログインします。

  2. 左上隅の 2023-01-28_15-57-17.png アイコンにポインターを合わせ、すべての機能 > SQL コンソール > SQL コンソール を選択します。

    通常モードでは、上部ナビゲーションバーから SQL コンソール > SQL コンソール を選択します。
  3. まずデータベースを選択してください ダイアログボックスで、ご利用のデータベースを検索し、検索結果から選択して、確認 をクリックします。

テーブルの作成

SQL エディターで、以下の各 SQL ステートメントを 1 つずつ実行します。各ステートメントをコピー&ペーストした後、実行 をクリックします。

activity_setting(プロモーション設定テーブル):

CREATE TABLE `activity_setting` (
    `has_promotion` tinyint(1) NOT NULL COMMENT '割引を提供するかどうか',
    `consumption_limit` int(11) NOT NULL COMMENT '購入金額の上限',
    `quota` int(11) NOT NULL COMMENT 'クーポン割引額',
    PRIMARY KEY (`has_promotion`)
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT
AVG_ROW_LENGTH=16384;

consumption_records(購入トランザクションテーブル):

CREATE TABLE `consumption_records` (
    `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'レコード ID',
    `time` datetime NOT NULL COMMENT '購入時刻',
    `count` int(11) NOT NULL COMMENT '購入金額',
    `user_id` bigint(20) NOT NULL COMMENT 'ユーザー ID',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
COMMENT='購入レコードテーブル'
AUTO_INCREMENT=8001
ROW_FORMAT=COMPACT
AVG_ROW_LENGTH=54;

voucher_send_list(クーポン発行テーブル):

CREATE TABLE `voucher_send_list` (
    `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'レコード ID',
    `user_id` int(11) NULL COMMENT 'ユーザー ID',
    `consumption_sum` int(11) NULL COMMENT '購入金額合計',
    `quota` int(11) NULL COMMENT 'クーポン割引額',
    PRIMARY KEY (`Id`)
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=1
ROW_FORMAT=COMPACT
AVG_ROW_LENGTH=0;

データのロード

プロモーション設定を挿入します。本例では、has_promotion = 1(アクティブ)、購入しきい値を 100、クーポン割引額を 30 と設定します。

INSERT INTO activity_setting(has_promotion, consumption_limit, quota)
VALUES('1','100','30');

DMS のテストデータ生成機能を用いて、consumption_records にテスト用の購入レコードを生成します。詳細については、「テストデータの生成」をご参照ください。

以下の図は、consumption_records テーブルへのデータ生成設定の一例を示しています。

数据构建

ステップ 2:タスクフローの作成

  1. DMS コンソール V5.0 にログインします。

  2. 左上隅の 2023-01-28_15-57-17.png アイコンにポインターを合わせ、すべての機能 > Data+AI > データ開発 > タスクオーケストレーション を選択します。

    通常モードでは、上部ナビゲーションバーから [Data+AI] > [Data Development] > [Task Orchestration] を選択します。
  3. タスクオーケストレーション ページで、タスクフローの作成 をクリックします。

  4. 新規タスクフロー ダイアログボックスで、タスクフロー名 および 説明 を設定し、OK をクリックします。

ステップ 3:ノードの追加と接続

  1. キャンバス左側の タスクタイプ リストから、以下のノードをキャンバス上にドラッグします:単一インスタンス向け SQL 代入条件分岐、および 単一インスタンス SQL

  2. ノードを順に接続します。

    • 単一インスタンス向け SQL 代入 の右側にある中抜き円にポインターを合わせ、条件分岐 へ線を描画します。

    • 条件分岐 の右側にある中抜き円にポインターを合わせ、単一インスタンス SQL へ線を描画します。

ステップ 4:ノードの構成

単一インスタンス向け SQL 代入ノード

このノードは、activity_setting からプロモーション設定を読み取り、各カラム値を出力変数として格納します。後続ノードでは、${variable_name} 構文でこれらの変数を参照します。

  1. 単一インスタンス向け SQL 代入 ノードをダブルクリックします。

  2. ドロップダウンリストから、ご利用のデータベースを検索・選択します。

  3. SQL エディターに以下を入力します。

    select * from activity_setting limit 1
  4. 右側ナビゲーションウィンドウで、変数設定 タブをクリックし、出力変数 タブを選択します。

  5. 変数の追加 をクリックし、以下の出力変数を追加します:QuotaHasPromotion、および ConsumptionLimit

ノード実行後、クエリ結果はこれらの 3 つの変数にマップされます。条件分岐ノードおよび単一インスタンス SQL ノードでは、それぞれ ${HasPromotion}${Quota}${ConsumptionLimit} として参照されます。

構成の詳細については、「SQL 代入ノードの構成」をご参照ください。

条件分岐ノード

  1. 条件分岐 ノードをダブルクリックします。

  2. HasPromotion がアクティブであるかを評価する条件式を構成します。

以下の図は、構成済みの条件式を示しています。

image

構成の詳細については、「条件分岐ノードの構成」をご参照ください。

単一インスタンス SQL ノード

  1. 単一インスタンス SQL ノードをダブルクリックします。

  2. SQL エディターに以下のステートメントを入力します。${Quota}${ConsumptionLimit}、および ${bizdate} 変数を用いて、対象ユーザーを voucher_send_list に挿入します。

    INSERT INTO `voucher_send_list`(`user_id`,`consumption_sum`,`quota`)
    SELECT * FROM
    (SELECT `user_id`, sum(count) AS consumption_sum,${Quota} FROM `consumption_records`
     WHERE `time` > '${bizdate}'  GROUP BY `user_id`) `consumption_records`
    where `consumption_sum`>${ConsumptionLimit}

ステップ 5:タスクフローのテスト

  1. キャンバス左上隅の 試行実行 をクリックします。

  2. 実行が完了したら、SQL コンソール タブで以下のクエリを実行し、結果を確認します。

    SELECT * FROM voucher_send_list;

    このテーブルには、設定済みのしきい値(consumption_limit = 100)を超えた購入金額合計を持つユーザーごとに 1 行ずつレコードが含まれている必要があります。各行には、ユーザー ID、購入金額合計、およびクーポン割引額(quota = 30)が含まれます。

    1 优惠结果

ステップ 6:スケジューリングの構成(任意)

タスクフローを定期スケジュールで実行するには、以下の手順を実行します。

  1. キャンバス下部の 表示/非表示 アイコンをクリックします。

  2. タスクフロー情報 タブをクリックします。

  3. スケジューリング設定 セクションで、スケジューリングを有効化 をオンにして、スケジューリング周期を構成します。詳細については、「タスクフローの構成」をご参照ください。

ステップ 7:タスクフローの公開

公開後、タスクフローは構成済みのスケジューリング周期に従って自動的に実行されます。

  1. キャンバス左上隅の 公開 をクリックします。

  2. 公開 ダイアログボックスで、備考 を設定し、公開 をクリックします。

次のステップ