[最前線]

データベースの新しいトレンド、NoSQL製品の可能性を理解する

クラウドを生かすオープンソース

2011年3月14日(月)西片 公一

クラウドコンピューティングの広がりは、これまで一般的だった3階層のWebシステムに課題を突き付けている。 そうした中、急速に注目を集めているのが、柔軟な拡張性を持つ「NoSQL」と呼ばれるデータベース技術だ。 米アマゾン・ドット・コムや米フェイスブックといった大規模なサービス事業者が独自に開発して、 オープンソースとして公開している新たなデータベース技術は、リニアな性能向上を実現する高い拡張性を持つ。 本稿ではNoSQLを特徴によって分類し、どういう用途に向くかを整理すると共に、NoSQLの機能や性能を紹介する。

※本記事は野村総合研究所発行の「ITソリューションフロンティア2010年12月号 通巻324号」の記事に一部加筆・編集して掲載しています。

 従来、一般的なWebシステムはWebの3階層と呼ばれる構成が主流だった。周知の通り、3階層は、Webブラウザを用いたインタフェースをつかさどる「プレゼンテーション層」、Webアプリケーションを実装する「ビジネスロジック層」、データを格納する「データベース層」の3階層に分けてシステムを構成するものである。3階層の構成を採ることにより、システムの柔軟な変更を可能にした。

NoSQL登場の背景
RDBMSの課題解消を目的に開発

 しかし、このアーキテクチャもサービス規模の急拡大によって限界に近付きつつある。プレゼンテーション層とビジネスロジック層はスケールアウト(サーバーの増設による拡張)が容易なのに対して、既存のRDBMS(リレーショナルデータベース管理システム)によって作られたデータベース層は基本的にスケールアウトが困難なためである。

 複数のサーバーから同時にデータベースを操作できるOracleのRAC(Real Application Clusters)構成のように、RDBMSでもスケールアウトが可能なものもある。だが、現実問題としては、スケールアウトの規模は数倍程度が限界。データベースの内容を複数のアプリケーションサーバーに分散してキャッシュする仕組み「分散キャッシュ」をRDBMSの前に配置する方法もあるが、それもクラウドコンピューティング規模になると、同期の遅延や運用の複雑さが実用的な範囲を超える。

 このような既存データベースの課題から、米アマゾン・ドット・コムや米フェイスブックなどをはじめとする大規模なサービス事業者が高い拡張性を備えたデータベースシステムを独自に開発。自社サービスに適用するのと共に、オープンソースとして公開するようになった。

 RDBMSがSQLという標準言語によってデータベースを操作するのに対して、これらの新しいデータベースはSQLを用いない。そのため「SQLに取って代わる」という意味合いで、新しいデータベースは「NoSQL」と呼ばれている。ただし、現実にはRDBMSが得意でない部分で選択的に利用されるケースが多いことから、最近では「NoSQL」ではなく「Not only SQL」という意味を持つという考え方もある。

NoSQLの分類
注目度が高まる「カラム型」

NoSQLとは具体的にどのようなものだろうか。NoSQLはRDBMSの弱点を補完するものとして、広い意味での非関係モデルに属するデータストア(データ保存の仕組み)を利用したデータベース技術とされる。NoSQLとRDBMSの具体的な違いを比較したのが表1である。

表1 NoSQLとRDBMSの主な違い
表1 NoSQLとRDBMSの主な違い(画像をクリックで拡大)

NoSQLはRDBMSと比較して拡張性、耐障害性に優れている。その反面でデータの一貫性に関して、多くは結果整合(一時的に一貫性が厳密に維持されていない状態もあること)に緩和されている。

NoSQL製品の種類は非常に多く、明確に分類できるわけではないが、データモデルの違いによって大まかに分類すると図1のようになる。単純キーバリュー型に始まり、アクセスインタフェースの拡張に伴ってカラム型やドキュメント型へと順次、派生してきた。図1ではこれらの分類と併せて、各モデルの特徴や利用シーンなどについてもまとめている。

図1 NoSQLデータベースの分類と特徴
図1 NoSQLデータベースの分類と特徴(画像をクリックで拡大)

単純キーバリュー型は、ショッピングサイトのショッピングカートのように更新・検索が1つのキーに限定されている場合に利用される。「キー」とは情報の組を一意に識別するための情報で、その情報の内容が「バリュー」である。

また、カラム型はキーが1つまたは2つ程度に固定的である場合に利用される。ドキュメント型は完全に構造化されていないが類似したデータ構造を持つデータ(非構造化データ)の更新・検索に適している。

NoSQL製品の中でいま最も注目されており、採用事例も増えているのが「Cassandra」だ。Cassandraはフェイスブックが開発したもので、Apacheソフトウェア財団へ寄贈されたオープンソースである。そしてCassandraは次のような特徴を持っている。

  1. SPOF(Single Point of Failure:単一障害点。その個所が故障するとシステム全体が障害を受けるような個所)がない
  2. リッチなデータモデル(データ構造が柔軟で複雑なデータ管理が可能)
  3. 一貫性制御の自由度(結果整合か一貫性保証かをコントロール可能)
  4. リニアな拡張性(ノード数の増加による性能劣化がない)
この記事の続きをお読みいただくには、
会員登録(無料)が必要です
  • 1
  • 2
バックナンバー
最前線一覧へ
関連キーワード

NoSQL / 野村総合研究所 / OSS

関連記事

Special

-PR-

データベースの新しいトレンド、NoSQL製品の可能性を理解するクラウドコンピューティングの広がりは、これまで一般的だった3階層のWebシステムに課題を突き付けている。 そうした中、急速に注目を集めているのが、柔軟な拡張性を持つ「NoSQL」と呼ばれるデータベース技術だ。 米アマゾン・ドット・コムや米フェイスブックといった大規模なサービス事業者が独自に開発して、 オープンソースとして公開している新たなデータベース技術は、リニアな性能向上を実現する高い拡張性を持つ。 本稿ではNoSQLを特徴によって分類し、どういう用途に向くかを整理すると共に、NoSQLの機能や性能を紹介する。

PAGE TOP