「トレジャーデータのサービスでクエリを叩く」くらいしか Hadoop には関わっていないのだけど、今後の知識と技術のネタ仕込みという観点から Hadoop Conference Japan 2014 に参加してきた。
Hadoop そのものに関しては、こないだ「Hadoop徹底入門 第2版」を流し読みした程度の知識しかなかったので、知らない単語がたくさん出てきて、それらをメモるだけでも結構な量になった。
基本的には、Hadoop クラスタを自分で構築し、各種の周辺ソフトウェアもインストールし、自分達で運用している人達へ向けた内容が多かったので、「トレジャーデータを使っているだけ」の身だと、知識を得たとろこですぐには使えない。
まぁ、でも、実際に Hadoop を構築・運用している人達も「本体も周辺技術も進化が速くてついて行くのが大変。技術知識とトレンドを把握していくことが重要」と言っていたので、まずは知識を得るところから始めるのも間違ってはいないのだ、と自分には言っておこう。
数ある講演の中で一番気になっていたのが、「並列SQLエンジンPresto - 大規模データセットを高速にグラフ化する方法」のコマ。Presto は、ちょうどトレジャーデータでも利用できるようになったところなので、気になっていた。
アーキテクチャの簡単な解説があって、MapReduce との違いも分かったし、「ひとつのタスクがコケると全部の分散タスクもコケる」という制限が(現状は)あることの意味も分かった。インメモリで全てのタスクを同時に実行していれば、そりゃ1個のサーバで障害発生したらダメになるよなぁ。ただ、これは高速化とのトレードオフなので、それでもメリットは大きくあると思った。
それから、コネクタ(プラグイン構造)という構造があって、各ストレージとのやりとりは、そのコネクタを必ず通る構造になっているんだとか。それは、Hadoop の本質(?)でもある HDFS へのアクセスでもそうだし、その他の例えば商用 DB だったり、別のファイル構造だったりも、それ用のコネクタさえあれば、Presto でアクセスできるということだ。また、MySQL 用のコネクタも「プレリリース状態」らしいけど、存在するそうだ。
その構造のアツいところは「コネクタで繋がったものであれば JOIN ができる」ということ。
つまり、HDFS 上にあるデータと MySQL 上にあるデータを結合した結果をクエリ一発で取得できるってことだろう。これは面白いなぁ。
とは言え、いまのオレの状態では、トレジャーデータの Presto 環境にこの MySQL コネクタがインストールされないと使うことができない。まぁ、トレジャーデータは、Hive の結果を MySQL へブチ込む仕組みの提供をしてくれているので、そのうちきっとこのコネクタのサポートをしてくれるに違いない、、、かな。期待。