AnalyticDB for MySQL Enterprise Edition、Basic Edition、Data Lakehouse Edition、およびData Warehouse Edition は、Data Management (DMS) のタスクオーケストレーション機能をサポートし、AnalyticDB for MySQL タスクのオーケストレーション、スケジュール、管理、監視を行います。このトピックでは、DMS を使用してタスクを開発およびスケジュールする方法について説明します。
背景情報
イベントスケジューリングの課題と要件
MySQL Event Scheduler などの従来のデータベースイベントスケジューラは強力ですが、いくつかの制限があります:
高い技術要件:
CREATE EVENTやALTER EVENTのようなイベントを定義するための特定の SQL 構文に精通している必要があります。構成は、単純なユーザーインターフェースでは完了できません。データベースカーネルへの強い依存性: カーネルはイベントスケジューラをサポートする必要があり、スケジューラを有効にする必要があります。
単一のデータベースに限定: スケジューリングは単一のデータベースに対してのみ実行できます。異なるデータベース間でイベントをスケジュールしたり、他のツールと統合したりすることはできません。
追跡が困難: スケジュールされたイベントの実行ステータス、履歴、またはランタイムを表示することはできません。
O&M が困難: イベントを一時停止または再実行することはできません。イベントが失敗した場合、回復することはできません。
通知なし: システムは、イベントステータス (成功または失敗) に関する通知をショートメッセージまたはメールで送信しません。
解決策: DMS タスクオーケストレーション
DMS のタスクオーケストレーション機能は、これらの問題を解決します。これは、データベースカーネルのイベントスケジューリング機能に依存しない、外部の独立したタスクオーケストレーションおよびスケジューリングシステムです。タスクオーケストレーション機能には、次の特徴があります:
MySQL、Oracle、PostgreSQL、SQL Server などの複数のデータベースエンジン、およびデータ移行、バックアップ、クロスデータベース分析のためのさまざまなエコシステムツールをサポートしています。これにより、異なるデータベースとプロダクト間の機能の組み合わせと相互作用が可能になります。
ビジュアルエディターを提供します。ノードをドラッグアンドドロップし、簡単な構成を実行することで、スケジューリングタスクを作成できます。
DingTalk、ショートメッセージ、メールなど、複数の通知方法をサポートしています。
タスクの一時停止、停止、再実行など、さまざまな O&M 操作をサポートしています。
サンプルデータ
このトピックでは、adb_test という名前のデータベースを使用します。データベースには、orders、finish_orders、large_finish_orders の 3 つのテーブルが作成されます。次のコードはサンプルデータを示しています:
create database adb_test;
create table orders(
order_id bigint not null COMMENT '注文 ID',
order_status varchar not null COMMENT '注文ステータス',
total_price decimal(15,2) not null COMMENT '合計価格',
order_date date not null COMMENT '注文日',
PRIMARY KEY (order_id)
);
create table finish_orders(
order_id bigint not null COMMENT '注文 ID',
total_price decimal(15,2) not null COMMENT '合計価格',
order_date date not null COMMENT '注文日',
PRIMARY KEY (order_id)
);
create table large_finish_orders(
order_id bigint not null COMMENT '注文 ID',
total_price decimal(15,2) not null COMMENT '合計価格',
order_date date not null COMMENT '注文日',
PRIMARY KEY (order_id)
); プロセス説明
このトピックでは、AnalyticDB for MySQL Data Warehouse Edition クラスターを例として、ジョブスケジューリングプロセスについて説明します。Data Management Service (DMS) のタスクオーケストレーション機能を使用して、AnalyticDB for MySQL データベースの orders テーブルから、10,000 USD を超える金額の完了した注文をフィルターできます。
手順 | 説明 |
タスクフローを作成します。 | |
タスクフローに次の 2 つのタスクノードを作成します。
| |
タスクを有効にし、定期的に実行するように設定します。 |
ステップ 1: 新しいタスクフローの追加
AnalyticDB for MySQL コンソールにログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。管理するクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
説明データ資産管理機能を使用して DMS コンソールから AnalyticDB for MySQL データベースに初めてログインする場合、データベースのログイン情報を入力する必要があります。詳細については、「データベースへのログイン」をご参照ください。
[柔軟な管理] または [安定的な変更] モードで AnalyticDB for MySQL クラスターデータベースに以前ログインしたことがあり、[パスワードを記憶する] を選択しなかった場合、DMS コンソールにログインするとダイアログボックスが表示されます。後続の操作を実行するには、データベースアカウントのパスワードを入力する必要があります。コントロールモードの詳細については、「コントロールモード」をご参照ください。
エンドツーエンドのデータ管理機能は、インドネシア (ジャカルタ) リージョンの AnalyticDB for MySQL クラスターではサポートされていません。
上部のメニューバーで、[DTS] を選択します。
左側のナビゲーションウィンドウで、 を選択します。
新しいタスクフローを追加します。この例では、タスクフローの名前は Order Filtering です。
タスクオーケストレーションページで、新しいタスクフロー をクリックします。
新しいタスクフロー ダイアログボックスで、タスクフロー名 および [説明] パラメーターを設定し、次に [OK] をクリックします。
ステップ 2: タスクノードの作成
[注文フィルタリング] タスクオーケストレーションページで、2 つのタスクノードを作成して設定します:
注文クレンジング
左側のペインで、[単一インスタンス SQL] を選択し、キャンバスにドラッグします。
新しいタスクノードを選択し、
アイコンをクリックして名前を Order Cleansingに変更します。タスクノードをダブルクリックするか、
アイコンをクリックしてタスクノードを編集します。データベースのドロップダウンリストから、ターゲットデータベースを選択します。
データベースのドロップダウンリストの下のエディターに、次の SQL 文を入力し、[保存] をクリックします:
insert into finish_orders select order_id,total_price,order_date from orders where order_status = 'F';説明[自動保存] を選択した場合、SQL 文は自動的に保存されます。
大口注文の生成
左側のペインで、[単一インスタンス SQL] を選択し、キャンバスにドラッグします。
新しいタスクノードを選択し、
アイコンをクリックして名前を Large Order Generationに変更します。タスクノードをダブルクリックするか、
アイコンをクリックしてタスクノードを編集します。データベースのドロップダウンリストから、ターゲットデータベースを選択します。
コードエディターに、次の SQL 文を入力し、[保存] をクリックします:
insert into large_finish_orders select order_id,total_price,order_date from finish_orders where total_price > 10000;説明[自動保存] を選択した場合、SQL 文は自動的に保存されます。
タスクフローキャンバスで、ポインターを
Order Cleansingノードの上に移動します。 ノードの右側にある円をクリックし、Large Order Generationノードまで回線をドラッグします。 これにより、2 つのタスクノードが接続され、タスクフローに依存関係が作成されます。
ステップ 3: タスクフローのスケジューリングを設定する
タスクフローキャンバスの下にある [スケジューリング設定] セクションで、[スケジューリングを有効にする] スイッチをオンにし、パラメーターを設定します。
説明この例では、スケジューリングタスクは 2023 年 2 月 1 日から 2023 年 2 月 28 日まで、毎日 01:00 に定期的に実行されるように設定されています。 必要に応じて、スケジューリングタスクをカスタマイズすることもできます。 スケジューリングパラメーターの詳細については、「スケジューリングの設定」をご参照ください。
タスクフローを公開します。
キャンバスの左上隅にある [公開] をクリックします。
[公開] ダイアログボックスで、[備考] パラメーターを設定し、[公開] をクリックします。
タスクフローのステータスを表示します。
キャンバスの右上隅にある [O&M に移動] をクリックします。
ページの右側で、[リリース済み] パラメーターの値を確認します。
公開済み: タスクフローは公開されています。
未公開: タスクフローは公開されていません。