MENU
Archives

NoSQLとは?従来のRDBとは異なるモダンなデータベースを分かりやすく解説!

「NoSQLってSQLを使わないっていうこと?」
「NoSQLを活用することでどういうメリットがあるかを知りたい!」

近年ビッグデータの活用とデータの多様化が進んだことで、従来のリレーショナルデータベースに代わる新しいデータベースの形が台頭しています。

リレーショナルデータベース(RDB)と聞いて思い浮かぶのは、表形式で数値や文字が格納されているExcelのようなものですが、NoSQLではこのような構造化データ以外にも画像や音楽などの非構造化データも取り扱えるのが特徴です。今回は、NoSQLについて概要やリレーションデータベース(RDB)との違いなどについてご紹介します。

目次

NoSQLとは

NoSQL(Not Only SQL) はRDBではないデータベースの総称です。RDBといえば、OracleやMySQLなどSQLで操作するデータベースですが、NoSQLはこれらのRDB以外のデータベースを指します。

NoSQLでは表形式に限定されるRDBと異なり、以下のようなデータモデルをサポートしています。
・キーバリューストア
・ワイドカラムストア
・ドキュメントストア
・グラフストア

このように多様なデータモデルをサポートしているため、RDBとは異なり、画像や動画などの非構造化データも格納可能で、RDBよりデータを高速に処理することが可能です。

ただしNoSQLがあらゆるケースに適するわけではなく、金融関係の厳密な一貫性を保ちたいケースなどはRDBの方が適しています。

NoSQLのデータモデル

NoSQLでサポートしているデータモデルについて解説します。

キーバリューストア

NoSQLの中では最もシンプルなデータモデルです。
各項目がキーと値のペアの辞書形式で格納されます。
構造がシンプルなため、高速にデータを処理できる点が強みで、逆に複数のレコードをプルするような複雑なデータの検索には適していません。
オープンソースのキーバリューストアのNoSQLとして、RedisやMemchedが存在します。

ワイドカラムストア

キーバリューストアにカラム(列)の情報が追加されたデータモデルです。
ユーザーは必要な特定のカラムにアクセス可能で、集計処理などに向いています。
オープンソースのワイドカラムストアのNoSQLとして、Apache HBaseやApache Cassandraが有名で、Apache Cassandraはビッグデータ向けの設計で、SNSやWebサイトのリアルタイム分析などに使用されます。
クラウドサービスだと、Google CloudのBigTableが有名です。

ドキュメントストア

データをJSONやXML形式のドキュメントとして格納可能なデータモデルです。
ドキュメント形式の複雑なデータをそのまま格納可能な点が強みです。
柔軟性が高いものの、複雑なトランザクションではデータ破損など問題につながるケースもあります。
MongoDBが有名なドキュメントストアのNoSQLで、可用性やスケーラビリティが高く評価されています。

グラフストア

グラフ理論に基づいたデータモデルです。
グラフストアはノード、エッジ、プロパティという要素で成り立ち、それぞれ
ノード:データの実態
エッジ:矢印で表されるノード同士の関係
プロパティ:ノード、エッジの属性情報

このような意味合いを持ちます。
データの関係が複雑でも、高速にデータを検索可能な点が特徴的で、オープンソースの有名なNoSQLとしてNeo4jが存在します。

NoSQLとリレーショナルデータベース(RDB)の違い

NoSQLは必ずしもRDBよりあらゆる面で優れているわけではないため、違いを理解し使い分けることが大切です。
いくつかNoSQLとRDBの違いを解説します。

NoSQLはデータの完全一貫性を必要としない

NoSQLはデータの一貫性について、処理の結果が最終的に一貫性のある状態であれば可とするBASE基準を採用しています。
RDBのトランザクション処理は完全なデータの一貫性を含むACID特性を満たしているため、厳密な一貫性が求められる金融などの処理ではRDBの方が適しています。

NoSQLはデータの処理が高速

