大規模分散処理基盤プロジェクトにRubyで挑戦--まつもとゆきひろ氏
Ruby on Railsで注目を集めるRuby。開発者であるまつもとゆきひろ氏に話を聞いた。
実際に楽天が抱える購買情報がどれほどのものかは分からないが、大手ショッピングモールとして抱える情報が膨大なものであることは容易に想像がつくだろう。もちろん、そうしたデータ量を分析するのに1台のサーバでは賄いきれるものではないはずだ。となると、データを小分けにして、たくさんのサーバに計算させる方が効率的だ。
「しかも、その処理というのは典型的な処理ではないわけです。あるパターンがありますかと聞いていくという処理になります。実際には、あるパターンそのものに対して、C++みたいな言語でコンパイルして手間をかけて開発していく、ということはしたくないわけです。となると、タスクを指定して、生産性が高く、かつ分散処理もできるという方法論が出てくるわけです」
ここでの分析は、既存のビジネスインテリジェンス(BI)とも違うようだ。
「われわれがやろうとしているのは、(SQLのような)クエリに限定されないものです。たとえば、データの抽出だけじゃなくて集計もやりたい、あるいはパターンマッチなども含めて、あらゆることができるものだと考えています。データマイニングに対するクエリだけだと、ちょっと狭いものになりますから、もう少し応用範囲を広くしたいと考えています」
詰まるところ、DBではあくまでSQLを処理するものだが、SQLを表現できないパターンにRubyを使うということになるのだろうか。
「たとえばクエリの形で、ある1週間のアクセスログを、時間と年齢別と男女別で分けて、何歳の人が何時にアクセスしたかを知りたいとなったときに、SQLではできないわけですよね。しかも僕らはそれをグラフにまで落とし込めたいと思っていますから」
自分にあった分散開発のツールが欲しい
大規模分散処理のプロジェクトに関わっているまつもと氏だが、同氏は現在同じ“分散”というキーワードに関連して、分散開発に興味があるという。オープンソースの開発といえば、開発者それぞれがバラバラに散らばっていて当然だが、その開発管理の方法で同氏は苦労しているという。
「タスクの割り振りとかイシューのトラッキングとか、そういうのはやっぱり難しいんですね。毎回苦労しています。世の中にはいろいろなツールがあるんですが、どうもこうしっくりこない。自分にあったツールが欲しいなぁと。その辺に今は関心がありますね」
Rubyの開発では、バグトラッキングにRubyで開発されたリポジトリの「RubyForge」を活用、あるいはバージョン管理システム「Subversion」でリポジトリを持ったり、専用のメーリングリストも活用している。だが、それでもまだ不足だという。「今までいろいろやってみて、なかなかうまくいっていない。もう何回か試行錯誤してみたい」と思っているという。
まつもと氏はセンターリポジトリをSubversionに入れて、手元のPCには、Linuxカーネルの開発にも使われているバージョン管理システム「git」を使っているという。手元でバージョン管理をしながら、タスクやパッチセットをSubversionにアップロードするスクリプトで上げている。
- 7人の推薦記事
- 2人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- 2日前のトップ記事
- 3日前
- 4日前
- 5日前
- 6日前
- ホワイトペーパー
- 話題のタグ
動画再生耐久レース―フル充電からどれだけ耐えた?
心当たりありませんか--あなたの上司がイヤがる5つの話し方
フォームデザイン虎の巻:複数の選択肢を提供する
フォトレポート:技術サポートの悪夢
無料の「Oracle Database XE」で高速バッチ処理:実装のポイント
Firefoxで情報をカンタン・ベンリに整理する
iPhone Safari、Acidテストでは高得点でも…… Firefoxは載らないの?:WebサイトのiPhone 3G対応問題を考える(ソフト編)
WebサイトのiPhone 3G対応問題を考える(ハード編)
フォトレポート:時代を振り返る--「MS-DOS 4」のインストール
SOAと仮想化の関係は?--常に進化を続けるBEAのミドルウェア戦略
ウェブ開発の生産性はどうしたら上がる?--MODIPHI Appsで半日で作るマッシュアップサイト(1)
JailBreakついに:PwnageTool公開
プロジェクトの進行でよくある4つのトラブル
ZDNet Japan Green IT
ZDNet Japan ホスティング特集
Techno Exchange
DELLが掲げる「新・仮想化アセスメントサービス」