Asakusa Introduction in Pyfes 2011/10/15
Asakusa Framework とは
Asakusa Framework (以下 Asakusa) を初めて知る人向けに話します.
Hadoop の概要は知っているものとします.
お前誰よ?
- id: cocoatomo
- 現職: Nautilus Technologies
- 前職: 基幹業務向けパッケージベンダーの研究開発部門っぽいとこ
Asakusa Framework とは (ロゴ)
Asakusa Framwork とは
- Hadoop 上の
- オープンソースの
- 基幹バッチ向け
- 開発, テスト, 実行フレームワーク
1つ1つ解説して行きます.
「Hadoop 上」
Asakusa Framwork (以下, Asakusa) で作れるものは Hadoop MapReduce アプリケーション
専用 DSL とデータモデル定義 DMDL から MapReduce ジョブを生成
「基幹バッチ向け」
基幹業務のバッチで要求されるのは?
- 品質
- 例外処理
- 障害対応
- 外部システム連携
- (速度は案外優先度低い)
品質
給与額が1円でもズレたら NG
システム移行で旧システムとズレたら NG
→ テストしやすい仕組みが必要
例外処理
異常値が入ってきても無視は NG
→ どこに異常値があったかの帳票を出す, とかの対応が必要
障害対応
バッチが異常終了するとマスタデータが壊れるなんて NG
→ トランザクションが必要
外部システム連携
基幹システムが単独で動くことは少ない
→ 既存の RDBMS や CSV を使った連携が必要
(速度は案外優先度低い)
時間のかかる処理は夜間バッチに回される
素の MapReduce だと……
素の MapReduce だと……
通常のバッチは複数の MapReduce ジョブで構成される
立ちはだかる問題
- 設計どうするの??
- 並列処理の結合テストは?? デバッグできるの??
- 異常値の処理用のジョブをどこに折り込むの??
- このジョブが失敗した場合, どこまで戻るの??
- HDFS と外部システムの連携は??
そこで Asakusa では
補足しておくと, Hadoop は
素晴しい分散処理フレームワーク
これがあったから基幹バッチで並列処理が現実的になりました.
まとめ
Asakusa Framework は
- 基幹バッチ開発, テスト, 運用に必要なものを備えた
- Hadoop 上のフレームワーク
です.