レポート・ライブラリ|株式会社アイ・ティ・アール

【R-215044_6963072047】NoSQLとは何か(その2)

作成者: 株式会社アイ・ティ・アール|Oct 1, 2023 12:35:36 AM

NoSQLはRDBMS以外のデータ管理ソフトウェアの総称であるので、様々な種類が存在する。その1ではNoSQLを採用する場合は種類ごとの特徴を理解し、ターゲットとなるデータとアプリケーションの要求事項にあった種類の製品を選択すべきであると説明した。本稿ではNoSQLの代表的な種類であるキー・バリュー型、カラム指向型に関して、その特徴を説明する。

キー・バリュー型の特徴

キー・バリュー型は、データに対する識別子である「キー」と実際のデータである「バリュー(値)」というシンプルな構造を持っている。キーとバリューは一対の行となっており、データ量の増加に伴って行が追加される。一般的にキーは数値やアルファベットの文字列やバイト配列であるが、バリューは、特定のデータ型は必要なく、画像データなどのバイナリデータでも構わない。これは、キー・バリュー型では、検索や指定するのは、あくまでキーに対してであり、バリューに対しては直接操作できないからである。したがって、キーがどこにあるかさえ分かれば良く、簡単に分割し分散配置することが可能となる。

キー・バリュー型において、データ分割を行う場合、シャーディング(Sharding)と言われる方法が利用される。Shardingはあらかじめ定めた規則に従って、データを分割していく方法である。例えばキーである伝票番号が1から300までの数値であり、それを3分割しようとした場合は、1から100まで、101から200まで、201から300までという決まりに従って、データを分割する。分割した各100件を3ノードに分散すれば簡単にデータを分割でき、アプリケーションからは、規則が分かっていれば、どのキーがどのノードに入っているかを知ることができる。このように簡単な構造であるので、データ量が増えても容易にノードを増やし、データ分散を行える。