僕が夏休みのインターンとして働いているIBM・アルマデン研究所で、マイケル・ストーンブレーカー氏がこれからのビッグデータの過去、現在とその未来についてプレゼンテーションをしてくれました。彼はマサチューセッツ工科大学(MIT)の教授でもあり、データベースシステムに関する数多いスタートアップにも関わり、チューリング賞受賞者でもあります。
この記事はそのプレゼンからの主な要点を紹介していきます。(所々バラバラで申し訳ございません、メモ的なまとめなので・・・)
マイケルさんのプレゼンテーションでは、ビッグデータの主な問題点と課題、その3Vを元にその問題点とその解決方の提案を紹介してくれました。その3Vとは:
- Volume (ボリューム): 巨大なデータ量のことを示す
- Velocity (ベロシティ): 高速度;リアルタイムでプロセシングと分析を行えるか
- Variety (バラエティ): 様々な情報源からデータ分析を行う
Volume (ボリューム)
ビッグデータによる、巨大データ量の単純分析手法はもう既に解決されている問題である。過去にはSQLでその分析を行っているが、これからの時代は統計学や機械学習などでデータ予言のモデルを使っていくとよい。そこで以下のワークフロープロセスでの分析方法を利用するのに現在あるデータ分析キットやツールで分析を行う。しかし、現在のデータベースの技術のほとんどは行ストアとカラムストア式の構造になっており、機械学習などの分析(主に外積など)に必要なのは線型代数学のルーティーンを効率に行えるアレイ式のデータベース構造が巨大データ量分析の問題を解決する鍵だと語る。
そこでマイケルさんはビッグデータの分析に今よく使われているHadoopとSparkについて、各テクノロジーの弱点をあげていきました。
###Hadoop
- マップ・リデュースは基本的にはSQLマーケット向け
- グーグル社(アルファベット)はすでにこれを見捨てた
- 単純に言うと、Hadoopはファイルシステムの上にSQLを乗せたもの
###Spark
- メモリを使うが、その点、データの持続性がない
- データ共有が難しい;主にネットーワークで送信に時間かかるし、バッファープールもない
- これもまたSQL版もある→SparkSQL、なのでこれもまたSQLマーケット向け
###Volumeのまとめ
- 機械学習などの分析を利用
- 行ストアとカラムストア構造より、UDFを使ったアレイ式構造を利用する
- 上の二つにより、HadoopとSparkからの問題点と共に、分析エンジン(線型代数学エンジン)をデータベースに仕込む
- 要するに、分析とデータをストアを両方するプラットフォームが必要
#Velocity (ベロシティ)
今の時代はIoTなどのセンサーやサーバーのログなどからリアルタイムでデータが来るので、これを処理できるシステムが必要とされる。現在、リアルタイムのデータ処理はApache StormやApache Kafkaなどがよく使われていることが多いそうだと。
そこで、リアルタイムのデータ処理に関するいくつかの問題点はリアルタイムでのデータロスのリスクを抑制についてこう語る:
- データの存続性が必要
- ハイパフォーマンスOLTP(オンラインでの取引処理)などを使うこと
- なるべく潜在を抑え、データのレプリケーション、フェイルバックと冗長性を維持すること
- 主なOLTPのシステム例:VoltDB, NeoDB, MemSQL
そして、その問題点に対する提案された解決法:
- RDMA(リモートダイレクトメモリアクセス)を同時実行コントロールメカニズムとして使う
- 広範囲のネットワークでデータの冗長性を維持し、そこでレプリケーションも行う
#Variety (バラエティ)
現在よく使われているビッグデータの構造は、データをサイロに入れる感じで保存してる物が多い。ここで鍵となるのがエンタープライズ内で保存しているプライベートのデータと政府やオープンソースで公開されているデータを両方組み合わせて分析を行うことが鍵だと語る。しかし、データが多くなるほど、それに対するプリプロセス作業とデータクレンジングが大変だと。これは最初からグローバルスキーマが提案されておらず、ほとんどのデータが一定化されてないことが問題とされる。しかしスキーマを提案し、それを実際にビッグデータに実施するのがとても難しい。
ここで重要なのが「Human-in-the-Loop」、データのプリプロセス作業を人間が操作の一環に組み込まれている環境を作り上げないといけないこと。ここが現在のビッグデータのボトルネックであると言われている。
解決提案としては、ビッグデータのプリプロセス作業を機会学習プロセスと「Human-in-the-Loop」モデルを組み合わせることによって管理が素早くなるとのこと。
ーーー
以上、マイケル氏によるプレゼンテーションのまとめでした。
#個人的な感想
- 問題点は色々と指摘したが、効果的な解決法とはなるような物は詳しく教えてくれなかった。
- 結局、自分のスタートアップのサービスの広告的なプレゼンでもあったw
- 個人的な考えでは、P2P式のブロックチェーンなどの構造でデータの保存とプロセスを編み込むのが一番だと思う。ブロックチェーン構造は提案した解決法と結構当てはまる部分が多いと思う。(今、個人のサイドプロジェクトとしてブロックチェーン構造を利用したP2Pディープラーニングプラットフォームを開発中、完成次第その時に記事を書きます・・・)