同氏によれば、そもそもHadoopは基本的にBIを前提にしている仕組みなので、足りない部分が非常に多いシステムだという。
「そもそも大規模開発の手法がなく、MapReduceを素で書ける人がほとんどいないということに加え、テストツールも貧弱で、運用に至ってはほとんど考えられていない。加えて基幹業務で求められるデータの種類の多さやデータフローの複雑さへの対応を苦手としている」(神林氏)
この開発におけるHadoopの欠点を上位層で解決するのが、オープンソースの「Asakusa Framework」だ。ノーチラス・テクノロジーズが主体となって開発しており、現在バージョン0.2.3が公開されている。
「上位の開発方法論から実装フレームワーク、コンパイラ、データモデリング、テストツール/運用連携まで含む“フルスタック”のフレームワーク」(神林氏)という謳い文句の通り、Hadoopを基幹業務で効率的に使うためのツールがすべて揃っている。
Asakusa Frameworkのコアとなっているのは独自DSLである「Asakusa DSL」だ。最大の特徴は開発者がMapReduceを知らなくても、業務バッチが書ければOKという点である。
Asakusa DSLは3種類のDSL(Batch DSL、Flow DSL、Operator DSL)から構成されており、Javaベースのデータフローを意識したDSLであるため、設計通りに実装を行うことが非常に容易になっている。
「DSLだと余計なことを書かずに済むため、設計をきちんとやると、実装バグはほとんど出ない。設計通り実行できるというのは実は非常に大きなメリット」(神林氏)
このほかにもデータモデル管理の「DMDL」、自動テストサポートを行う「Test Driver」、外部システム連携を行う「ThunderGate(MySQLと連携)」「WindGate(任意のRDBと連携)」バッチ実行処理を行う「Experimental Shell Script」「YAESS」といった周辺ツールも充実している。
“バッチにしたら負け”と言っている時点で負け
最後に「Hadoop/Asakusa Frameworkで基幹業務を行う場合」のまとめとして、神林氏は「バッチだけを外出しすることも十分に可能なので試してみることをおすすめする。Asakusaを使えばデータベースサーバシステムはWindowsでも可能。既存システムに手を入れる必要はない」と語る。冒頭に挙げたように、ディスクIOがボトルネックになっているシステムにHadoopを適用すれば、その処理効率はおそろしく向上すると断言する。
ただし「すべてのことをHadoopで解決するという姿勢はもちろん間違い」とする。「そもそもバッチ処理なので、スループットを上げるならHadoopは効果がある。ただしレイテンシ低減をHadoopに求めるのは無理。バッチでやるところとオンラインでやるところはそれぞれ別のシステムで追い求めるべき。“バッチにしたら負け”と言っている時点で負けです。また、Hadoop開発はアジャイルには向かない。丁寧なウォーターフォール型が基本」とし、安易な流行への便乗に警鐘を鳴らしている。
ビッグデータの活用に傾きがちなHadoopを基幹業務で使い倒す——Hadoopの知られざる得意分野を実感させられた内容だった。
Keep up with ZDNet Japan
ZDNet JapanはFacebookページ、Twitter、RSS、Newsletter(メールマガジン)でも情報を配信しています。現在閲覧中の記事は、画面下部の「Meebo Bar」を通じてソーシャルメディアで共有できます。