年々拡大するビッグデータ市場。IDC Japanの予測によれば、国内のビッグデータソフトウェア市場の規模は2014~2019年にかけて年間平均成長率33.5%で拡大し、2019年には470億6100万円に達する。
ビッグデータを分散処理・管理するためのソフトウェア基盤としてメジャーなOSSに「Apache Hadoop」がある。Hadoop上のデータ処理には、従来から「Hadoop MapReduce」や、MapReduce上で動作するクエリ処理技術である「Apache Hive」が利用されてきた。しかし、MapReduceとHiveには、大規模データの処理に活用する上での課題がある。
MapReduceはスループット重視の設計であるため、どちらかというとバッチ処理に適しており、インタラクティブにクエリを実行したいというニーズを満たさない。また、Hiveのクエリ言語は“SQLライク”なHiveQLであり、Hadoop上で標準SQLを使いたいという声があった。
そのような背景から、近年、Hadoop上で標準SQLを使って、HadoopのデータをDWHなどでインタラクティブ分析に活用できる技術として、OSSのSQL on Hadoopの開発が活発化している。その中でも、今特に注目されているのが、汎用データ分析処理エンジン「Apache Spark」のSQLクエリ処理のコンポーネントである「Spark SQL」だ。
Spark SQLとは
Apache Sparkは、Spark SQLを含み、Spark Streaming(ストリーム処理)、MLlib(機械学習処理)、Graph X(グラフ処理)の4つのコンポーネントで構成される。クラスタマネージャとして、独自クラスタマネージャのほかに、Hadoop YARN、Apache Mesosを利用することが可能で、YARNと連携してHadoop上で動作する。
クエリ処理を行うSpark SQLは、Hadoop HDFS上のファイル(CSV、JSON,Parquet、ORC、Avroなど)、Hiveテーブル、RDBなど、さまざまなデータに標準SQLでアクセスできるという特徴がある。また、Spark StreamingやMLlibと連携して、ストリーム処理、機械学習処理も標準SQLで利用可能にする。
このSpark SQLは、スループットと低レイテンシを両立し、MapReduce上で動作するクエリ処理ソフトApache Hiveより高速だと言われている。ここでは、2015年12月に開催された「オープンソースカンファレンス2015 .Enterprise」で発表されたSpark SQLの性能検証結果を紹介する。同検証は、日立ソリューションズ オープンソース技術グループが実施し、同グループの倉又裕輔氏がカンファレンスで発表した(記事中に掲載する図表はすべて日立ソリューションズから提供を受けたもの)。