世界のやまさ

SEKAI NO YAMASA

リレーショナルデータベースはオワコン? Postgres作者 が語るデータベースの未来

japan.zdnet.com

「Ingres」や「Postgres」の開発を行った、Michael Stonebraker氏がチューリング賞を受賞した際のインタビューなんですが、データベースの未来について興味深かったので記事を書きました。

2000年から2015年までのDB市場について

インタビューワが次のように聞いています。

--最近受けたインタビューでは、Oracleのような企業がデータベース市場で長い間支配的な地位にあることについて、そういう時期は終わったという意味のことを話されていましたね。今でもそう思われますか?

おお、Oracle をいきなりオワコン扱いか。こいつは面白いぞと思いました。

 2000年頃までのデータベース市場は、「1つのサイズですべてをまかなう」時代でしたし、その頃は「Oracleが答え」でした。1つしか道具がなければ、あらゆることにそれを使うしかないでしょう。

2000年頃までは、ほぼほぼ RDBMS 一色だった。

f:id:nnasaki:20150501131133p:plain

 しかしその状況は2000年代の最初の10年で急激に変わりました。

 今のデータベース市場は3分の1がトランザクション処理であり、3分の1がデータウェアハウスであり、残り3分の1をそのほか全部が占めているとわたしは考えています。この15年間で起こったことは、データウェアハウス市場をほとんど完全にロウストアからカラムストアに変えました。今ではカラムストアはロウストアよりも圧倒的に高速です。

 これによって、ロウストアを売っていた従来のデータベースベンダーは、技術的に間違った側になってしまったのです。

2ページ目までにわたって持論を展開しています。2015年では次のようなイメージのようです。

f:id:nnasaki:20150501134653p:plain

ロウストアなリレーショナルデータベースの優位性は無くなる

 わたしが見るところでは、この市場の3分の2については、従来のベンダーには技術的に間違った側にいます。そして残り3分の1でも、明白な利点があるわけではありません。

 2005年に書いた論文では「1つのサイズですべてをまかなう時代はもう終わった」と述べたのですが、2015年のわたしは、もっと突っ込んだ形で「1つのサイズでまかなえるものはない」と言っています。OracleIBMMicrosoftの従来の実装が適しているものは、基本的に何もありません。

先ほどの図の一番左、トランザクション処理を行うロウストアなDBについても、OracleIBM(DB2)、Microsoft(SQL Server)はもはや優位性は何も無いと言っています。

 わたしの分類を信じてもらえるなら、データベース市場は全体の3分の1の大きさの市場が2つと、12分の1の市場が4つに分かれます。そしてその中に、大手リレーショナルデータベースベンダーの現在の実装が特に有利になる市場は1つもありません。わたしはそれらのベンダーを親しみを込めて「象」と呼んでいます。

なるほど、大手ベンダーのことを「象」といっていたのか。象っていうと PHP本のマンモスが思い浮かぶようなそんな世代です。

これからどうなるか?

--では、RDBMS市場はOracleのようないくつかのベンダーが支配するのではなく、多くの異なる、特化した実装が主流になるということでしょうか。

 基本的にはそうなのですが、実際にいくつくらいのベンダーが生き残るかについてははっきりしません。

basically agree だけどどれが主流になるかは、はっきりわからない。

HadoopSQLが主流になる

 基本的に、本当に重要なHadoop市場はSQL市場になるでしょう。そこでmPowerを見てみると、Impalaはアーキテクチャ的にクラウドストアであり、「HP Vertica」や「Amazon Redshift」、またはその他のリレーショナルデータベースのカラムストア実装に似ています。このため、わたしはHadoop市場のほとんどはデータウェアハウス市場と融合すると考えています。

Hadoop を例にあげると、 MapReduce よりは SQL のほうが主流になりそうとのこと。また、Hadoop市場のほとんどはデータウェアハウス市場に融合というのもなんとなく合点がいきます。

Azure Data Lake が主にこの分野かなぁ。

NoSQL も SQL が標準になりそう

 この市場にはなんらかの標準がなければ生き残れない100前後のベンダーがある上に、結局SQLが標準になる可能性が一番高い状況です。

 例えば「Apache Cassandra」やMongoなどは、どちらも非常にSQLに似た高レベル言語を使用しています。

 最終的には4つか5つになるでしょうし、垂直市場向けの実装があるでしょうから、その4倍から7倍になるでしょうか。そんな数になるはずです。

NoSQL も結局 SQL が必要だという予想。

DocumentDBSQL 使えるかな。

Azure はほぼマッピングできる

今までの 2015 年のデータベース市場をAzureのサービスでマッピングしてみました。

f:id:nnasaki:20150501134653p:plain f:id:nnasaki:20150501135317p:plain

結果、グラフ以外はすべてそろっていることになります。Azure 死角ねーな。

データウェアハウスを単独で使うことは無い。統合が重要。

 数年前にわたしがAmazonで話をした人の例を考えると、データウェアハウスが単独で存在することはないと思います。彼は、現在と過去を比較したいと話していました。過去はデータウェアハウスの中にあり、現在はトランザクション処理システムの中にあります。したがって、データウェアハウスからのアップストリームは、ストリーム処理か、オペレーショナルデータシステムのどちらかであり、現在と過去を比較したいと思った途端に、データウェアハウスからのアップストリームを統合する必要があるわけです。つまり、うまくいくかも知れない戦略とは、統合する必要のあるアップストリームシステムを見つけて、それを統合することです。

この点も Azure ちゃんと考えているっぽい。先日の Build で発表のあったこの図が良さそうです。具体的にはこうです。

1.Azure Data Lake で 各データの統合を行う

DB だろうが blob だろうがすべてのデータを Azure Data Lake に突っ込み、アップストリームを統合する。

f:id:nnasaki:20150430132932p:plain

2.SQL Data Warehouse で解析を行う

すべてのデータそろっているので、SQL Data Warehouse で解析を行う。リアルタイムデータも EventHub と Stream Analytics でフィルタリングしつつ予兆も監視。

f:id:nnasaki:20150430114440p:plain f:id:nnasaki:20150430132534p:plain

まとめ

RDBMS は現代には合わなくなってきているのかもしれません。 グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門 にこう書いてあります。

リレーショナルデータベースが当初、紙の伝票や表構造を体系化するように設計されていた(そして、それを非常に得意にしている)一方で、現世界で出現するアドホックで例外的な関係をモデリングしようとすると苦労します。皮肉にも、リレーショナルデータベースは関係を扱うのが苦手なのです。

2章 2.1 リレーショナルデータベースには関係が欠如している より

データサイエンティストおもしれー。Azure で何でも出来そうな感じがしますね。

グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門

グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門