BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース James Phillips 氏が語る「リレーショナルから NoSQL へのデータベース移行」

James Phillips 氏が語る「リレーショナルから NoSQL へのデータベース移行」

ブックマーク

原文(投稿日:2011/12/09)へのリンク

Couchbase の共同創設者である James Phillips 氏は先日,分散ドキュメント指向とリレーショナルデータモデルとの違いと,リレーショナルから NoSQL データベースに移行する上でデータベース開発者が知っておくべきことについて プレゼンテーション を行った。InfoQ ではデータ永続性パターンについて,さらにドキュメント指向 NoSQL データベースの利点と限界について,氏から話を聞いた。

InfoQ: 先日のプレゼンテーションでは,データ永続化とデータ管理コンテキストにおける "ビッグデータ (Big Data)" と "ビッグユーザ (Big User)" の問題を取り上げていましたが,この2つの概念がどう違うのか,一方のソリューションを他方に適用するべきなのはどんな時なのか,説明して頂けますか?

James Phillips: ビッグデータ: 何かを調査する目的で非常に大量の情報を収集し,格納し,分析するニーズ。データ書き込み (情報収集時) および読み込み (情報解析時) において高い実効スループットを要する。解析を効率的に行うために,"関連するデータ" の物理的近接性を維持するように最適化されたデータ局所性モデルが必要である。通常は,少数の書き込みプロセスによるデータベースへの並列的なデータ追加と,少数の読み込みプロセスによる並列的な解析処理が実行される。

ビッグユーザ: 非常に多数の同時読み取りおよび書き込みプロセスに対して,ランダムな参照と更新をサービスするニーズ。読み込みと書き込みをサーバ数ないしスピンドル数に対して最大限に分散するため,"関連するデータ" が可能な限り分散した状態を維持するように最適化されたデータ局所性モデルを必要とする。

InfoQ: リレーショナルデータベースと比較して,NoSQL データベースで開発を行う場合のデータモデリングとアプリケーション開発の領域での主な違いは何でしょう?

James: リレーショナルデータモデル (すなわちデータモデリングの観点) では,データの正規化プロセス – "レコード" を相互関連性(リレーション)を持った多数のテーブルに分割して,データの重複を削減する – が中心になります。ドキュメント指向データモデルではデータ正規化を考える必要はないのですが,データの重複が発生してクエリモデルが確実に複雑化する場合のあることが欠点です。その一方で,データの "モデリング" ははるかにシンプルになります。現実にあるほとんどのアプリケーションは本質的に "ドキュメント中心" だからです。

InfoQ: プレゼンテーションではドキュメント指向データベースも取り上げられていました。リレーショナルデータベースよりもドキュメント指向データベースに向いているユースケースとはどのようなものでしょう?

James: ドキュメント指向データベースが優れているのは,データモデルの柔軟性 (データ管理要件が変更されてもスキーマ更新が不要) やレイテンシの低いランダム読み込みおよび書き込みを要するユースケースです。さらにデータや I/O をサーバ実機や仮想マシン間を越えて容易に拡散可能な点も,アプリケーションパフォーマンス要件の変化にインフラコストを正確に一致させる上では優れた特長です。

InfoQ: ドキュメント指向データベースでは,どのようなデータ永続化とデータ管理のアーキテクチャパターンがサポートされていますか?

James: ほとんどの NoSQL あるいはドキュメント指向のデータベースは,完全同期 (例: データがディスクあるいは他の永続的メディアに保存されて初めて書き込みを成功と認識する) からさまざまな非同期ストレージ戦略 (例: 書き込みを受理して実際にディスク書き込みを行う前に,あるいはデータのコピーは作成された時点で成功を返す) まで,多数の永続化モデルをサポートしています。

InfoQ: ドキュメント指向データベースに何らかの制限はあるのでしょうか? アプリケーションアーキテクトや開発者がこの種のデータベースを扱おうとするときには,どのようなことを考慮すべきでしょう?

James: ドキュメント指向データベースは,現時点では結合や ACID トランザクションをサポートしていません。これはドキュメントに相互依存性があるためです。このためにデータの重複が発生したり,データ変更時に複数の場所にある同じ情報を更新しなければならない,という問題の発生するケースがあります。今日の TP モニタが複数のビジネスシステムにまたがるトランザクションを実現しているのと同じように,外部にトランザクションモニタを配置するアプローチが将来的にはトランザクションギャップを埋めることでしょう。結合を実現するアプローチも同じようにいくつかあります。ただしこれらのアプローチは,一貫性の要件が緩和されない限りはコストの高いものになるかも知れません。
 

Srini Penchikala 氏は現在,セキュリティアーキテクトとして活動している。氏はソフトウェア開発管理において 17 年の経験を持っている。

この記事に星をつける

おすすめ度
スタイル

BT