HadoopTimes

実践 機械学習:レコメンデーションにおけるイノベーション
ソリューション

非エンジニアでも知っておきたいビッグデータとデータベースの話【NoSQL解説】

インターネットの浸透、SNSの登場、高度化したセンサーの普及などにより膨大かつ高頻度の更新速度を持つデータが次々と生まれています。いわゆる“ビッグデータ”というものですね。最近では広告などにもビッグデータという文字を見かけることが多いので、今や知らない方はいないというほど一般常識化しています。

ビッグデータ分析や活用により様々なモノやサービスが便利になっていく中、変化したものがもう一つ。それはデータ分析や保管に欠かせない“データベース”です。

従来主流であったRDBMS(Relational DataBase Management System)から、徐々にNoSQL(Not only SQL)へと移行しています。

なぜ、データベースのトレンドが変化してきているのか?今回はその背景や、NoSQLの特徴などを紹介していきます。

RDBMSでは対応しきれない

そもそもRDBMSとはリレーショナルデータベースを管理するための専用システムであり、データの属性などを行と列の組み合わせによる表記式で表し、構造的に管理するためのものです。

例えば、以下のような複数のデータが存在するとします。

伊藤博文
山口県
1841年10月16日
1909年10月26日
4回
松方正義
鹿児島県
1835年3月23日
1924年7月2日
2回
大隈重信
佐賀県
1838年3月11日
1922年1月10日
2回
松方正義
鹿児島県
1835年3月23日
1924年7月2日
2回

皆さんはこれらのデータをパッと見て一体何のデータかわかるでしょうか?わかるという方もいらっしゃるでしょうが「一体何のデータなのかわからない」という方がほとんどかと思います。ではこれらのデータを以下のように整理してみましょう。

歴代総理大臣データ
歴代総理大臣データ

いかがでしょうか?これで一体何のデータだったのかハッキリしたのではないかと思います。一見、何のデータなのかわからなかったものを、このように行と列を組み合わせて属性を与えることで、非常にわかりやすいデータベースとなります。つまりRDBMSとは、上記のように構造的にデータを格納するためのシステムなのです

ではなぜ、このRDBMSではビッグデータに対応できなくなっているのか?

非構造化データの定義が苦手

現在ネットワークを流れているデータは膨大かつ多種多様であり、非常に複雑な構造(非構造的)で存在しています。また、データによってはその更新頻度はかなり高速です。

SNSとして人気のあるTwitterを例に挙げるとわかりやすいでしょう。Twitter上では、世界中で毎秒数万単位のツイートが生まれています超高速かつ大量、そしてバラエティーに富んだデータが生まれていくTwitterは「3V(※1)」の定義も備えていることから、まさにビッグデータの代表格と言えます。

そしてこうしたビッグデータは特定の構造を持たない“非構造化データ”に分類されます。主な非構造化データはメールやコンテンツといった文章、画像・音声などもこれにあたります。実はRDBMSは、こういった非構造化データを格納するのが苦手なのです。

「格納できない」というわけではありませんが、データを構造化するためにデータベースのスキーマ(構図)を定義しなくてはなりません。スキーマの再定義には時間がかかる上に、常にデータの質が変化し大量に生み出されていくビッグデータを定義するのは明らかに非効率的です。

※1:3Vとは米調査会社ガートナーが提唱するビッグデータの定義。「Volume:データ量」「Velocity:データ速度」「Variety:データ範囲」の3つ頭文字を取ったもの。

パフォーマンス向上のコスト

また、パフォーマンス向上によるコスト増加の問題もあります。ビッグデータを分析しようとすると、サーバへの負荷が肥大化するため高パフォーマンスを維持しなくてはなりません。

そしてサーバのパフォーマンスを向上させるためには、主にスケールアップ(サーバそのものの性能を向上させる方法)とスケールアウト(サーバ台数を増加し分散処理を行う方法)があります。

RDBMSでスケールアップを行おうとするとメンテナンス中はシステムをストップさせなければならないため、業務に支障をきたしてしまいます。一方、スケールアウトではメンテナンス中でもサーバをストップさせる必要がありません。

しかし問題となるのは、サーバ台数の増加によるライセンスコストです。商用RDBMSではサーバ一台一台にライセンスを付与しなけらばならないため、それだけで多額のコストがかかってしまいます。

これらの理由から、RDBMSではビッグデータへの対応が難しいと言われているのです。そしてRDBMSに代わりビッグデータ格納を可能にしているのが、NoSQLと呼ばれるデータベースです。

NoSQLとは?

NoSQLにはまず、以下の4つに分類されています。

  1. キーバリューストア
  2. カラムストア
  3. ドキュメントデータベース
  4. グラフデータベース

