Facebookが最近Prestoをオープンソース化してリリースしたことで、既に飽和状態だったSQL-in-Hadoopマーケットがさらに錯綜している。多数のオープンソースツールが開発者の関心を集めようとしのぎを削っているのだ。Hortonworks社によるHive関連のStinger initiative, Apache Drill, Apache Tajo, Cloudera社のImpala, Salesforce社のPhoenix (for HBase), そして今回のFacebook社のPrestoがこれに挙げられる。
既に稼働中のシステムでHadoopを使っている組織はインタラクティブなSQLクエリのサポートと既存のBIツールからの円滑な移行を必要としている。Vijay Madhavan氏(eBay社)は、ブログ記事SQL in Hadoop landscapeでこう述べた。
現在MapReduceベースの分析システムのほとんどにおいて、現行のHive, Pig, CascadingはSLA要素のうち非インタラクティブ領域、バッチ領域についてはうまく作用しています。よって多くのプロダクトはインタラクティブな"SQL in Hadoop"ソリューションを提供することで、SLA要素のうち残りのインタラクティブ領域とリアルタイム領域のサポートを試みているのです。
SQL-in-Hadoopソリューションのユースケースにはインタラクティブでアドホックなクエリのサポート、MicroStrategyやTableau等のBIシステムのようなレポート/視覚化機能、マルチソースデータ(HDFS内の行動データとRDBMSやその他のデータソース内の人口統計データとを結合する場合など)のサポートが含まれる。
これらSQL-in-Hadoopソリューションの多くは下記のような共通の側面を持つ。
- メタデータレベルにおいてはHCatalogやHive Metastoreが複数のデータソース間のスキーマを管理するデファクトスタンダードとなりつつある。
- さらに、特定の作業負荷においてはParquetやORCのようなデータフォーマットが現在においてもますます人気を集め、より広く使われるようになっている。
- ソリューションの多くは(1992, 1999, 2003など異なるバージョンにおける)広範囲のANSI SQLをサポートしているようである。
上記のポイントにより、異なるSQL-in-Hadoopソリューションへの移行はさほど苦にはならないだろう。
しかし、下記のように顕著な違いも見られる。
- Stinger, Drill, TajoのようなApacheコミュニティベースのソリューションもあれば、Impala, Phoenix, Prestoのように独立した媒体のものもある。
- 問い合わせ可能なデータソースがHadoop エコシステムに限られているものがある一方、Presto, DrillのようによりフレキシブルでリレーショナルデータベースとNoSQLデータソースにその場で問い合わせ可能なものもある。
- その他には、データに対するオペレーションの許可の違いも挙げられる。更新処理が可能なものがある一方、単なる(分散)クエリエンジンのものもある。
過去10ヶ月から18ヶ月の間、ますます多くの開発者や企業がSQL-in-Hadoopソリューションを試し、Hadoop上のデータへのアドホックなSQLアクセスや低遅延を実感出来ているようである。しかしながら、各ソリューションのユースケースや環境設定を考慮すると、長い目で見れば複数のSQL-in-Hadoopソリューションを検討する余地がありそうだ。