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

AnalyticDB:DMSを使用したXIHE SQLタスクのスケジュール

最終更新日:Jun 14, 2024

AnalyticDB for MySQL Data Warehouse Edition (V3.0) およびData Lakehouse Edition (V3.0) では、Data Management (DMS) のタスクオーケストレーション機能を使用して、AnalyticDB for MySQLタスクをオーケストレーション、スケジュール、管理、および監視できます。 このトピックでは、DMSを使用してタスクを開発およびスケジュールする方法について説明します。

背景情報

  • 課題と要求: イベントスケジューリング

    MySQLイベントスケジューラなどの従来のイベントスケジューラは、データベースイベントに強力なスケジューリング機能を提供します。 ただし、これらのイベントスケジューラには次の制限があります。

    • 高い技術的要件: CREATE EVENTALTER EVENTなどのイベントの定義に使用されるSQL文の構文に精通している必要があります。 GUIで簡単な設定を実行してイベントを定義することはできません。

    • データベースエンジンへの依存: エンジンはイベントスケジューラをサポートする必要があります。 イベントスケジューラを有効にする必要があります。

    • 単一データベースへの適用のみ: スケジューリングは、単一データベースに対してのみ実行できます。 従来のイベントスケジューラを使用して、データベース間のイベントをスケジュールしたり、他のツールと共同作業したりできません。

    • 追跡の難しさ: スケジュールされたイベントの実行ステータス、履歴、または期間を表示できません。

    • O&Mの難しさ: イベントを一時停止または再実行することはできません。 イベントの実行に失敗した場合、イベントを復元することはできません。

    • 通知を送信できない: 従来のイベントスケジューラは、テキストメッセージまたは電子メールでイベントが実行されたか、実行されなかったかを通知できません。

  • ソリューション: DMSタスクオーケストレーション

    DMSのタスクオーケストレーション機能は、これらの問題を解決できます。 この機能は、データベースエンジンのイベントスケジューリング機能に依存しない外部オーケストレーションおよびスケジューリングシステムを提供します。 タスクオーケストレーション機能には、次の利点があります。

    • 複数の種類のデータベースエンジンとデータベースツールをサポートします。 たとえば、データベースエンジンには、MySQL、Oracle、PostgreSQL、およびSQL Serverが含まれます。 データベースツールは、データ移行、データバックアップ、データベース間分析などの機能を提供します。 これにより、データベースとサービス間でイベントをスケジュールできます。

    • GUIを提供します。 ノードをドラッグし、GUIで簡単な設定を実行することで、スケジューリングタスクを作成できます。

    • 電子メール、テキストメッセージ、DingTalk通知など、さまざまな通知チャネルを提供します。

    • 一時停止、終了、再実行など、さまざまなO&M操作をサポートします。

サンプルデータ

この例では、adb_testという名前のデータベースが作成されます。 ordersfinish_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: タスクフローの作成

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

手順2: タスクノードの作成

作成したタスクフローに次のタスクノードを作成します。

  • Order Cleansing: order_status=Fフィルター条件を使用して、ordersテーブルから完了した注文をフィルター処理し、結果をfinish_ordersテーブルに書き込みます。

  • 大量注文の生成: 合計価格が USDは、total_price>10000フィルター条件を使用してfinish_ordersテーブルから10,000し、結果をlarge_finish_ordersテーブルに書き込みます。

手順3: タスクフローのスケジューリングの設定

