コラム

Apache Drill を使ってみよう!!

筆者:西口 晃司

クラウド
ビッグデータ

2016.04.06


みなさんは、Apache Drill をご存知でしょうか?Apache Drill は Hadoop 環境で伝えるデータベースエンジンです。Apache Drill を使えばHadoop のファイルシステムに対して SQL を用いてアクセスしクエリを実行できます。


Apache Drill とは?


みなさんは、Apache Drill をご存知でしょうか?Apache Drill は、Hadoop 環境で伝えるデータベースエンジンです。Apache Drill を使えば Hadoop のファイルシステムに対して SQL を用いてアクセスし、クエリを実行 することができます。

Apache Drill の特徴は2つあります。
1つ目の特徴は、MapReduceを使わないで Hadoop のファイルシステム ( HDFS MapR-FS ) 上にあるデータに直接アクセスできます。もちろん、Apache HBase などの NoSQL にもアクセスできます。
2つ目の特徴は、構造化データ から 非構造化データ まで、どのような構造のデータでも検索できる ことです。JSON 形式 CSV 形式 のデータにもアクセスできるということになります。

Hadoop 黎明期には、Java で MapReduce 処理を書いて、バッチ処理アプリケーションを開発していました。その後に Hive が登場しましたが、MapReduce を SQL を介して利用できるようにするものなので、従来通りバッチ処理に適したものでした。MapReduce を使わずに検索できる Impala なども登場しましたが、標準のANSI SQLを使えるわけではなかったのです。その中、Apache DrillANSI SQL 準拠 のため、慣れ親しんでいる SQL の知識や、BI ツールをそのまま使用することができます。

MapR 社から、Apache Drill をお手軽に触れるように sandbox と呼ばれる 仮想アプライアンス が提供されています。今回は、sandbox を使って、Apache Drill の簡単な操作を紹介します。

用意するもの


準備


①VMware Workstation Player をインストール

②MapR-Sandbox-For-Hadoop-5.0.0-vmware.ova の展開

1. 「仮想マシンを開く」をクリックします。

2. ダウンロードした「MapR-Sandbox-For-Hadoop-5.0.0-vmware.ova」を選択し、「開く」をクリックします。

3. 展開が完了後、「仮想マシンの再生」をクリックします。

4. sandbox に ssh 接続します。
 ※ユーザ:root、パスワード:mapr

Apache Drill Shell の操作


①Apache Drill Shell の起動
  #sqlline

②データベースの確認
  drill:> show databases;

③ hive.default に移動します。
  drill:> use hive.`default`;

④hive.default 内のtableを確認します。
  drill:> show tables;

⑤rders テーブルから先頭5行を抜き出してみます。
  drill:> select * from orders limit 5;

このように 慣れ親しんでいる SQL をそのまま使用 することができます。もちろん、HBaseMapR-DB といった NoSQLに対しても使用 できます。

MapR-DB の操作


①MapR-DB に移動します。
  drill:> use maprdb;

②table を確認します。
  drill:> show tables;

③customers テーブルの先頭 5 行を抜き出してみます。
  drill:> select * from customers limit 5;

構造化されたテーブル だけでなく、NoSQL のように スキーマが定義されていなくても、Apache Drill であれば クエリを実行 することができます。これまで、データ分析を行う時に時間がかかっていた箇所は、いろんな場所にあるデータソースを1か所に集めてスキーマを揃えるということでした。しかし、Apache Drill を使用すれば、スキーマに依存することなくクエリを実行 できますので、データ分析を「早く」行う ことができます。

また、SQLは通常、表形式のデータに対して処理を行うものという意識があるのですが、Apache Drillは、複雑な構造のデータにも対応 できるので、JSONに似た構造のネスト構造やアレイ構造 のデータに対してもクエリを実行することができます。すなわち Apache Drill は 「柔軟性」 も兼ね備えているといえます。

ただ、なんといってもこれまでも紹介してきましたが、慣れ親しんでいる SQL をそのまま使えるということが最大の魅力でもあります。これからも、スキーマ定義されていない非構造データは増えてきます。非構造データを素早く分析するためにも、スキーマを意識せず使用できる Apache Drill をぜひ体験してみてください。
 

関連URL

筆者紹介

西口 晃司

プロフィール

西口 晃司(Koji Nishiguchi)

ビッグデータ関連技術のインストラクターです。
中でも、MapR Hadoopクラスタの管理コースと、R、SQLを用いたデータ分析のコースを担当しています。
ビッグデータ関連技術のインストラクターの前は、VMwareのサポート業務を担当していました。

取得済みの資格:
MapR Certified Hadoop Administrator
Cloudera Apache Hadoop 認定管理者
Cloudera Apache Hadoop 認定開発者
仮想化基礎検定試験


Page Topへ