NoSQLはACID特性を満たす必要がない、多様でモダンなデータモデルから適したモデルを選択できる、といった要因からデータを高速に処理することが可能です。
ビッグデータの分析にNoSQLは向いています。

格納できるデータの種類が豊富

RDBとは異なり非構造化データ、半構造化データも格納できる点が特徴です。
画像、音楽、ドキュメントといったデータを格納できるため、多様な使い方が考えられます。

スケールアウトが容易

NoSQLは非リレーショナルデータベースのため、テーブルを接続する必要がなく、水平方向へ容易に拡張することが可能です。
ビッグデータ分析においてシステムの性能が頭打ちにならずに、分散処理など柔軟な処理を行えます。

費用対効果に優れている

商用のRDBの維持には高いコストがかかります。
NoSQLの場合は費用対効果の面で優れている場合が多いです。

レプリケーション機能

NoSQLのレプリケーション機能は、複数のサーバーに渡るデータを複製して格納します。
このレプリケーション機能により、ダウンタイム中のアクセスが保証され、サーバーがオフラインになった場合でも、データの損失を防ぎます。

NoSQLとRDBのケース別使い分け

NoSQLが向いているケースと、RDBが向いているケースについて解説します。

【NoSQLが適するケース】
・ビッグデータの活用、分析
・IoTのシステム
・不正検知アプリケーション
・ソーシャルネットワーク
・災害時でもダウンしないなどの高可用性が求められるシステム

【RDBが適するケース】
・勘定系のシステム
・eコマースの会計処理
・在庫管理システム
・証券取引システム

NoSQL活用のユースケース

次にNoSQL活用のユースケースについて具体的に見ていきます。

低遅延が必要なアプリケーションやゲーム

リアルタイムでデータを更新する必要がある、アプリケーションやゲームでの利用にNoSQLは推奨できます。
高いスループットと高速なトランザクション処理により、応答時間を迅速化し、使用量が急増した場合には、インメモリー型のNoSQLデータベースを使用することで、ディスクストレージの使用による遅れを心配する必要がなくなります。

ビッグデータ分析やトラフィックの急増が想定されるデータの分析

eコマースにおけるセールや、イベントなど、トラフィックの急増が想定されるデータの場合、キーバリューストアのNoSQLであれば、シンプルな構造のため、容易に拡張して対応することが可能です。

カラムの追加やスケールアウトが想定されるデータ

将来的にカラムを増やしたり、またはデータベースの容量自体を増やすことが想定される場合、NoSQLの活用がお勧めです。

非構造化データのデータベースとしての使用

半構造化データおよび非構造化データのデータベースとして、大量の画像、動画データ、ドキュメントの格納先としてNoSQLが活用できます。

まとめ

本記事ではNoSQLについてその特徴やRDBとの比較について解説しました。
表形式のRDBと比べるとはじめは、データ構造を直感的に理解しにくいという点で、とっつきにくさを感じられる方もいらっしゃることと思います。

従来のやり方から変化が起きている例として、データのやり取りにおいて、CSVファイルよりもJSONやXML形式の方がよく使われるようになったり、データモデルにおいてもNoSQLの方がよりモダンで現代のデータ活用の背景に則していると言えます。
特に柔軟にカラムの追加が可能という特性や、水平スケールアウトが可能な点は、データ構造の変化に強いという点で、データエンジニアやアナリストにとって嬉しい特性です。

本記事を読んでNoSQLやNoSQLのデータモデルについて興味を持っていただけたのであれば幸いです。

KUIXではただ導入・開発するだけでなく、導入後の利活用を実現することに着眼した、データレイク・DWH・データマート・BIツールの選定・導入からレポート作成、運用、啓蒙・展開までトータルのコンサルテーションなどを行っています。
「データマート/データレイク/DWH/BIツールを導入したい」
「すでに導入しているがデータ活用、展開が進んでいない」など
お困りの方は、ぜひお気軽にご連絡ください!お問い合わせはこちらから

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次