タスクを開始し、定期的に実行させます。

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

  1. AnalyticDB for MySQLコンソールにログインします。
  2. ページの左上隅で、リージョンを選択します。
  3. 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
  4. Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。
  5. 左側のナビゲーションウィンドウで、ワンストップデータ管理 > データ資産管理.

    説明
    • DMSコンソールからAnalyticDB for MySQLデータベースに初めてログインし、データアセット管理機能を使用するときは、まずデータベースのログイン情報を設定する必要があります。 詳細については、「データベースへのログイン」をご参照ください。

    • 制御モードが [Flexible Management] または [Stable Change] に設定されているAnalyticDB for MySQLデータベースにログインしたが、[パスワードを記憶] を選択しなかったとします。 データベースに再度ログインするときは、その後の操作を実行する前に、データベースアカウントのパスワードを入力する必要があります。 詳細については、「コントロールモード」をご参照ください。

    • エンドツーエンドのデータ管理機能は、インドネシア (ジャカルタ) リージョンにあるAnalyticDB for MySQLクラスターではサポートされていません。

  6. 上部のナビゲーションバーで、DTS.

  7. 左側のナビゲーションウィンドウで、データ开発 > タスクオーケストレーション.

  8. タスクフローを作成します。 この例では、タスクフロー名はOrder Filteringです。

    1. [タスクオーケストレーション] ページで、新しいタスクフロー.

    2. では、新しいタスクフローダイアログボックスで、タスクフロー名説明をクリックし、OK.

ステップ2: タスクノードの作成

  1. [注文フィルタリング] タブで、次のタスクノードを作成します。

    • 注文クレンジング

      1. 左側のナビゲーションウィンドウで、[データ処理ノード]> [シングルインスタンスSQL] を選択し、[シングルインスタンスSQL] を右側のキャンバスにドラッグします。

      2. 追加したタスクノードを選択し、1アイコンをクリックして、タスクノードの名前をOrder Cleansingに変更します。

      3. タスクノードをダブルクリックするか、アイコンをクリックして2タスクノードを編集します。

      4. [データベース] ドロップダウンリストからデータベースを選択します。

      5. コードエディターで、次のタスクステートメントを入力し、[保存] をクリックします。

        finish_ordersに挿入
         select order_id,total_price,order_date
         注文から 
         ここで、order_status = 'F'; 
        説明

        [自動保存] を選択した場合、SQL文は自動的に保存されます。

    • 大量注文生成

      1. 左側のナビゲーションウィンドウで、[データ処理ノード]> [シングルインスタンスSQL] を選択し、[シングルインスタンスSQL] を右側のキャンバスにドラッグします。

      2. 追加されたタスクノードを選択し、1アイコンをクリックして、タスクノードの名前を大量注文生成に変更します。

      3. タスクノードをダブルクリックするか、アイコンをクリックして2タスクノードを編集します。

      4. [データベース] ドロップダウンリストからデータベースを選択します。

      5. コードエディターで、次のタスクステートメントを入力し、[保存] をクリックします。

        large_finish_ordersに挿入
         select order_id,total_price,order_date
         finish_ordersから 
         どこtotal_price > 10000; 
        説明

        [自動保存] を選択した場合、SQL文は自動的に保存されます。

  2. タスクフローキャンバスで、Order Cleansingノードの上にポインターを移動し、ノードの右側にある小さな円をクリックしたままにして、円からLarge Order Generationノードに線を引きます。 このようにして、2つのタスクノードが接続されてタスクフローが形成される。

    6

手順3: タスクフローのスケジューリングの設定

  1. では、スケジューリング設定タスクフローキャンバスの下のセクションで、スケジューリングの有効化関連パラメーターを設定します。

    説明

    この例では、スケジューリングタスクは、2023-02-01から2023-02-28まで毎日01:00に定期的に実行されるように設定されています。 ビジネスニーズに基づいてスケジューリングタスクをカスタマイズすることもできます。 スケジューリングパラメーターの詳細については、「タスクフローの設定」トピックの「タスクフローのスケジューリングプロパティの設定」をご参照ください。

  2. タスクフローを公開します。
    1. キャンバスの左上隅にある [公開] をクリックします。
    2. [公開] ダイアログボックスで、[備考] パラメーターを設定し、[公開] をクリックします。
  3. タスクフローのステータスを表示します。
    1. キャンバスの右上隅にあるをクリックします。O&Mに移動.
    2. ページの右側で、タスクフローが公開されているかどうかを確認します。
      • 公開済み: タスクフローが公開されました。
      • 未公開: タスクフローは公開されません。