RDBMSで対応できない処理が増え、NoSQLの利用が加速する。統合型は高額になるが、データ基盤を構築するスキルがない企業には有効である。分散型はデータ連携が難しく、スキルと設計力が必要となる。
今回は、「統合型」と「分散型」のデータ基盤の設計パターンと、設計のポイントを説明します。2つの設計パターンは、異なる思想から生まれたアーキテクチャーであり、それぞれにメリットとデメリットがあります。製品も合わせて紹介するので、ぜひデータ基盤を構築する際の参考にしてください。
非構造化データを扱うにはNoSQL
設計パターンを説明する前に、最近のデータ基盤に多く用いられるNoSQLを理解しておきましょう。データ基盤をより詳細に理解するには、NoSQLの知識が必要不可欠だからです。
これまでは、データベースの主役をRDBMSが担ってきました。RDBMSは、SQLによるデータへのアクセス、一貫性の保証、トランザクションのサポートといった優れた機能を備えているため、データ基盤に広く用いられてきました。
しかし、デジタル化への取り組みが進むにつれて、RDBMSの機能だけでは対応できない処理が増えています。そのため、新たなタイプのデータベースが次々と登場しているのです。
デジタル化を進めるには、仮説立案とPoC(Proof of Concept:概念実証)を短期間で繰り返します。このスピードがビジネスの成否を決めるといっても過言ではありません。
例えば、IoT(インターネット・オブ・シングズ)のシステムでPoCを実施する場合を考えてください。このようなシステムでは、非構造化データをとりあえずIoT機器から取得し、すぐに分析や検証を繰り返すといったニーズがよくあります。ところが、RDBMSを使うと非構造化データをそのままの形で格納できず、対応に時間を要してしまいます。このように、従来はなかったニーズに応えるため、多様なタイプのデータベースが登場しているのです。
一般的にRDBMS以外の新しいタイプのデータベースを総称して「NoSQL」と呼んでいます。NoSQLは、Not Only SQL(SQLだけではない)という意味です。多くは、デジタル化で先行している米グーグル(Google)や米フェイスブック(Facebook)などが自社のデジタル化への課題を解決するために生み出したものです。その成り立ちからNoSQLとデジタル化の関係は深く、デジタル化に取り組む際は、NoSQLの利用が当たり前になりつつあります。
NoSQLの4つのデータモデル
NoSQLは、データモデルの特徴から大きく4つに分類できます(図1)。その多くは「Key」と「Value」の組み合わせでデータを表現します。
Keyには、RDBMSと同じく格納したレコードを一意に識別できるものを指定します。一方、Valueに格納する値は自由度が高く、構造化しなくてよいデータベースもあります。設計すべき項目を少なくして設計の手間を省き、効率を上げているのです。ただし、NoSQLはシンプルなデータアクセスに特化しているため、RDBMSのように複数のエンティティーを結合して、複雑な条件のSQLでデータにアクセスすることは苦手です。
主なNoSQLの特徴を示したのが図2です。1つずつ見ていきましょう。