データベース業界の1つの大きなトレンドに「マルチモデルデータベース」と呼ばれるものがあります。
その名の通り、グラフ、キーバリュー、ドキュメントなど、さまざまなモデルを扱えるDBMSですが、 インターシステムズも、マルチモデルデータベースを強力にサポートし、当社のデータプラットフォーム製品の鍵となる特徴の1つとして掲げています。
ひと昔前まで、ほとんどの処理ニーズに対応できるということで、RDBMS全盛の時代がしばらく続きました。しかし、インターネットの普及、そしていわゆるビッグデータの時代となり 、データ量と種類が爆発的に増え、非構造化データをはじめとする RDBMSが苦手な特徴を持つデータが増大しました。それに対応するために、新たに様々なデータベースが考案され、実装されていきました。これらは、ひとくくりにNoSQLデータベースと呼ばれることがあります。
NoSQLデータベースは、”polyglot persistence”、つまり様々な型の永続データを格納するデータストアを、ひとつのモデルに限定するのは不可能なため、用途によってデータベースを使い分けよう、という設計思想で発展してきました。その結果、少しずつ仕様の違うデータベースが膨大に世の中に溢れるようになりました。しかし、これは本来のデータベースが目指した方向性から逸脱するものでもあります。
元来DBMS というものは、複数の関連プログラム間で共有されるデータを一元管理していこうという取り組みから発展してきています。
DBMSがない時代は、プログラムは入力用ファイル(抽出や照合などの処理用)を読み込み、プログラムで処理して、その結果を出力ファイルに書くというのが一般的なスタイルでした。業務システムのプログラムが増えると、同じ様なファイルが何度も生成され、それが設計エンジニア毎に微妙に仕様が異なり、無駄や不整合が増えていき、収拾がつかなくなることが頻発するようになりました。
その解決策として、1つのアプリケーションを構成するプログラム間で共通に利用されるデータを一元管理するためのDBMS が構築され、これを導入することで、アプリケーション内のデータの重複、不整合というものは少しずつ解消されていきました。
しかし、複数アプリケーション間で共通するデータは存在し、それらは異なるDBMSで管理されているため、レベルは異なりますが、同じ様な無駄や不整合の問題が発生し、この対処のために、新たに統合データベースを構築するということも行われてきました。
一方で、統合データベースの構築に手間とコストがかかり、この問題を先送りにしているシステムもたくさん存在しています。
その結果として発生しているのが、アプリケーション毎の「データサイロ*1」という問題です。
さらに、システムというのは階層的に発展していく性質があるため、アプリケーションの上位概念としてのシステム、あるいはサブシステムというレベルでの「データサイロ」の問題が重層的に発生しています。
NoSQLの”polyglot persistence”という発想は、それをさらに悪化させ、違うレベルの「データサイロ」を生みます。つまり、アプリケーションデータサイロに加え、「データモデルデータサイロ」が発生するということです。結果として、”one fact in on place”というデータ管理の理想を追及することが益々困難となります。
このように、データベースの世界は複雑さが非常に増してしまっています。そこで、原点に立ち戻って、どうしたらシンプルにできるか考えてみることが重要です。
すると、1つのデータベースシステムが複数のデータベースモデルをサポートすれば、データモデルの違いに伴うデータサイロは避けられるはずという結論にたどり着きます。すなわち「マルチモデルデータベース」が、その解になるということです。
マルチモデルデータベースの実装には、2つのアプローチを取ることが考えられます。
1つ目のアプローチは、同じデータをモデル別にそれぞれを保持し、その維持管理はそのマルチモデルデータベースが行うという方法です。
これは実装が比較的容易ですが、モデル別に別々のデータ格納領域が必要となり、格納効率が悪いという欠点があります。ビッグデータの時代には、それでなくてもデータ容量の増大は危急の課題であるにも関わらず、逆にデータ容量の増大を助長してしまいます。
概念は少し違いますが、ビックデータの格納先としてデータレークというものが昨今注目されていますが、その意味するところは、文字通り大きな池に様々な形式のデータを置くということに過ぎないわけで本質的な解決策にはなっていません。
もうひとつのアプローチは、物理的なデータは1つにして、それを必要に応じて様々なモデルに変換してデータを提供するという方法です。この方法は、データの重複保持を防ぐことができる格納効率のよい手法で 、当然、後者の手法のほうが優れているはずです。しかし、実装はなかなか困難です。
この手法では、元データをいかに素早く、求められているモデル(形式)に変換できるかという処理能力が鍵となります。
インターシステムズのマルチモデルデータベースは、実に高速にこの変換を処理することができます。これは、高速処理が可能なインメモリデータベース技術、そしてプログラミング言語のエンジンが、データの極めて近くで連動して稼働しているというアーキテクチャの為せる技です。
処理する場所の近くにデータが存在するということがとても重要で、これがインターシステムズのマルチモデルデータベースの大きな特徴です。
インターシステムズは、このマルチモデルデータベースで、お客様のデータサイロや複雑さといった問題の解決を支援していきたいと思います。
*1 データが孤立化して、連携できないこと