大規模分散処理基盤プロジェクトにRubyで挑戦--まつもとゆきひろ氏

田中好伸(編集部)
2007-12-19 18:00:00
  • このエントリーをはてなブックマークに追加

 実際に楽天が抱える購買情報がどれほどのものかは分からないが、大手ショッピングモールとして抱える情報が膨大なものであることは容易に想像がつくだろう。もちろん、そうしたデータ量を分析するのに1台のサーバでは賄いきれるものではないはずだ。となると、データを小分けにして、たくさんのサーバに計算させる方が効率的だ。

 「しかも、その処理というのは典型的な処理ではないわけです。あるパターンがありますかと聞いていくという処理になります。実際には、あるパターンそのものに対して、C++みたいな言語でコンパイルして手間をかけて開発していく、ということはしたくないわけです。となると、タスクを指定して、生産性が高く、かつ分散処理もできるという方法論が出てくるわけです」

 ここでの分析は、既存のビジネスインテリジェンス(BI)とも違うようだ。

 「われわれがやろうとしているのは、(SQLのような)クエリに限定されないものです。たとえば、データの抽出だけじゃなくて集計もやりたい、あるいはパターンマッチなども含めて、あらゆることができるものだと考えています。データマイニングに対するクエリだけだと、ちょっと狭いものになりますから、もう少し応用範囲を広くしたいと考えています」

 詰まるところ、DBではあくまでSQLを処理するものだが、SQLを表現できないパターンにRubyを使うということになるのだろうか。

 「たとえばクエリの形で、ある1週間のアクセスログを、時間と年齢別と男女別で分けて、何歳の人が何時にアクセスしたかを知りたいとなったときに、SQLではできないわけですよね。しかも僕らはそれをグラフにまで落とし込めたいと思っていますから」

自分にあった分散開発のツールが欲しい

 大規模分散処理のプロジェクトに関わっているまつもと氏だが、同氏は現在同じ“分散”というキーワードに関連して、分散開発に興味があるという。オープンソースの開発といえば、開発者それぞれがバラバラに散らばっていて当然だが、その開発管理の方法で同氏は苦労しているという。

 「タスクの割り振りとかイシューのトラッキングとか、そういうのはやっぱり難しいんですね。毎回苦労しています。世の中にはいろいろなツールがあるんですが、どうもこうしっくりこない。自分にあったツールが欲しいなぁと。その辺に今は関心がありますね」

 Rubyの開発では、バグトラッキングにRubyで開発されたリポジトリの「RubyForge」を活用、あるいはバージョン管理システム「Subversion」でリポジトリを持ったり、専用のメーリングリストも活用している。だが、それでもまだ不足だという。「今までいろいろやってみて、なかなかうまくいっていない。もう何回か試行錯誤してみたい」と思っているという。

 まつもと氏はセンターリポジトリをSubversionに入れて、手元のPCには、Linuxカーネルの開発にも使われているバージョン管理システム「git」を使っているという。手元でバージョン管理をしながら、タスクやパッチセットをSubversionにアップロードするスクリプトで上げている。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]