Impalaクエリエディタで高速なSQL

Published on 27 September 2013 in Full tutorial / Impala / Tutorial / Video - 4 minutes read
原文はこちら
以前のエピソードでは、Oozie Coordinatorで繰り返しのワークフローをスケジュールする方法について紹介しました。今回はImpalaでいくつかのデータをクエリするための近道を見ていきましょう。

Hue(the Hadoop UI)では、ほぼ最初のバージョンからImpalaをサポートしており、ブラウザ内において高速な対話形式のクエリを提供します。もしImpalaについて良く知らなければ、Hadoop用最速SQLエンジンのドキュメントをチェックすることをお勧めします。

Impalaアプリ

ImpalaはほとんどのHive SQLと互換性があるので、HiveとImpalaアプリケーションの両方でエピソード1(英語)のクエリを比較していきます。この比較は100%厳密ではありませんが、よくあるケースとして、どんなことが起こっているかのデモになっていることに気付かれるでしょう。

HueアプリでImpalaを使用することは、コマンドラインツールのimpala-shellでImpalaを使用するよりも、いろいろな意味で簡単です。例えば、テーブル名、データベース、カラム(列)や組み込み関数は自動補完され、構文をハイライトすることでクエリの潜在的な誤りを表示します。複数のクエリや選択したクエリの一部分を、エディタ上から実行することができます。パラメータ化されている(変数を使う)クエリをサポートしているので、ユーザーがサブミットする時に、値を入力を求めるプロンプトを表示させることができます。Impalaのクエリは保存可能であり、ユーザー間で共有したり削除でき、その後間違った場合に備えてゴミ箱から復元できます。

ImpalaはHiveと同じメタストアを使用するので、メタストアアプリでテーブルをブラウズできます。エディタからデータベースをドロップダウンして選択することも可能です。サブミットした後はクエリの進捗とログがレポートされ、クエリの結果は無限にスクロールさせてブラウズしたり、ブラウザでデータをダウンロードすることができます。

クエリの速度比較

簡単に入手できるHueのサンプルから始めてみましょう。これらはとても小さいデータですが、Impalaの電光石火のスピードと、Hiveによって生成された一連の非効率なMapReduceジョブを示します。

HueでHiveとImpalaのサンプルがインストールされていることを確認し、その後、それぞれのアプリの「保存されたクエリ」に移動し、‘Sample: Top salaries’のクエリをコピーしてからサブミットします。

その後、Yelpデータに戻ります。エピソード1のクエリを両方のアプリで実行します:

SELECT r.business_id, name, SUM(cool) AS coolness
FROM review r JOIN business b
ON (r.business_id = b.business_id)
WHERE categories LIKE '%Restaurants%'
AND `date` = '$date'
GROUP BY r.business_id, name
ORDER BY coolness DESC
LIMIT 10

繰り返しますが、Impalaのアーキテクチャーと最適化の恩恵をご覧いただけるでしょう。

まとめ

この記事は、Impalaのクエリ実行は、どのように対話的にデータ分析をしているかということと、Hiveのバッチアーキテクチャーより生産性が高いということを説明しています。結果は速やかに返ってきます。Yelpデータのケースでは、瞬時です。ImpalaとHueの組み合わせは、高速な分析のための秘訣でしょう。さらに、HueのPython APIは、独自のクライアントをビルドしたい場合に再利用することが可能です。

Cloudera’s demo VMとそのHadoopチュートリアルは、最初にImpalaとHueを始めるのにとても良い方法です。 近日公開されるブログの投稿では、Impalaでのより効率的なファイルフォーマットの使用方法について説明する予定です。

いつものように、何かあればhue-userメーリングリスト(英語)や、@gethueに気軽にコメントして下さい。次回は、OozieバンドルでHadoopチュートリアルのシーズン2(英語)です。


comments powered by Disqus

More recent stories

10 June 2021
Hue4.10(新しいSQLエディタコンポーネント、REST API、小さなファイルのインポート、Slackアプリなど)がリリースされました!
Read More
29 May 2021
Sqlスクラッチパッドコンポーネントとパブリック REST API を使用して、5 分で独自の SQL エディター (BYOE) を構築する
Read More
26 May 2021
改善されたHueのImporter -- ファイルの選択、方言の選択、テーブルの作成
Read More