このうち最も汎用的なのがキーバリューストアであり、NoSQLと言うと一般的にキーバリューストアを指します。インデックス付きのキーとバリュー(値)という2つのシンプルな形式で格納され処理を行います。SQLほど多様な言語は持ち合わせていませんが、処理速度に特化しているのが特徴的です。

また、RDBMSではデータを格納する際にスキーマを定義しますが、NoSQLではダイナミックスキーマと呼ばれ予め定義する必要なくデータを格納できます。つまり膨大かつ更新頻度が高いデータをシンプルに管理し、高速処理を実現してるためビッグデータに最適なデータベースなのです。

分断耐性と高可用性

RDBMSではコストの問題から、スケールアップでのサーバパフォーマンスが一般的とされています。一方NoSQLでは基本的にスケールアウトを想定して設計されているので、低コストなサーバを複数台設置しデータの分散処理やミラーリングを可能としています。

こうすることで、データベースに分断耐性と高可用性を持たせることができるのです。つまりNoSQLではRDBMSと比較して低コストかつ高パフォーマンスで高速処理を可能にし、ビッグデータに対応したデータベースと言えます。

NoSQLにも苦手なことが

ビッグデータといった非構造化データの高速処理に適したNoSQLですが、逆の構造化されたデータの処理は苦手でありRDBMSの土俵となります。

例えば日々の業務で発生する取引データや会計データなど所定のフォーマットとして保管されるデータに関しては、予めスキーマを定義し整合性の取れたトランザクション処理を行うことで無駄のない形でデータを保管できます。

このことからビッグデータ対応に対するデータベースのトレンドは変化しつつも、必ずしもRDBMSが不要になったわけではないのです。

これからのビッグデータ時代はRDBMSとNoSQLを使いわけ、それぞれの特性を活かした運用を行うことがキーポイントとなるでしょう。

データベースだけでなく、データ処理にも着目

ビッグデータ活用では、データベースばかりに気を取られてはいけません。最適なデータベースを導入することができたら、格納された大量のデータを高速に処理する必要があります。

こうした背景からNoSQLなどと同等にニーズが高まっているのが、高速なデータ処理を可能とするソリューションです。MapRが提唱するコンバージドデータプラットフォームでは、膨大なデータ群の処理を通常の数倍以上の速度で処理することができます。また、ストリームデータ処理により、リアルタイムにデータ処理を行うことも可能です。

ビッグデータを活用するためにはデータベースの整備だけでなく、こうしたデータ処理ソリューションの導入も必要となるので注意しましょう。

まとめ

それでは最後に、今回の要点をまとめておきます。

  1. RDBMSは構造的なデータ格納に最適なデータベースであり、非構造化データの格納には向いていない
  2. RDBMSのスケールアップではシステムの分断性が発生し、スケールアウトでは高コストが発生してします
  3. これらのことからRDBMSはビッグデータ対応が難しい
  4. NoSQLはキーとバリュー(値)といったシンプルな形でデータを格納し、高速処理を得意としている
  5. もともとスケールアウトを想定して設計されているので、分断耐性と高可用性を持ち合わせている
  6. このことからNoSQLはビッグデータ対応に向いている
  7. ただし、構造的なデータの格納は苦手
  8. ビッグデータ活用のためには、データベースだけでなくデータ処理ソリューションも必要となる

いかがでしょうか?今回の解説でこれからのビッグデータとデータベースのあり方をなんとなく理解して頂けたのではないかと思います。

2019年におけるビッグデータ分析のためのインフラ市場規模は、1469億円にも上ると言われています。この背景には必ずNoSQLとデータ処理ソリューションの普及があるでしょう。

また、2016年はビッグデータ成熟期であり、各企業によるビッグデータ活用が試されている年です。今年から来年にかけてビッグデータ活用に成功した企業が、各業界の今後を牽引していくと言われています。

どんな企業にも必ず眠っているビッグデータがあります。分析のためのインフラ基盤を構築し、そのビッグデータを活用すべきときは今なのではないでしょうか。

「いまさら聞けない」データ分析の総ざらい

「いまさら聞けない」データ分析の総ざらい
昨今、「データ分析」の重要性が強く叫ばれています。ただ、それはアナリストやデータ・サイエンティストと呼ばれる“専門家だけが担うことができる難解なもの”という誤解を持たれてはいないでしょうか。

データ分析という手法は、IT のパワーを活用することで、どんな企業も導入・実践することができる“現実解”なのです。

データ分析とはいかなるものなのか――。

この資料では、これからデータ分析を始める方や始めたが、もう一度初歩知識を復習したい方々向けにデータ分析の基本を解説します。

無料ダウンロードはこちら

こちらの記事もおすすめです