コラム

よくわかるIT新発見 第6回 「注目を集め始めているNoSQLデータベースとは何か」

更新

注目を集め始めているNoSQLデータベースとは何かについてをCTCのエンジニアが解説

企業システムのオープン化とともに、その基盤としてリレーショナルデータベース(RDB)が普及しました。現在、企業が保持するデータのほとんどは、構造化されRDBに格納されていると言っても過言ではありません。ビッグデータ時代をむかえ、データの種類やデータ処理のニーズが多様化し、NoSQLデータベースが脚光を浴び始めました。

NoSQLデータベースとは

NoSQLデータベースはRDBがSQLで問い合わせるのに対して、SQL以外で問い合わせをするデータベースの総称です。

NoSQLデータベースは、Noというネガティブな語を含むことから「SQLは不要」と誤解されるのではないかとの反発が当初から多くありました。現在では「Not Only SQL」と呼ぶことで、RDBと競合したり、取って代わるものではないと理解され、「SQLだけではなく、新しいデータベース技術を利用できる」と解釈するのが一般的です。

NoSQLデータベースの特徴とRDBとの比較

近年のインターネットの発達やSNSの普及により、かつては考えられなかった規模でデータが急速に増加し、データベースを動かすサーバの性能が限界に達し始めRDBが苦手としている部分が見え始めました。例えば、RDBはトランザクション処理を確実に行うことができますが、拡張性に限界があると言われています。その際、スケールアップは1つの解決方法ですが、この手法では必ず限界がやってきます。そこで、たくさんのサーバを使ってデータを並列処理するスケールアウトの方法も浸透していますが、そもそも従来のRDBのアーキテクチャではスケールアウトに限界があります。小・中規模の分散・並列処理はできても、データの増大に合わせて柔軟に拡張していくことを考えると、複雑になり過ぎて性能が追いつかなくなるためです。そこを解決するのがNoSQLデータベースです。

図:NoSQLデータベースの特徴

NoSQLデータベースはデータの読み書きの性能を上げることにフォーカスし、RDBより簡素なデータ格納の方式をとることで単純な読み書きを並列・高速に実行でき、かつ簡単にスケールアウトできる仕組みを備えています。膨大に増え続けるデータを効率的に追加記録し、検索・参照することができ、データ構造に縛られずに柔軟なスキーマで格納可能で、事前のデータ正規化も不要です。 一方、データの更新はRDBに比べて弱く、特に排他制御や読取り一貫性のようなトランザクション処理が厳密に問われるデータの処理には向いていません。また、RDBにおけるSQLのように標準的な処理の記述法がなく、システム開発に既存のノウハウが流用できないため、開発効率や人材の確保の面でもまだ課題があります。

図:RDBとNoSQLデータベースの比較

大量のデータを効率よく処理するための仕組みとしてHadoopの活用が進んでいますが、「HadoopはNoSQLデータベースなのか?」という疑問を抱かれる方もいらっしゃるかもしれません。確かに「Not Only SQL」という広い意味ではHadoopはNoSQLデータベースのひとつと言えなくもないですが、Hadoopはデータベース製品ではなく分散処理のフレームワークですので(第5回 「ビッグデータ関連技術としてのHadoopについて」参照)、実際のところはNoSQLデータベースではありません。

主なNoSQLデータベース製品

NoSQLデータベースにはどのようなものがあるのでしょうか。NoSQLデータベース は、主に3つに分類され、それぞれ主要な製品としては以下があります。

  • キー・バリュー型 (Key Value Store) 
    キーに対してバリュー(値)という単純な構造。RDBのようなテーブルや関係性は定義しない。 例:)Amazon DynamoDB, Basho Riak, Redisなど。
  • カラム指向型
    シンプルなキー・バリュー型を少し高度にしたデータモデル。キーが一つのバリューと対になるのではなく、行に対して付けられたキーが複数の列を持つことができます。 例:)Cassandra, HBase,Big Tableなど。
  • ドキュメント指向型
    JSONやXMLといったデータ記述書式で記述されたドキュメントの形でデータを管理する。 スキーマレスでデータ構造が柔軟です。 例:)MarkLogic, MongoDB, CouchDB など。

CTCが推進するNoSQLデータベースソリューション

お客様のビッグデータ活用を支援するための製品・サービスのラインナップ拡充を行うために、CTCではNoSQLデータベースの領域で「MarkLogic Server」という新規製品の取り扱いを2014年1月から開始しました。

MarkLogic ServerはNoSQLデータベースでありながら、独自のアーキテクチャによりミッションクリティカルなシステムに耐えうる機能、エンタープライズサーチ、アプリケーションサービスがこの1台の中に統合されています。また、多くのNoSQLデータベースがOSSとして提供されているのに対し、数少ないプロプライエタリ製品でありエンタープライズレベルのサポートサービスも提供します。

非構造化データに対応したNoSQLデータベースは、ビッグデータを蓄積・格納して処理するためのデータベース技術として活用が見込まれています。CTCでは、お客様のビッグデータ活用を支援するサービス体系で、データ分析・活用のコンサルティングからシステム基盤の導入支援まで行う「CTC BD-Navi」を2013年2月からサービス提供していますが、その新しいラインナップの一つとしてMarkLogic Serverを加えてNoSQLデータベース分野を強化し、より幅広いIT基盤としての選択肢を提供します。

著者紹介

ITサービス事業グループ ソリューション事業推進本部 ビッグデータ・アナリティクス部 布施 鎮

ITサービス事業グループ
ソリューション事業推進本部
ビッグデータ・アナリティクス部
布施 鎮

  • このページについてツイッターでツイート(新しいウィンドウで開く)
  • このページをフェイスブックでシェア(新しいウィンドウで開く)

このコラムに関するお問い合わせはこちら

※記載内容は掲載当時のものであり、変更されている場合がございます。