大規模分散処理基盤プロジェクトにRubyで挑戦--まつもとゆきひろ氏
Ruby on Railsで注目を集めるRuby。開発者であるまつもとゆきひろ氏に話を聞いた。
実際に楽天が抱える購買情報がどれほどのものかは分からないが、大手ショッピングモールとして抱える情報が膨大なものであることは容易に想像がつくだろう。もちろん、そうしたデータ量を分析するのに1台のサーバでは賄いきれるものではないはずだ。となると、データを小分けにして、たくさんのサーバに計算させる方が効率的だ。
「しかも、その処理というのは典型的な処理ではないわけです。あるパターンがありますかと聞いていくという処理になります。実際には、あるパターンそのものに対して、C++みたいな言語でコンパイルして手間をかけて開発していく、ということはしたくないわけです。となると、タスクを指定して、生産性が高く、かつ分散処理もできるという方法論が出てくるわけです」
ここでの分析は、既存のビジネスインテリジェンス(BI)とも違うようだ。
「われわれがやろうとしているのは、(SQLのような)クエリに限定されないものです。たとえば、データの抽出だけじゃなくて集計もやりたい、あるいはパターンマッチなども含めて、あらゆることができるものだと考えています。データマイニングに対するクエリだけだと、ちょっと狭いものになりますから、もう少し応用範囲を広くしたいと考えています」
詰まるところ、DBではあくまでSQLを処理するものだが、SQLを表現できないパターンにRubyを使うということになるのだろうか。
「たとえばクエリの形で、ある1週間のアクセスログを、時間と年齢別と男女別で分けて、何歳の人が何時にアクセスしたかを知りたいとなったときに、SQLではできないわけですよね。しかも僕らはそれをグラフにまで落とし込めたいと思っていますから」
自分にあった分散開発のツールが欲しい
大規模分散処理のプロジェクトに関わっているまつもと氏だが、同氏は現在同じ“分散”というキーワードに関連して、分散開発に興味があるという。オープンソースの開発といえば、開発者それぞれがバラバラに散らばっていて当然だが、その開発管理の方法で同氏は苦労しているという。
「タスクの割り振りとかイシューのトラッキングとか、そういうのはやっぱり難しいんですね。毎回苦労しています。世の中にはいろいろなツールがあるんですが、どうもこうしっくりこない。自分にあったツールが欲しいなぁと。その辺に今は関心がありますね」
Rubyの開発では、バグトラッキングにRubyで開発されたリポジトリの「RubyForge」を活用、あるいはバージョン管理システム「Subversion」でリポジトリを持ったり、専用のメーリングリストも活用している。だが、それでもまだ不足だという。「今までいろいろやってみて、なかなかうまくいっていない。もう何回か試行錯誤してみたい」と思っているという。
まつもと氏はセンターリポジトリをSubversionに入れて、手元のPCには、Linuxカーネルの開発にも使われているバージョン管理システム「git」を使っているという。手元でバージョン管理をしながら、タスクやパッチセットをSubversionにアップロードするスクリプトで上げている。
- ホワイトペーパー
- 企画特集
- 話題のタグ
SQLite対応アプリのデータベースファイルを閲覧する
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
「H.264」ストリーミングのロイヤリティ無料期間が延長
マイクロソフト、「Office 2010」のRC版をリリース
仮想化をダメにするストレージの実態
御社はまだフリーの転送サービスですか?
Xbox Live インディーズゲーム開発の軌跡
新しい視点のレンタルサーバが誕生!
通販サイトのアクセス集中からの危機を救う
アンケートから見るセキュリティ対策の実態
身近な業務をCRMが変革!
事例 VMwareでデータセンターをクラウド化
利用者の理想を追求した最新レンタルサーバ
アプリケーション仮想化 3つの課題
経営統合後の事業損益構造の見える化を実現
仮想環境のバックアップは難しいのか
レガシーアプリケーションの稼働どうしてる?
DBのパフォーマンスに困ってませんか?