「データのライフ・サイクル」で考えるHadoopの使いどころ

2010年6月18日(金)
清田 陽司

前回は、Hadoopがどのような仕組みでスケール・アウト性を実現しているのかを述べました。また、Hadoopが基本的に、バッチ処理のスループットの向上を目的にしていることを指摘しました。

Hadoopには、「できること」と「できないこと」があります。処理の性質によっては、既存のリレーショナル・データベース管理システム(RDBMS)や、最近注目されているKey-Value Store(KVS)型データベースなどが適していることもあります。

今回は、RDBMSが果たしている役割とニーズの変化を踏まえながら、「データのライフ・サイクル」に着目して、RDBMS、Hadoop、KVSの3者をどのように使い分けていくべきかを解説します。

RDBMSが果たしている役割

RDBMSは、米IBMの研究所に勤務していたエドガー・F・コッドが1970年に発表した、「関係モデル」というデータ・モデルを採用したデータベース・システムです。関係モデルは、「あらゆるデータを表形式で表現する」という前提に立ったモデルで、多くの種類のデータを扱うことができます。

RDBMSは、その40年近い歴史の中で、ビジネスに活用するために必要とされる機能が次々と実装されてきました。まさに、現代の情報システムのインフラとしての役割を果たしています。以下では、インフラとして、どのような機能を備えているのかを整理してみましょう。

トランザクション処理

データベースを更新する際に、矛盾なく処理を行うための機能です。銀行口座間の資金移動を例にとって考えてみましょう。

Aさんの銀行口座に今100万円の残高があるとします。Aさんの口座から50万円をB社の口座に振替入金する場合、以下の3つの処理が連続して行われます。

  • (1)Aさんの口座残高が50万円以上あるかをチェックする処理
  • (2)Aさんの口座残高から50万円を差し引く処理
  • (3)B社の口座残高に50万円を足す処理

もし(3)の処理にエラーが発生した場合、(2)の処理とあわせて取り消し処理を行わないと、50万円がどこかに消えてしまいます。また、(1)の処理の直後にAさんがATM(現金自動預け払い機)から60万円を引き出したとすると、口座残高が40万円しかないにもかかわらず、50万円の引き落とし処理が実行されてしまいます。

トランザクション処理は、このようなデータの矛盾を防止します。

インデックス

データベース中にある特定のデータを、高速に検索するための機能です。

数百万件ものレコードが登録されているテーブルから1件のレコードを検索する場合、1件づつ照合していては非常に時間がかかってしまいます。インデックスをあらかじめ作成しておくことによって、一瞬で必要なレコードを検索することができます。

インデックスは、「ハッシュ法」「Bツリー法」などの賢いアルゴリズムを使って、高速な検索を実現しています。

ブラック・ボックス化

第1回で述べたように、インフラには「複雑な仕組みをブラック・ボックス化して簡単に利用できるようにする」という性質があります。

トランザクション処理やインデックスの機能を実現するための仕組みは非常に複雑ですが、RDBMSではこれらの機能をブラック・ボックス化しており、SQL言語のみで利用できるようになっています。

RDBMSの利用者は、SQL言語の使い方をマスターするだけで、これらの機能の恩恵を受けることができます。

RDBMSの発展の歴史は、コンピュータ・システムがビジネスの現場に普及していく上で必要とされる機能を次々と実現していった歴史といってもよいでしょう。現在のコンピュータ・システム開発は、RDBMSを抜きにして考えることはできなくなっています。

RDBMSをコンピュータ・システムの基幹部品として採用するということは、RDBMSの長所だけでなく短所も同時に受け入れることになります。例えば、多くの機能を実現すると、ある程度性能が低下します。しかし、さまざまな機能が1つのシステムとしてブラック・ボックス化されているため、必要ではない機能を切り離すことが難しくなっています。

Hadoopという新たなインフラの活用を検討する際には、RDBMSが果たしてきた役割がどのような変化にさらされているのかを把握することが、大きなヒントになります。以下では、データベースに起こっている変化を、「定型処理と非定型処理」、「リアルタイム処理とバッチ処理」という2つの観点からみていきましょう。

株式会社リッテル 上席研究員 兼 東京大学情報基盤センター 助教

情報検索システムの研究者。情報リテラシーの向上に役立つサービスの実現を目指し、自然言語処理技術のアプリケーション、Web情報と図書館情報の融合などのテーマに取り組んでいる。Wikipediaやブログなどの膨大なデータ処理にHadoopを活用している。そのノウハウを国内法人向け Hadoopセミナーにて公開中。京都大学大学院情報学研究科博士課程修了。博士(情報学)。
http://www.littel.co.jp/
http://twitter.com/kiyota_yoji

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています