Asakusa Framework : 0.5.3リリースの注目点まとめ

f:id:teppei-studio:20131112202621j:plain

去年末のクリスマスイブに0.5.3がリリースされました。私がブログで書いてきた点についても、いろいろ改善がされているので、まとめてみたいと思います。

DMDLコンパイラ, DSLコンパイラ, Direct I/O実行時のエラーメッセージを改善

Modelプロパティ名の制約違反時のエラーメッセージが改善

Asakusa Framework : DMDLのハマりやすいところ - TEPPEI STUDIOで書いた点ですが、改善されています。以下の例では、プロパティ名に、ハイフンが入っている場合のエラーメッセージについて記載しています。

Before

[java] Caused by: com.asakusafw.dmdl.parser.ParseException: Encountered " <UNEXPECTED> "- "" at line 9, column 13.
[java] Was expecting:
[java]     ":" ...

After

[java] 07:26:07 ERROR file:/Users/teppei_tosa/asakusa-develop/workspace/Asakusa-FirstStep-053/src/main/dmdl/models.dmdlの解析に失敗しました
[java] com.asakusafw.dmdl.parser.DmdlSyntaxException: DMDLスクリプトが正しくありません: 名前「item-id」は小文字アルファベット、数字、アンダースコアで構成する必要があります (場所: file:/Users/teppei_tosa/asakusa-develop/workspace/Asakusa-FirstStep-053/src/main/dmdl/models.dmdl:10:9)

だいぶ分かりやすくなりました。

「出力missedは結線されていません」のメッセージが改善

Asakusa Framework : MasterJoinのハマりやすいところ - TEPPEI STUDIOで書いた点ですが、MasterJoinのマッチしなかったレコードの扱いについて実装されていない場合のメッセージが、分かりにくかったのが改善されています。

Before

[java] java.io.IOException: 実行計画の作成に失敗しました ([JoinOperator.joinedDataの出力missedは結線されていません ([JoinOperator.joinedData(operator#222237550)])])

After

[java] 11:16:59 ERROR JoinOperator#joined(@MasterJoin)の出力missedが他の演算子への入力、もしくはジョブフローの出力に接続されていません (at teppeistudio.jobflow.MainJobFlow)
[java] 11:16:59 ERROR コンパイルはエラーにより中断しました (teppeistudio.batch.MainBatch)

だいぶ分かりやすくなりました。

出力ディレクトリ重複時のエラー

Direct I/O の出力ディレクトリが重複している時に出るエラーが改善されました。

Before

[java] 20:15:16 [main] INFO  c.a.c.f.external.ExternalIoAnalyzer - teppeistudio.jobflow.MainJobFlowの入出力を検証しています
[java] 20:15:16 [main] ERROR c.a.c.flow.FlowCompilingEnvironment - 出力が別の出力を上書きします (teppeistudio.jobflow.ErrorRecordToCsv->teppeistudio.jobflow.SalesDetail2ToCsv)
[java] 20:15:16 [main] ERROR c.a.c.bootstrap.BatchCompilerDriver - コンパイルはエラーにより中断しました (teppeistudio.batch.MainBatch)
[java] java.io.IOException: フローの入出力が正しくないため、コンパイルを中止します (出力が別の出力を上書きします (teppeistudio.jobflow.ErrorRecordToCsv->teppeistudio.jobflow.SalesDetail2ToCsv))

After

[java] 13:13:36 ERROR 2つの出力のベースパスが重複しています: teppeistudio.jobflow.io.CopyOfJoinedSalesDetailToCsv[/fs053/out] <-> teppeistudio.jobflow.io.JoinedSalesDetailToCsv[/fs053/out]
[java] 13:13:36 ERROR コンパイルはエラーにより中断しました (teppeistudio.batch.MainBatch)
[java] java.io.IOException: フローの入出力が正しくないため、コンパイルを中止します (2つの出力のベースパスが重複しています: teppeistudio.jobflow.io.CopyOfJoinedSalesDetailToCsv[/fs053/out] <-> teppeistudio.jobflow.io.JoinedSalesDetailToCsv[/fs053/out])

こちらもだいぶ分かりやすくなりました。

対応プラットフォームの拡大

Asakusa Frameworkのススメ - TEPPEI STUDIOでは、「サポート対象のHadoopバージョンが少ない」と書きましたが、かなり拡大されています。

Before
f:id:teppei-studio:20140104132045p:plain
http://asakusafw.s3.amazonaws.com/documents/0.5.2/release/ja/html/product/target-platform.html


After
f:id:teppei-studio:20140104132051p:plain
http://asakusafw.s3.amazonaws.com/documents/0.5.3/release/ja/html/product/target-platform.html

個人的には、CDH4系のサポートが追加されたのが嬉しいですね。