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

前回は、Hadoopがどのような仕組みでスケール・アウト性を実現しているのかを述べました。また、Hadoopが基本的に、バッチ処理のスループットの向上を目的にしていることを指摘しました。Hadoopには、「できること」と「できないこと」があります。処理の性質によっては、既存のリレーショナル・データベ

清田 陽司

2010年6月18日 20:00

前回は、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つの観点からみていきましょう。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30