NoSQLについて(備忘録)


昨今、IoTなどのデータ収集により、NoSQLを用いてデータ処理を行うケースが増えています。
そのため、NoSQLの種類について勉強含め記事に投稿いたします。

NoSQLの種類

「Not Only SQL」の略であり、定義が難しいですが現在3種類程に分類できます。

KVS(キーバリューストア)

データ構造は下記のような構造があります。

・キーに対して1つの値を格納するキーバリューモデル
・キーに対して複数の値を格納するワイドカラムモデル

上記のモデルは分散しやすいという利点があり、
シンプルなデータに対して扱いやすいモデルです。

キーバリューモデルの例

元素記号 日本語名
H 水素
He ヘリウム
O 酸素
C 炭素
Na ナトリウム
Cu
Fe
{
"H":"水素",
"He":"ヘリウム",
"O":"酸素",
"C":炭素",
"Na":"ナトリウム",
"Cu":"銅",
"Fe":"鉄"
}

OSSのDBでは、Cassandra, Redisなどがあります。

ドキュメント指向

階層構造を持ったデータで、まさにJSON形式のデータ構造です。
JSONの操作が得意なDBで、IoTデータなどでも多く使用されております。

OSSのドキュメントDBでは、MongoDB, Couchbaseなどがあります。

・ドキュメント指向型の例

[
 {
  "センサー番号":"000A",
  "収集情報":["温度","湿度"]
  "判定結果":{"温度":"問題なし","湿度":"問題なし"}
 },
{
  "センサー番号":"000B",
  "収集情報":"振動値"
  "判定結果":{"振動値":"問題なし"}
 }
]

グラフ指向

データの例では、ネットワーク構造などで表現される有効グラフなどがあります。
データとデータの繋がりを簡単に検索することができるのがグラフDBです。

OSSのグラフDBは、Neo4jなどがあります。