Azkabanは、複雑な依存関係を含むワークフローを作成、実行、および管理するために使用できるバッチワークフロージョブスケジューラです。 Azkabanを使用して、AnalyticDB for MySQLのXIHE SQLジョブをスケジュールできます。
前提条件
AzkabanがインストールされているサーバーにMySQLクライアントがインストールされています。詳細については、MySQLドキュメントをご参照ください。
Azkabanがインストールされています。詳しくは、のAzkabanドキュメントをご参照ください。
Azkabanを実行するサーバーのIPアドレスが、AnalyticDB for MySQLクラスターのIPアドレスホワイトリストに追加されます。 詳細については、「ホワイトリストの設定」をご参照ください。
データ準備
AnalyticDB for MySQLクラスターで、azkaban_testという名前のデータベースを作成します。 データベースで、azkaban_test.namesという名前のテーブルを作成し、テストデータをテーブルに挿入します。 例:
-- Create a database.
CREATE DATABASE azkaban_test;
-- Create a table.
CREATE TABLE azkaban_test.names (
id BIGINT,
name STRING
);
-- Insert data into the table.
INSERT INTO azkaban_test.names VALUES(1, 'Li'), (2, 'Yang');手順
ワークフローファイルを作成します。
ワークフローフォルダを作成します。 フォルダー内のジョブを開始、クエリ、および終了するスクリプトを作成します。
ジョブを開始するスクリプト:
#start type=command command=echo 'job start'ジョブを照会するスクリプト:
type=command dependencies=start command=mysql -hamv-bp165vrm0g8s****.ads.aliyuncs.com -utest -padb14**** -P3306 -e "create table azkaban_test.duplicated_names as select * from azkaban_test.names"パラメーター:
-h: AnalyticDB for MySQLクラスターのエンドポイント。 AnalyticDB for MySQLコンソールにログインし、[クラスター情報] ページに移動してエンドポイントを表示します。
-u: AnalyticDB for MySQLクラスターのデータベースアカウントの名前。
-p: AnalyticDB for MySQLクラスターのデータベースの名前。
-P: AnalyticDB for MySQLクラスターのポート番号。 値を3306に設定します。
-e: SQL文。
ジョブを終了するスクリプト:
#end type=command dependencies=exec_query command=echo 'job end'
ワークフローフォルダをZIP形式で圧縮します。
プロジェクトを作成し、手順1で作成したワークフローファイルをアップロードします。
Azkabanコンソールにログインします。 上部のナビゲーションバーで、[プロジェクト] をクリックします。
ページの右上隅にある [プロジェクトの作成] をクリックします。
[プロジェクトの作成] ダイアログボックスで、[名前] と [説明] パラメーターを設定し、[プロジェクトの作成] をクリックします。
ページの右上隅にある [アップロード] をクリックします。
[プロジェクトハエのアップロード] ダイアログボックスで、ワークフローファイルを選択し、[アップロード] をクリックします。
ワークフローを実行します。
[プロジェクト] ページで、[フロー] タブをクリックします。
[フローの実行] をクリックします。
[実行] をクリックします。
[フロー送信済み] メッセージで、[続行] をクリックします。
ワークフローの詳細を表示します。
上部のナビゲーションバーで、[実行] をクリックします。
[最近完了] タブをクリックします。
ワークフローの実行IDをクリックします。 [ジョブリスト] タブをクリックして、各ジョブの詳細を表示します。
[ログ] をクリックして、ジョブログを表示します。