【IoT用語集】No SQL データベースとは?

はじめに

No SQL データベースとは、リレーショナルデータベース以外のデータベースをさします。No SQL データベースは、Not Only SQLデータベースのことであると解釈されており、ビッグデータの時代に大量のデータを高速に読み書きすることができる構造を持っています。

No SQL データベースの例としては、AWSの標準データベースであるDynamo DBやJSONの標準DBとも言われるMongo DB、グラフ型のNeo4jなどアーキテクチャも志向もさまざまのものがありますが、下記にあげる特徴はおおむねNoSQLデータベースに共通するものです。

リレーショナルデータベースとの比較

リレーショナルデータベースの代表であるSQLデータベースは、テーブル・スキーマといった「表」に配列された一定の「属性」のあるデータをストアし、検索の際には「属性」にマッチさせることにより呼び出す構造を持っています。

「属性」により、時系列・論理で一貫性のあるデータ呼び出しも可能になっています。こうした設計思想でできているのが、オラクルデータベースや、オープンソースのMySQL、マイクロソフトのSQLサーバといったリレーショナルデータベースであり、言語としては、SQL言語が使われています。

しかし、SQLのデータモデル・SQL言語は、大量・日々変化するデータを扱うには不便であり「データを表に合わせる」ことを労働集約的に行わないと使いこなせないというデメリットがあります。

現に、IT部門の多くの作業は、データをテーブルに合わせる作業に費やされます。「表」は柔軟性を持っておらず、データの配列・長さを一定にしていかないとデータの入力・呼び出しができません。

多くのデータをIoT機器で収集し、分析をあとで行い、付加価値の高いサービスを提供するビッグデータの時代にさまざまな長さ・配列を持ったデータをテーブルに合わせて扱うのは、時間的にもコストにも限界があるのです。

IoT時代のデータベース=No SQLデータベース

そこで、「表」ではない形式でデータを読み込み、呼び出す自由なデータベースが開発されています。「表」を利用せず、データを読み込むために使われるデータフォーマットが自然言語に近いJSONやタグでデータを交換できるXMLでこれらを受け入れるデータベースがNo SQLデータベースです。

もちろん、データ相互に時系列的・論理的一貫性のあるトランズアクション処理が必要な場合は、今までと同様、リレーショナルDBを使う必要があります。

たとえばネットショップは、SQLサーバを使いマーケティング用のビッグデータの処理はとりあえずデータを取得・ストアしておくためにNoSQLデータベースを利用する、といったようにデータベースもデータに合わせて使い分ける時代となっています。

No SQLデータベースの特徴 大量・長いデータを、高速・分散処理

データ長と処理のスピードについてもNo SQLデータベースは、1つひとつが長いデータをシステムに過度な負荷をかけず、大量に早く処理して呼び出せるという特徴があります。

「表」として、1つのデータテーブルに多くのデータを載せていることによりデータを集積された形でストアするリレーショナルデータベースは、テーブル単位の処理をCPUに行わせます。

CPUにテーブル単位で負荷がかかるので、1つあたり非常に長いデータを処理しているのと同じことになります。また、通信ネットワークも一つのテーブル単位での通信を行うとすれば時間がかかります。

長いデータを処理するのにテーブル単位でなければ、そして、「表」という関係性を崩してしまえば、CPUの負荷・通信ネットワークの負荷もそれほどではありません。こうしたテーブルをあたかもばらばらに処理する「分散処理」とデータの長さと速さがNo SQLデータベースのメリットであり、共通の機能ということができます。

No SQLデータベースのデータモデルとアーキテクチャ

① データモデル

  • キー・バリュー型
    バリューごとのデータモデルをストアします。
  • カラム志向型
    列単位のデータモデルをストアします。
  • グラフ型
    ノード・リレーションシップ・プロパティによって定まるデータを単位とし、グラフデータをストアします。
  • ドキュメント志向型
    JSONやXMLのような構造をもったドキュメントを単位として、データをストアします。

② アーキテクチャ 
「クラスタ」単位でデータを管理するのが各アーキテクチャ共通の特徴です。

  • マスタ型
    クラスタ単位でデータを管理しますが、分散データベースクラスタのうちメタ情報でデータを管理する「マスタ」が存在し、マスタの処理によってデータを呼び出します。
  • P2P型
    マスタ型と違って、クラスタはすべて等価であるため各ノードからデータを等価に呼び出せます。
  • イネ―ブラ型
    上記の型を組み合わせてデータを呼び出します。

まとめ

SQLデータベースの登場は、データベース界の一大イノベーションでした。

しかし、IoTの時代・ビッグデータの時代を迎え、No SQLデータベースの登場をとらえて、二度目の破壊的イノベーションが起ころうとしているとも言われます。

あたかも対立するように見られるこれらのデータベースですが、上記に見たようにIoTにより収集されるビッグデータの利用と一貫性のあるデータ処理のどちらも今後とも必要です。

SQLとNoSQLデータベースのより効率的な組み合わせ・使い分けによる付加価値の創造に注目したいところです。

関連記事はこちら:【IoT用語集】デジタライゼーションとは?

世界の産業自動化制御市場、2018〜2222年の間に5.81%のCAGRで成長する見込み 世界のIoTに関するレポート公開中