S-JIS[2017-12-03] 変更履歴

Asakusa CLI listサブコマンド

Asakusa Frameworkasakusa listのメモ。


概要

Asakusa CLIのlistサブコマンドは、Asakusaアプリケーションの情報を表示する。

listのサブコマンド
種類 サブコマンド 説明
バッチ batch バッチ一覧を表示する。
parameter バッチのパラメーター情報を表示する。
ジョブフロー jobflow バッチ内のジョブフローの一覧を表示する。
演算子 operator バッチ内のオペレーターの一覧を表示する。
入出力 directio バッチ内のDirect I/OのImporter/Exporterを表示する。
hive  
windgate バッチ内のWindGateのImporter/Exporterを表示する。
実行計画 plan 実行計画の情報(vertex)を表示する。

batchの例

listのbatchサブコマンドで、バッチIDの一覧が表示される。

> asakusa list batch
spark.example.summarizeSales
vanilla.example.summarizeSales

これは、ASAKUSA_HOME/batchappsの下にあるもの(の内、asakusaコマンドに対応しているバージョンのもの)が表示される。


-v(--verbose)を付けると、バッチの詳細な情報も表示される。

> asakusa list batch -v
spark.example.summarizeSales:
      class: com.example.batch.SummarizeBatch
    comment: 売上集計バッチ
vanilla.example.summarizeSales:
      class: com.example.batch.SummarizeBatch
    comment: 売上集計バッチ

バッチの日本語名は、Batch DSLの@Batchアノテーションで指定した情報。

SummarizeBatch.java:

@Batch(name = "example.summarizeSales", comment = "売上集計バッチ")
public class SummarizeBatch extends BatchDescription {
	〜
}

parameterの例

listのparameterサブコマンドで、バッチのパラメーター(引数)の情報が表示される。

asakusa list parameter バッチID
> asakusa list parameter spark.example.summarizeSales
date

> asakusa list parameter spark.example.summarizeSales -v
date:
      comment: (SalesDetailFromCsv)
      pattern: N/A
    mandatory: true

パラメーターは、Importer/Exporterのパスに使われているものが収集されるようだ。
当然、Operatorの中でBatchContextを使って取得しているパラメーターは表示されない。


Batch DSLの@Batchアノテーションでパラメーター情報を記述しておくと、parameterサブコマンドで表示される。

SummarizeBatch.java:

@Batch(name = "example.summarizeSales", comment = "売上集計バッチ", parameters = {
  @Parameter(key = "date", comment = "日付", pattern = "\\d{4}-\\d{2}-\\d{2}", required = true)
})
public class SummarizeBatch extends BatchDescription {
	〜
}

> asakusa list parameter spark.example.summarizeSales -v
date:
      comment: 日付
      pattern: \d{4}-\d{2}-\d{2}
    mandatory: true

jobflowの例

listのjobflowサブコマンドで、バッチに含まれるジョブフローの一覧が表示される。

asakusa list jobflow バッチID
> asakusa list jobflow spark.example.summarizeSales
byCategory

ジョブフローのグラフ(図)の生成(可視化)


operatorの例

listのoperatorサブコマンドで、バッチに含まれる演算子(オペレーター)の一覧が表示される。

asakusa list operator バッチID
> asakusa list operator spark.example.summarizeSales
CategorySummaryOperator#checkStore(@MasterCheck)
CategorySummaryOperator#joinItemInfo(@MasterJoin)
CategorySummaryOperator#setErrorMessage(@Update)
CategorySummaryOperator#summarizeByCategory(@Summarize)

> asakusa list operator spark.example.summarizeSales -v
com.example.operator.CategorySummaryOperator#checkStore(@MasterCheck){}
com.example.operator.CategorySummaryOperator#joinItemInfo(@MasterJoin){}
com.example.operator.CategorySummaryOperator#setErrorMessage(@Update){message:String=商品不明}
com.example.operator.CategorySummaryOperator#setErrorMessage(@Update){message:String=店舗不明}
com.example.operator.CategorySummaryOperator#summarizeByCategory(@Summarize){}

オペレーターのグラフ(図)の生成(可視化)


directioの例

listのdirectioサブコマンドで、バッチに含まれるDirect I/OImporter/Exporterの一覧が表示される。

asakusa list directio {input|output} バッチID
> asakusa list directio input spark.example.summarizeSales
master::item_info.csv
master::store_info.csv
sales::**/${date}.csv

> asakusa list directio output spark.example.summarizeSales
result/category::result.csv
result/error::${date}.csv

ベースパス::リソースパターン」という形式で表示される。


planの例

listのplanサブコマンドで、実行計画のvertexの一覧が表示される。
vertexは、処理を実行する単位(ひとつのvertexの中に複数の演算子が入る)のようなものか。

asakusa list plan バッチID
> asakusa list plan spark.example.summarizeSales -v
v0:
    label: ExternalInput(storeInfo)
    blockers: {}
    operators: -
v1:
    label: ExternalInput(itemInfo)
    blockers: {}
    operators: -
v2:
    label: ExternalInput(salesDetail)
    blockers: {v0}
    operators:
        com.example.operator.CategorySummaryOperator#setErrorMessage(@Update)
        com.example.operator.CategorySummaryOperator#checkStore(@MasterCheck)
v3:
    label: @MasterJoin:CategorySummaryOperator.joinItemInfo
    blockers: {v1, v2}
    operators:
        com.example.operator.CategorySummaryOperator#setErrorMessage(@Update)
        com.example.operator.CategorySummaryOperator#joinItemInfo(@MasterJoin)
v4:
    label: ExternalOutput(errorRecord)
    blockers: {v2, v3}
    operators: -
v5:
    label: @Summarize:CategorySummaryOperator.summarizeByCategory
    blockers: {v3}
    operators:
        com.example.operator.CategorySummaryOperator#summarizeByCategory(@Summarize)
v6:
    label: ExternalOutput(categorySummary)
    blockers: {v5}
    operators: -

「v数値」がvertexのID。
M3BPのバッチを実行すると、ログにどのvertexが実行されたか出たりする。


Asakusa CLIへ戻る / AsakusaFW目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま