エンタープライズを指向するOracle NoSQL、マルチデバイスでのデータハンドリングのための環境を整備するCouchbase、適用用途は異なるものの、IoT時代を見据えた開発を進める2つの非RDBをウォッチした。
今月はNoSQLを2つ紹介します。1つは「Oracle NoSQL Database」(以下Oracle NoSQL)です。オラクル製品との互換性に優れ、エンタープライズにおけるビッグデータと絡めたシステムに強さを発揮しそうです。もう1つはドキュメント指向のNoSQLデータベース「Couchbase」です。こちらはモバイル向けソリューションとして「JSON Anywhere」を掲げています。
2014年2月、米オラクルでOracle NoSQLおよび「Oracle Berkeley DB」の開発責任者をしているAshok Joshi氏(写真)が来日、Oracle NoSQLについてお話を直接聞く機会を得ました。Joshi氏はデータベース製品技術に関わる経験が豊富なだけではなく、データベース技術に関する特許も持っています。
NoSQLは近年のビジネス環境の変化に対応すべく、厳密な定義・設計が必要なリレーショナルデータベースとは特性が異なるデータベースの選択肢として注目を集めるようになりました。今ではすっかり、エンタープライズ用途での利用が定着してきました。年々各種NoSQL製品はそれぞれ進化してきています。
ここで、あらためて疑問が湧いてきます。初歩的な問いですが「どんなときにNoSQLを選択するのが賢いのだろうか?」ということです。今ならどちらを使ってもある程度なら使えそうな気もします。しかし、リレーショナルデータベースとNoSQLではデータ構造が根本的に異なり、そうそう簡単に乗り換えられるものではありません。どういう観点で見極めるべきなのでしょうか。
Joshi氏に聞いてみると、キモは「データ構造と拡張性」だそうです。前者については「リレーショナルデータベースは機能が豊富で、実績もあり、信頼できるデータソースとして定着しています。一方NoSQLは柔軟なデータ構造に対応できます」とのこと。
しかし、筆者としては気になりました。NoSQLの柔軟性を都合良く解釈し「テーブル設計をしたくないから(面倒だから)」という消極的な理由でNoSQLを選ぶ人もいると小耳に挟んだことがあるからです。安易にNoSQLを選ぶとしたら「問題の先送りでしかない」と指摘する人もいます。
この理由を伝えると、Joshi氏は「誰が管理するか(という問題です)」と切り出しました。
言うまでもなく、リレーショナルデータベースでは、スキーマはリレーショナルデータベースが管理します。一方、NoSQLではデータ構造が柔軟、データベース側で定義せず、アプリケーション側でスキーマを管理していきます。スキーマ構造の定義はしなくてもよいのではなく、どこかで誰かがやらなくてはならないわけです。
ですから、アプリケーション側で柔軟にスキーマを変えたい場合なら、NoSQLが有利になるということのようです。データベースの選択は、「テーブル設計やスキーマをどこで管理すれば都合がいいのか」を基準にRDBかNoSQLを考えてもいいのかもしれません。
一般的に NoSQLの場合、拡張性や可用性を担保する仕組みが既に組み込まれているのもポイントとなります。突発的に負荷が高まる、あるいは将来どれだけシステム規模が拡大するか不明なとき、NoSQLでは、水平方向にスケールできるため、拡張性には有利に働くことになりそうです。
さて一般論はさておき、オラクルのNoSQL Databaseにはどのような特徴があるのでしょうか。こちらのポイントを挙げるなら、他のオラクル製品との互換性とエンタープライズでの運用を想定した性能や機能といえます。
特に強みとなるのがエンタープライズにおけるビッグデータ処理です。ソーシャルメディアなどが提供するWebサービスAPIや、Apache Hadoopのようなデータソースにアクセスし、リアルタイムで何らかの処理するというパターンです。
エンタープライズならデータ処理は「Fusion Middleware」「Coherence」「GRAPH」を用いたり、データは「Oracle Database」や「Oracle Exadata」に集約したりします。そうしたとき、ソーシャルメディアやアプリケーションとの接点でOracle NoSQLを用いると全体的として効率良く連携できるようになります。
Oracle Databaseと組み合わせるときには「連携」というよりは「透過的」に利用できると言ってもいいかもしれません。データがOracle NoSQLにあっても、Oracle Databaseと連携していればOracle DatabaseへのSQLで透過的にOracle NoSQLのデータにアクセスできる実装になっています。Joshi氏は「今後もOracle NoSQLはオラクル製品との統合を進めていきます」と話していました。
実は一般的なNoSQLでは、性能が安定しないものもあります。ディスクへの書き込みが発生するタイミングで負荷が掛かるためです。Oracle NoSQLでは、この課題を解消すべくストレージエンジンを最適化しているため、高い性能のまま安定して稼働させることができるようになっているそうです。
その他にもOracle NoSQLは管理をシンプルにするための機能に注力しており、オンラインでのローリングアップグレードや、災害対策などデータセンターに対応した機能があるのも特徴です。現時点では、Oracle NoSQLはショッピングサイトでのデータキャプチャ、ユーザーごとのお勧めを表示するときの検索などに使われているそうです。
Copyright © ITmedia, Inc. All Rights Reserved.