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

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

最終更新日:Aug 19, 2024

データ管理 (DMS) は、タスクオーケストレーション機能を提供します。 この機能を使用して、さまざまな種類のタスクを調整し、タスクをスケジュールして実行できます。 1つ以上のタスクノードで構成されるタスクフローを作成して、複雑なスケジューリングを実装し、データ開発の効率を向上させることができます。

背景情報

販売促進の間、eコマース会社はしばしば顧客に割引を与えます。 例えば、ユーザの累積購入額が一定値に達すると、電子商取引会社は、ユーザがより低い価格でサービスまたは商品を購入できるように、一定の割引を伴うクーポンをユーザに発行する。 このトピックでは、タスクオーケストレーション機能を使用して、SQL Assignment for Single InstanceConditional Branch、およびSingle Instance SQLノードで構成されるタスクフローを作成し、データベースにクーポン発行を実装する方法について説明します。

前提条件

データベースが作成され、データベースに対する変更権限があります。 権限を申請する方法の詳細については、「概要」をご参照ください。

環境の配置

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

  2. DMSコンソールの左上隅にある2023-01-28_15-57-17.pngアイコンの上にポインターを移動し、[すべての機能] > [SQLコンソール] > [SQLコンソール] を選択します。

    説明

    DMSコンソールを通常モードで使用する場合は、上部のナビゲーションバーで [SQLコンソール] > [SQLコンソール] を選択します。

  3. 最初にデータベースを選択してくださいダイアログボックスで、データベースを検索するキーワードを入力し、検索結果からデータベースインスタンスを選択し、確認 をクリックします。

  4. 構成テーブル、業務テーブル、およびクーポン発行テーブルを作成します。

    1. activity_settingという名前の構成テーブルを作成します。 次のSQL文をコピーしてSQLエディターに貼り付け、[実行] をクリックします。

      次のSQL文を使用してテーブルを作成します。

      CREATE TABLE `activity_setting` (
          `has_promotion` tinyint(1) NOT NULL COMMENT 'Whether discounts are provided',
          `consumption_limit` int(11) NOT NULL COMMENT 'Limit on purchase amount',
          `quota` int(11) NOT NULL COMMENT 'Coupon discount',
          PRIMARY KEY (`has_promotion`)
      ) ENGINE=InnoDB
      DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
      ROW_FORMAT=COMPACT
      AVG_ROW_LENGTH=16384;
    2. consumption_recordsというビジネステーブルを作成します。 次のSQL文をコピーしてSQLエディターに貼り付け、[実行] をクリックします。

      次のSQL文を使用してテーブルを作成します。

      CREATE TABLE `consumption_records` (
          `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Record ID',
          `time` datetime NOT NULL COMMENT 'Purchase time',
          `count` int(11) NOT NULL COMMENT 'Purchase amount',
          `user_id` bigint(20) NOT NULL COMMENT 'User ID',
          PRIMARY KEY (`id`)
      ) ENGINE=InnoDB
      DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
      COMMENT='Purchase record table'
      AUTO_INCREMENT=8001
      ROW_FORMAT=COMPACT
      AVG_ROW_LENGTH=54;
    3. voucher_send_listという名前のクーポン発行テーブルを作成します。 次のSQL文をコピーしてSQLエディターに貼り付け、[実行] をクリックします。

      次のSQL文を使用してテーブルを作成します。

      CREATE TABLE `voucher_send_list` (
          `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Record ID',
          `user_id` int(11) NULL COMMENT 'User ID',
          `consumption_sum` int(11) NULL COMMENT 'Purchase amount',
          `quota` int(11) NULL COMMENT 'Coupon discount',
          PRIMARY KEY (`Id`)
      ) ENGINE=InnoDB
      DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
      AUTO_INCREMENT=1
      ROW_FORMAT=COMPACT
      AVG_ROW_LENGTH=0;
  5. 構成テーブルにデータを挿入します。 次のSQL文をコピーしてSQLエディターに貼り付け、[実行] をクリックします。

    次のSQL文を使用して、テーブルにデータを挿入します。

    INSERT INTO activity_setting( has_promotion, consumption_limit, quota)
    VALUES('1','100','30');
  6. ビジネステーブルにデータを挿入します。 DMSのテストデータ生成機能を使用して、テストデータを生成します。 詳細については、「テストデータの生成」をご参照ください。

    次の図は、consumption_recordsテーブルのデータを生成する方法の例を示しています。

    数据构建

手順

  1. 構成テーブル、業務テーブル、およびクーポン発行テーブルを作成します。 テーブルにデータを挿入します。 詳細については、このトピックの「環境の準備」をご参照ください。

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

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

    2. 上部のナビゲーションバーで、DTS > データ开発 > タスクオーケストレーション を選択します。

    3. [タスクオーケストレーション] ページで、新しいタスクフロー をクリックします。

    4. 新しいタスクフローダイアログボックスで、タスクフロー名説明パラメーターをクリックし、OK をクリックします。

  3. タスクノードを調整します。

    1. では、タスクタイプキャンバスの左側にあるリストをドラッグし、単一インスタンスのSQL割り当て,条件付きブランチ、およびシングルインスタンスSQLノードをキャンバス上の空白領域に配置します。

    2. ノードを接続してタスクフローを作成します。

      [SQL Assignment for Single Instance] ノードの上にポインターを移動し、[SQL Assignment for Single Instance] ノードの右側にある中空の円をクリックして、条件付き分岐 ノードに接続する線を引きます。

      条件付き分岐 ノードの上にポインターを移動し、条件付き分岐 ノードの右側にある中空の円をクリックして、[シングルインスタンス] SQLノードに接続する線を引きます。

  4. タスクノードを設定します。

    1. [SQL Assignment for Single Instance] ノードをダブルクリックし、ノードを設定します。 詳細については、「SQL割り当てノードの設定」をご参照ください。

      1. 検索ボックスにキーワードを入力してデータベースを検索し、ドロップダウンリストからデータベースを選択します。

      2. SQLエディターで、次のSQL文を入力します。

        select * from activity_setting limit 1
      3. 右側のナビゲーションウィンドウで、[変数設定] タブをクリックします。 タブで、[出力変数] タブをクリックします。 次に、[変数の増加] をクリックして、クォータ、HasPromotion、およびConsumptionLimitの出力変数を追加します。

    2. 条件付き分岐 ノードをダブルクリックし、ノードを設定します。 詳細については、「条件分岐ノードの設定」をご参照ください。

      設定した条件式を次の図に示します。

      image

    3. をダブルクリックし、シングルインスタンスSQLノードを設定します。

      次の SQL ステートメントを実行します。

      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. キャンバスの左上隅で、試運転タスクフローをテストします。

    SQLConsoleタブでvoucher_send_listテーブルを表示できます。 クーポンデータがテーブルに挿入されます。1 优惠结果

  6. オプション。 タスクフローのスケジューリングプロパティを設定します。

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

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

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

  7. タスクフローを公開します。 タスクフローが公開されると、指定されたスケジューリングサイクルに基づいて自動的に実行されます。

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

    2. 公開ダイアログボックスで、備考パラメーターをクリックし、公開 をクリックします。