PR

 これまでも「Hive」というHadoopの追加モジュールを使用すると、SQLを使ったクエリー処理が実行できた。Impalaは、HiveのSQLクエリー言語である「HiveQL」が使用可能である。さらにImpalaは、Hiveよりも短い時間でクエリーを処理できる。Hiveでは、SQLのクエリーをMapReduceのジョブにコンパイルして実行していたため、処理速度はMapReduceを使う場合と同じかやや劣っていた。

 Impalaの弱点は、「製品としてまだ成熟しておらず、MapReduceやHiveに比べて耐障害性が劣ること」(アワダラーCTO)。Impalaの処理中にHadoopクラスターを構成するマシンがダウンすると、その処理は異常終了してしまう。MapReduceやHiveを使った場合は、一部のマシンがダウンしても処理は継続する。「大規模なクエリーを実行する場合は、ImpalaよりもMapReduceやHiveを使った方がいい」(同)としている。

 現在のImpalaは、ストレージに「HDFS(Hadoop File System)」や「HBase」を使用する。将来的にはカラム指向のストレージである「Trevni」も利用できるようになる予定。Trevniは、データをカラム単位でまとめて保存しているため、特定のカラムを高速に読み出せる。Trevniをストレージに使用することで、Impalaの処理はさらに高速化できるという。

グーグルの「Dremel」と「F1」がモデル

 Hadoopが、米グーグルの開発した「MapReduce」や「GFS(Google File System)」の論文を参考に開発されたように、Impalaもグーグルの技術論文を参考に開発した。アワダラーCTOは、参考にしたグーグルの技術として「Dremel」と「F1」を挙げる。

 Dremelはグーグルが2011年に論文発表した技術で、クエリー処理を高速に分散実行するためのソフトウエアである。F1はグーグルが2012年に論文発表した技術で、論文では「耐障害性の高い分散RDBMS」であると説明している。クラウデラでImpalaの開発を進めているマルセル・コルナッカー氏は、F1の開発チームに所属していた。

 グーグルのDremelを参考にしたオープンソースソフトウエア(OSS)としては他に、米MapRテクノロジーズが中心となって開発を進めている「Drill」がある。MapRは米Apacheソフトウエア財団(ASF)に対して、Drillの開発プロジェクトの提案をしている。クラウデラもImpalaをOSSとして公開している。