拡張性の高さと高速な処理を得意とするNoSQLは、RDBのように使おうとすると失敗する。ひどい場合では、RDBよりも性能が劣り、運用の手間がかかってしまう。NoSQLの長所を生かすにはコツがある。「適用領域の判断」と「設計・開発」のフェーズに分けて、現場が直面したアンチパターンを紹介する。

 NoSQLは、SQLを使わないデータストアのこと。RDBMSが不得意だった、スケールアウトによる分散並列処理を得意とし、高速化を実現する。データ操作言語にSQLは使わず、各NoSQL製品が備えるAPIを介してデータを操作する。スキーマ定義もない。データ操作にSQLを使わないことから、NoSQL(Not only SQL、SQLだけではない)という名称になった。

 元々は、米Amazon.comや米Google、米Facebookなどの大手ネット企業が、自社のサービスを提供するために開発したデータストアだった。それらが、オープンソースなどの形式で提供され、数年前から普及し始めた。キーとバリュー(値)のセットでデータを格納するKVS(Key-Value Store)は、NoSQLの一種である。

 大手のネット企業で実績のあるソフトがオープンソースで使えることは、多くの現場にとって朗報だ。しかし、NoSQLはRDBを利用する場合と選び方や使い方が大きく異なる。RDBを置き換えて性能を高めようとしたものの、逆にRDBよりも処理が遅くなるといったことが起こっている。インターネットイニシアティブ(IIJ)の飯田拓哉氏(プラットフォーム本部 プラットフォームサービス部 プラットフォーム開発課 シニアエンジニア)は「RDBの知識や経験、常識が邪魔をすることが多い」と話す。これから導入しようとする現場は気を付ける必要がある。

 既にNoSQLを導入した現場では、NoSQLに関するアンチパターンが明らかになってきた。まず、NoSQLに向かない処理なのにRDBから置き換えようとして、失敗するケースが少なくない。NoSQLを採用する場合でも、多様な製品から最適なものを選ばないと十分な効果は得られない。DB設計のやり方をRDBの場合とは変えていく必要もある。保守・運用の仕方を考慮した実装も不可欠だ。

 以降では、「適用領域の判断」と「設計・開発」における落とし穴を解説する(図1)。順に見ていこう。

図1●NoSQLを適用する上で陥りやすいアンチパターンの例
適用領域を誤ると十分な効果が得られないことがある。設計・開発では、RDBとは異なるノウハウが求められる
[画像のクリックで拡大表示]

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。