フリーのビッグデータ分析学習環境を使って、構造化データと非構造化データの分析を試してみる
「Cloudera Quick Start VM」を活用したビッグデータ分析の学習環境構築 第2回
前回の記事では、MySQLからHadoopにマスターデータの投入を行い、Hiveテーブルを作成するところまで行いました。今回は分析にもよく利用されるSQLを使用して、データの分析などを行います。
Apache Hiveは、SQLに似た言語(HiveQL)を使用して、データの抽出や変換などを行うことができます。しかし、Hiveは処理にMapReduceを使用しており、大規模データのバッチでの処理や、チュートリアル3(後述)のような柔軟な処理には適していますが、一般的に処理に時間がかるため、繰り返し分析を行うような用途に利用するのは難しいでしょう。
Cloudera Impalaは、大規模データのための高速なSQLエンジンです。残念ながらこのチュートリアルではその本来の力を発揮することができませんが、数十TBもの大量データに対するクエリでも、今回と同じ操作で同じように分析を行うことができることは覚えておいてください。
Impalaについての詳細は、以下のスライドを参考にしてください。
チュートリアル2:Impalaを使って高速にデータを分析する
まず、前回設定した仮想マシンを起動します。続いて「http://<VMのIPアドレス>:8888/impala/」にアクセスし、HueのImpalaクエリエディタを開きます。
ImpalaとHiveとはスキーマを共有しています。Impalaはスキーマをキャッシュしているので、Hiveからスキーマを変更した場合、INVALIDATE METADATAを実行してImpalaにスキーマ変更を通知しなければいけません。以下のコマンドを実行してください。
INVALIDATE METADATA;
なお、クエリの入力時にCTRL+スペースキーを押すことで、キーワードの自動補完を行うことができます。
最も売上の多い商品カテゴリ
まずは、一般的なRDBMSで行うことのできる分析クエリを試してみます。以下のクエリを実行し、注文データから「最も売上の多い商品カテゴリ」を算出してみます。
-- Most popular product categories select c.category_name, count(order_item_quantity) as count from order_items oi inner join products p on oi.order_item_product_id = p.product_id inner join categories c on c.category_id = p.product_category_id group by c.category_name order by count desc limit 10;
結果が出力されたら、「チャート」タブをクリックしてみましょう。結果をグラフ表示することができます。
次は、売上トップ10の商品を計算するクエリを実行します。
-- top 10 revenue generating products select p.product_id, p.product_name, r.revenue from products p inner join (select oi.order_item_product_id, sum(cast(oi.order_item_subtotal as float)) as revenue from order_items oi inner join orders o on oi.order_item_order_id = o.order_id where o.order_status <> 'CANCELED' and o.order_status <> 'SUSPECTED_FRAUD' group by order_item_product_id) r on p.product_id = r.order_item_product_id order by r.revenue desc limit 10;
実行したクエリの履歴は保存されているので、後からクエリを呼び出して再実行することができます。
この記事は参考になりましたか?
- 「Cloudera Quick Start VM」を活用したビッグデータ分析の学習環境構築連載記事一覧
-
- フリーのビッグデータ分析学習環境を使って、全文検索アプリケーションを構築してみる
- フリーのビッグデータ分析学習環境を使って、Apache Sparkによるバスケット分析を行...
- フリーのビッグデータ分析学習環境を使って、構造化データと非構造化データの分析を試してみる
- この記事の著者
-
嶋内 翔(Cloudera株式会社)(シマウチ ショウ)
2011年、Clouderaの最初の日本人社員として入社。サポートエンジニアとして3年務めた後、セールスエンジニアとして働いている。監訳書に「Apache Sqoop クックブック」。ライフワークで技術系ポッドキャスティング garsue.fm のファシリテーターを務めている。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア



