検索
連載

デジタル変革とデータベースのスケーラビリティNoSQLベストプラクティス(5)(2/2 ページ)

本連載では、「NoSQLデータベースの今」を正しく理解し、ビジネス躍進の実現に向けて対策していくための「ベストプラクティス」を掲示していきます。今回は「デジタル変革の時代におけるデータベースのスケーラビリティ」を説明します。

Share
Tweet
LINE
Hatena
前のページへ |       

リレーショナルデータベースは進化している、だがバラ色ではない

 こうした懸念事項に対応するため、リレーショナルデータベースのベンダーはさまざまな改善を行った製品を市場に導入しています。現在では、リレーショナルデータベースの進化により、従来よりも複雑なアーキテクチャを使用できるようになりました。これは一般的に「マスター/スレーブ」モデルを備え、追加サーバを「スレーブ」として並列処理し、データのレプリケーションを行い、複数のサーバ/ホストに分割・分散したデータを処理して、マスターサーバのワークロードを軽減します。

 共有ストレージ、インメモリ処理、レプリカの有効活用、分散キャッシュをはじめとしたその他の機能強化や新しいアーキテクチャにより、リレーショナルデータベースの拡張性は確実に向上しています。しかし、単一障害点(システム)を見つけることは、難しいことではありません(例えば、Oracle RACはクラスタ認識型のファイルシステムを使用する「クラスタ化」リレーショナルデータベースですが、依然として共有ディスクサブシステムに依存しています)。また、通常こうしたシステムはコストが高く、データウェアハウスを1つ立ち上げると、簡単に百万ドル以上かかります。

 リレーショナルデータベースの機能強化には、トレードオフもあります。例えば、データをリレーショナルデータベースで分散する際、パフォーマンスを維持するために、通常は事前定義されたクエリを利用します。つまり、パフォーマンスのために柔軟性が犠牲にされます。

 また、リレーショナルデータベースはその設計上、縮退ができません。データがいったん分散された後に容量を追加した場合、そのデータの「分散をやめて元に戻す」ことはほぼ不可能です。

NoSQLデータベースは拡張で有利

 NoSQLデータベースは、シングルサーバアーキテクチャに制約されることなく、分散システム上で大規模拡張できるよう設計されています(通常は数十GBではなく数百TB)。NoSQLデータベースは「水平拡張(スケールアウト)」です。つまり、複数のサーバを連携して実行し、各サーバが負荷を分担します。


NoSQLデータベースは複数サーバへの分散による負荷分散が、設計に組み込まれている

 このアプローチを用いて、NoSQLデータベースは数百台のサーバ、数ペタバイトのデータ、数十億件のドキュメントを扱える他、毎秒数万件のトランザクションを処理できます。さらにこれら全てを、あらゆる環境(=クラウド向けに最適化された環境)において低コストのコモディティ(廉価な)ハードウェアを使用して実行できます。もう1つの利点として、あるノードに障害が発生しても他のノードがワークロードを引き受けるため、単一障害点がありません。

 大規模な拡張は素晴らしいものですが、さらに重要なのは「弾力的な拡張性」(エラスティシティ)です。NoSQLデータベースの全てに弾力的な拡張性が備わっているわけではありませんが、例えばMarkLogicには、クラスタ内でノードを迅速かつ簡単に追加・削除できる独自のアーキテクチャがあります。これはデータの複雑な分散やアーキテクチャによる回避策などではなく、ノードの追加や削除が行われるとデータがクラスタ全体に自動的にリバランス(再分配)されるようになっています。

筆者紹介

マット・アレン(Matt Allen)

photo

MarkLogic 米国本社プロダクトマーケティングマネージャー/ディレクター。MarkLogicのあらゆる機能とメリットに関するマーティング活動を、業界の別なく行う。製品/エンジニアリングのチームとセールス/マーケティングの間を取り持ち、MarkLogicに関する教育活動および啓蒙活動のためのコンテンツやイベントを担当する


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る