Apache Drill を使ってみよう!!

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 の特徴

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 Drill は ANSI SQL 準拠 のため、慣れ親しんでいる SQL の知識や、BI ツールをそのまま使用することができます。

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

用意するもの

  1. VMware Workstation Player
    https://my.vmware.com/jp/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0
  2. MapR-Sandbox-For-Apache-Drill-1.4.0-5.0.0-vmware.ova
    https://www.mapr.com/products/mapr-sandbox-hadoop/download-sandbox-drill

 準備

  1. VMware Workstation Player をインストール
  2. 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 の操作

(1) Apache Drill Shell の起動

#sqlline

(2) データベースの確認

drill:> show databases;

(3) hive.default に移動します。

drill:> use hive.`default`;

(4) hive.default 内のtableを確認します。

drill:> show tables;


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

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

MapR-DB の操作

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

(2) table を確認します。
drill:> show tables;

 

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

Apache Drill で、速くて柔軟性を持った分析が可能に

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

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

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

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。