データ管理 (DMS) は、タスクオーケストレーション機能を提供します。 この機能を使用して、さまざまな種類のタスクを調整し、タスクをスケジュールして実行できます。 1つ以上のタスクノードで構成されるタスクフローを作成して、複雑なスケジューリングを実装し、データ開発の効率を向上させることができます。
背景情報
販売促進の間、eコマース会社はしばしば顧客に割引を与えます。 例えば、ユーザの累積購入額が一定値に達すると、電子商取引会社は、ユーザがより低い価格でサービスまたは商品を購入できるように、一定の割引を伴うクーポンをユーザに発行する。 このトピックでは、タスクオーケストレーション機能を使用して、SQL Assignment for Single Instance、Conditional Branch、およびSingle Instance SQLノードで構成されるタスクフローを作成し、データベースにクーポン発行を実装する方法について説明します。
前提条件
データベースが作成され、データベースに対する変更権限があります。 権限を申請する方法の詳細については、「概要」をご参照ください。
環境の配置
DMSコンソールV5.0 にログインします。
DMSコンソールの左上隅にあるアイコンの上にポインターを移動し、
を選択します。説明DMSコンソールを通常モードで使用する場合は、上部のナビゲーションバーで
を選択します。最初にデータベースを選択してくださいダイアログボックスで、データベースを検索するキーワードを入力し、検索結果からデータベースインスタンスを選択し、確認 をクリックします。
構成テーブル、業務テーブル、およびクーポン発行テーブルを作成します。
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;
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;
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;
構成テーブルにデータを挿入します。 次のSQL文をコピーしてSQLエディターに貼り付け、[実行] をクリックします。
次のSQL文を使用して、テーブルにデータを挿入します。
INSERT INTO activity_setting( has_promotion, consumption_limit, quota) VALUES('1','100','30');
ビジネステーブルにデータを挿入します。 DMSのテストデータ生成機能を使用して、テストデータを生成します。 詳細については、「テストデータの生成」をご参照ください。
次の図は、consumption_recordsテーブルのデータを生成する方法の例を示しています。
手順
構成テーブル、業務テーブル、およびクーポン発行テーブルを作成します。 テーブルにデータを挿入します。 詳細については、このトピックの「環境の準備」をご参照ください。
タスクフローを作成します。
DMSコンソールV5.0 にログインします。
上部のナビゲーションバーで、 を選択します。
[タスクオーケストレーション] ページで、新しいタスクフロー をクリックします。
新しいタスクフローダイアログボックスで、タスクフロー名と説明パラメーターをクリックし、OK をクリックします。
タスクノードを調整します。
では、タスクタイプキャンバスの左側にあるリストをドラッグし、単一インスタンスのSQL割り当て,条件付きブランチ、およびシングルインスタンスSQLノードをキャンバス上の空白領域に配置します。
ノードを接続してタスクフローを作成します。
[SQL Assignment for Single Instance] ノードの上にポインターを移動し、[SQL Assignment for Single Instance] ノードの右側にある中空の円をクリックして、条件付き分岐 ノードに接続する線を引きます。
条件付き分岐 ノードの上にポインターを移動し、条件付き分岐 ノードの右側にある中空の円をクリックして、[シングルインスタンス] SQLノードに接続する線を引きます。
タスクノードを設定します。
[SQL Assignment for Single Instance] ノードをダブルクリックし、ノードを設定します。 詳細については、「SQL割り当てノードの設定」をご参照ください。
検索ボックスにキーワードを入力してデータベースを検索し、ドロップダウンリストからデータベースを選択します。
SQLエディターで、次のSQL文を入力します。
select * from activity_setting limit 1
右側のナビゲーションウィンドウで、[変数設定] タブをクリックします。 タブで、[出力変数] タブをクリックします。 次に、[変数の増加] をクリックして、クォータ、HasPromotion、およびConsumptionLimitの出力変数を追加します。
条件付き分岐 ノードをダブルクリックし、ノードを設定します。 詳細については、「条件分岐ノードの設定」をご参照ください。
設定した条件式を次の図に示します。
をダブルクリックし、シングルインスタンス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}
キャンバスの左上隅で、試運転タスクフローをテストします。
SQLConsoleタブでvoucher_send_listテーブルを表示できます。 クーポンデータがテーブルに挿入されます。
オプション。 タスクフローのスケジューリングプロパティを設定します。
下部の非表示 /表示アイコンをクリックします。
次に、をクリックします。タスクフロー情報タブをクリックします。
スケジューリング設定 セクションで、スケジューリングの有効化 をオンにします。 詳細については、「タスクフローの設定」をご参照ください。
タスクフローを公開します。 タスクフローが公開されると、指定されたスケジューリングサイクルに基づいて自動的に実行されます。
キャンバスの左上隅で、公開 をクリックします。
公開ダイアログボックスで、備考パラメーターをクリックし、公開 をクリックします。