MaxComputeでは、Azkabanを使用してジョブをスケジュールできます。 これにより、高周波データ分析を効率的に完了できます。 このトピックでは、Azkabanを使用してMaxComputeクライアントでコマンドを実行してSQLジョブをスケジュールする方法について説明します。
背景情報
Azkabanは、Command、Hadoop MapReduce、Hive、Spark、Pigジョブなど、さまざまな種類のジョブをスケジュールするために使用されるシステムです。 最も一般的に使用されるジョブはコマンドジョブです。 Azkabanでは、カスタムプラグインを使用することもできます。 Azkabanの詳細については、「Azkaban」をご参照ください。
ジョブをスケジュールするには、これらのジョブをスケジュールするために必要なファイルをZIPファイルにパッケージ化する必要があります。 ファイルには、テーブルの作成、データのインポート、およびデータの照会用のソースデータファイルとスクリプトファイルが含まれます。 次に、ZIPファイルをAzkabanにアップロードします。
このトピックでは、Azkabanのジョブスケジューリング機能を使用して、テーブルの作成、データのインポート、およびデータのクエリ用のSQLロジックを実装する方法について説明します。 ジョブをスケジュールするワークフローと, ジョブごとに使用するジョブファイルおよびスクリプトファイルを次の図に示します。
前提条件
MaxComputeジョブをスケジュールする前に、次の条件が満たされていることを確認してください。
MaxComputeクライアントがダウンロードされ、インストールされます。
MaxComputeクライアントのインストールと設定方法の詳細については、「MaxComputeクライアントのインストールと設定」をご参照ください。
Azkabanをダウンロードしてインストールします。
詳細については、「入門」をご参照ください。
手順
ステップ1: 必要なファイルを準備し、ZIPファイルにパッケージ化する.
ジョブのスケジューリングに必要なソースデータファイルとスクリプトファイルを準備し、ZIPファイルにパッケージ化します。
ステップ2: AzkabanにZIPファイルをアップロードする.
Azkabanプロジェクトを作成し、プロジェクトを使用してZIPファイルをAzkabanにアップロードし、ジョブスケジューリングワークフローを作成します。
ジョブスケジューリングワークフローを実行します。
ワークフローの実行結果を照会します。
ステップ1: 必要なファイルを準備し、ZIPファイルにパッケージ化する
必要なファイルを準備し、ZIPファイルにパッケージ化します。
このトピックでは、次のファイルが必要です。
ソースデータファイル。 このファイルはTXT形式です。 このトピックでは、emp.txtファイルを準備します。 このファイルには、次のデータが含まれます。
7369,SMITH,CLERK,7902,1980-12-17 00:00:00,800,,20 7499,ALLEN,SALESMAN,7698,1981-02-20 00:00:00,1600,300,30 7521,WARD,SALESMAN,7698,1981-02-22 00:00:00,1250,500,30 7566,JONES,MANAGER,7839,1981-04-02 00:00:00,2975,,20 7654,MARTIN,SALESMAN,7698,1981-09-28 00:00:00,1250,1400,30 7698,BLAKE,MANAGER,7839,1981-05-01 00:00:00,2850,,30 7782,CLARK,MANAGER,7839,1981-06-09 00:00:00,2450,,10 7788,SCOTT,ANALYST,7566,1987-04-19 00:00:00,3000,,20 7839,KING,PRESIDENT,,1981-11-17 00:00:00,5000,,10 7844,TURNER,SALESMAN,7698,1981-09-08 00:00:00,1500,0,30 7876,ADAMS,CLERK,7788,1987-05-23 00:00:00,1100,,20 7900,JAMES,CLERK,7698,1981-12-03 00:00:00,950,,30 7902,FORD,ANALYST,7566,1981-12-03 00:00:00,3000,,20 7934,MILLER,CLERK,7782,1982-01-23 00:00:00,1300,,10 7948,JACCKA,CLERK,7782,1981-04-12 00:00:00,5000,,10 7956,WELAN,CLERK,7649,1982-07-20 00:00:00,2450,,10 7956,TEBAGE,CLERK,7748,1982-12-30 00:00:00,1300,,10
テーブルを作成し、データをアップロードするためのスクリプトファイル。 このファイルはSQL形式です。 このトピックでは、upload.sqlファイルを準備します。 このファイルには、次の内容が含まれます。
drop table if exists azkaban_emp; create table azkaban_emp (empno bigint, ename string, job string, mgr bigint, hiredate datetime, sal bigint, comm bigint, deptno bigint) lifecycle 1; tunnel upload emp.txt azkaban_emp;
データを照会するためのスクリプトファイル。 このファイルはSQL形式です。 このトピックでは、cat_data.sqlファイルを準備します。 このファイルには、次の内容が含まれます。
select * from azkaban_emp;
ジョブを開始するためのファイル。 このファイルはジョブ形式です。 このトピックでは、start.jobファイルを準備します。 このファイルには、次の内容が含まれます。
#start type=command command=echo 'job start'
ジョブデータをアップロードするためのファイル。 このファイルはジョブ形式です。 このトピックでは、upload_data.jobファイルを準備します。 このファイルには、次の内容が含まれます。
#upload_data type=command dependencies=start command=D:/odpscmd_public/bin/odpscmd.bat -f 'upload.sql'
command
は、MaxComputeクライアントのローカルインストールディレクトリを示します。 このトピックでは、D:/odpscmd_public/bin/odpscmd.bat
を使用します。ジョブデータを照会するためのファイル。 このファイルはジョブ形式です。 このトピックでは、mc.jobファイルを準備します。 このファイルには、次の内容が含まれます。
#mc.job type=command command=D:/odpscmd_public//bin/odpscmd -f 'cat_data.sql' dependencies=upload_data
command
は、MaxComputeクライアントのローカルインストールディレクトリを示します。 このトピックでは、D:/odpscmd_public/bin/odpscmd.bat
を使用します。
準備したファイルをZIPファイルにパッケージ化します。
このトピックでは、上記のファイルはdemo1.zipファイルにパッケージ化されています。 demo1.zipファイルのファイルを次の図に示します。
ステップ2: AzkabanにZIPファイルをアップロードする
Azkabanにログインします。
詳細については、「UserManager」をご参照ください。
Azkabanプロジェクトを作成します。
Azkabanプロジェクトの作成方法の詳細については、「プロジェクトの作成」をご参照ください。
手順1で生成されたZIPファイルをAzkabanプロジェクトにアップロードします。
ZIPファイルをアップロードする方法の詳細については、「プロジェクトのアップロード」をご参照ください。 ZIPファイルがアップロードされた後、[グラフ] タブでワークフローを表示できます。 ワークフローを表示する方法の詳細については、「フロービュー」をご参照ください。
ステップ3: ワークフローを実行する
ワークフローの作成後、右上隅にある [フローのスケジュール /実行] をクリックします。 表示されるダイアログボックスで、[フロービュー] パネルの [実行] をクリックしてジョブをスケジュールします。
ワークフローの実行方法の詳細については、「フロービューの実行」をご参照ください。
手順4: ワークフローの実行結果を照会する
ワークフローの実行後、[実行] ページの [ジョブリスト] タブで各ジョブの実行結果を表示できます。 [ジョブリスト] タブでジョブを検索し、[詳細] 列の [詳細] をクリックして、このジョブの詳細を照会することもできます。
ワークフローの実行結果を表示する方法の詳細については、「実行」をご参照ください。