AnalyticDB for MySQL Data Warehouse Edition (V3.0) およびData Lakehouse Edition (V3.0) では、Data Management (DMS) のタスクオーケストレーション機能を使用して、AnalyticDB for MySQLタスクをオーケストレーション、スケジュール、管理、および監視できます。 このトピックでは、DMSを使用してタスクを開発およびスケジュールする方法について説明します。
背景情報
課題と要求: イベントスケジューリング
MySQLイベントスケジューラなどの従来のイベントスケジューラは、データベースイベントに強力なスケジューリング機能を提供します。 ただし、これらのイベントスケジューラには次の制限があります。
高い技術的要件:
CREATE EVENT
やALTER EVENT
などのイベントの定義に使用されるSQL文の構文に精通している必要があります。 GUIで簡単な設定を実行してイベントを定義することはできません。データベースエンジンへの依存: エンジンはイベントスケジューラをサポートする必要があります。 イベントスケジューラを有効にする必要があります。
単一データベースへの適用のみ: スケジューリングは、単一データベースに対してのみ実行できます。 従来のイベントスケジューラを使用して、データベース間のイベントをスケジュールしたり、他のツールと共同作業したりできません。
追跡の難しさ: スケジュールされたイベントの実行ステータス、履歴、または期間を表示できません。
O&Mの難しさ: イベントを一時停止または再実行することはできません。 イベントの実行に失敗した場合、イベントを復元することはできません。
通知を送信できない: 従来のイベントスケジューラは、テキストメッセージまたは電子メールでイベントが実行されたか、実行されなかったかを通知できません。
ソリューション: DMSタスクオーケストレーション
DMSのタスクオーケストレーション機能は、これらの問題を解決できます。 この機能は、データベースエンジンのイベントスケジューリング機能に依存しない外部オーケストレーションおよびスケジューリングシステムを提供します。 タスクオーケストレーション機能には、次の利点があります。
複数の種類のデータベースエンジンとデータベースツールをサポートします。 たとえば、データベースエンジンには、MySQL、Oracle、PostgreSQL、およびSQL Serverが含まれます。 データベースツールは、データ移行、データバックアップ、データベース間分析などの機能を提供します。 これにより、データベースとサービス間でイベントをスケジュールできます。
GUIを提供します。 ノードをドラッグし、GUIで簡単な設定を実行することで、スケジューリングタスクを作成できます。
電子メール、テキストメッセージ、DingTalk通知など、さまざまな通知チャネルを提供します。
一時停止、終了、再実行など、さまざまなO&M操作をサポートします。
サンプルデータ
この例では、adb_test
という名前のデータベースが作成されます。 orders
、finish_orders
、およびlarge_finish_orders
という名前の3つのテーブルがデータベースに作成されます。
データベースadb_testを作成します。テーブル注文を作成する (
order_id bigint not null comment'order ID ',
order_status varchar not null comment'order state',
total_price decimal(15,2) not null comment'total price ',
order_date date not null comment'orderdate',
PRIMARYキー (order_id)
);
作成テーブルfinish_orders (
order_id bigint not null comment'order ID ',
total_price decimal(15,2) not null comment'order state',
order_date date not null comment'total price ',
PRIMARYキー (order_id)
);
テーブルlarge_finish_ordersを作成する (
order_id bigint not null comment'order ID ',
total_price decimal(15,2) not null comment'order state',
order_date date not null comment'total price ',
PRIMARYキー (order_id)
);
タスクオーケストレーションプロセス
次の表に、AnalyticDB for MySQL Data Warehouse Edition (V3.0) クラスターでジョブスケジューリングを実行する方法の例を示します。 DMSのタスクオーケストレーション機能は、合計価格が AnalyticDB for MySQLデータベースの注文
テーブルからのUSD 10,000。
ステップ | 説明 |
タスクフローを作成します。 | |
作成したタスクフローに次のタスクノードを作成します。
| |
タスクを開始し、定期的に実行させます。 |
ステップ1: タスクフローの作成
- AnalyticDB for MySQLコンソールにログインします。
- ページの左上隅で、リージョンを選択します。
- 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
- Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、 .
説明DMSコンソールからAnalyticDB for MySQLデータベースに初めてログインし、データアセット管理機能を使用するときは、まずデータベースのログイン情報を設定する必要があります。 詳細については、「データベースへのログイン」をご参照ください。
制御モードが [Flexible Management] または [Stable Change] に設定されているAnalyticDB for MySQLデータベースにログインしたが、[パスワードを記憶] を選択しなかったとします。 データベースに再度ログインするときは、その後の操作を実行する前に、データベースアカウントのパスワードを入力する必要があります。 詳細については、「コントロールモード」をご参照ください。
エンドツーエンドのデータ管理機能は、インドネシア (ジャカルタ) リージョンにあるAnalyticDB for MySQLクラスターではサポートされていません。
上部のナビゲーションバーで、DTS.
左側のナビゲーションウィンドウで、 .
タスクフローを作成します。 この例では、タスクフロー名はOrder Filteringです。
[タスクオーケストレーション] ページで、新しいタスクフロー.
では、新しいタスクフローダイアログボックスで、タスクフロー名と説明をクリックし、OK.
ステップ2: タスクノードの作成
[注文フィルタリング] タブで、次のタスクノードを作成します。
注文クレンジング
左側のナビゲーションウィンドウで、[データ処理ノード]> [シングルインスタンスSQL] を選択し、[シングルインスタンスSQL] を右側のキャンバスにドラッグします。
追加したタスクノードを選択し、アイコンをクリックして、タスクノードの名前を
Order Cleansing
に変更します。タスクノードをダブルクリックするか、アイコンをクリックしてタスクノードを編集します。
[データベース] ドロップダウンリストからデータベースを選択します。
コードエディターで、次のタスクステートメントを入力し、[保存] をクリックします。
finish_ordersに挿入 select order_id,total_price,order_date 注文から ここで、order_status = 'F';
説明[自動保存] を選択した場合、SQL文は自動的に保存されます。
大量注文生成
左側のナビゲーションウィンドウで、[データ処理ノード]> [シングルインスタンスSQL] を選択し、[シングルインスタンスSQL] を右側のキャンバスにドラッグします。
追加されたタスクノードを選択し、アイコンをクリックして、タスクノードの名前を
大量注文生成
に変更します。タスクノードをダブルクリックするか、アイコンをクリックしてタスクノードを編集します。
[データベース] ドロップダウンリストからデータベースを選択します。
コードエディターで、次のタスクステートメントを入力し、[保存] をクリックします。
large_finish_ordersに挿入 select order_id,total_price,order_date finish_ordersから どこtotal_price > 10000;
説明[自動保存] を選択した場合、SQL文は自動的に保存されます。
タスクフローキャンバスで、
Order Cleansing
ノードの上にポインターを移動し、ノードの右側にある小さな円をクリックしたままにして、円からLarge Order Generationノード
に線を引きます。 このようにして、2つのタスクノードが接続されてタスクフローが形成される。
手順3: タスクフローのスケジューリングの設定
では、スケジューリング設定タスクフローキャンバスの下のセクションで、スケジューリングの有効化関連パラメーターを設定します。
説明この例では、スケジューリングタスクは、2023-02-01から2023-02-28まで毎日01:00に定期的に実行されるように設定されています。 ビジネスニーズに基づいてスケジューリングタスクをカスタマイズすることもできます。 スケジューリングパラメーターの詳細については、「タスクフローの設定」トピックの「タスクフローのスケジューリングプロパティの設定」をご参照ください。
- タスクフローを公開します。
- キャンバスの左上隅にある [公開] をクリックします。
- [公開] ダイアログボックスで、[備考] パラメーターを設定し、[公開] をクリックします。
- タスクフローのステータスを表示します。
- キャンバスの右上隅にあるをクリックします。O&Mに移動.
- ページの右側で、タスクフローが公開されているかどうかを確認します。
- 公開済み: タスクフローが公開されました。
- 未公開: タスクフローは公開されません。