Apache Drill

Apache Drillは、大規模データセットの対話型分析のための分散アプリケーションをサポートするオープンソースのソフトウェアフレームワークである。GoogleのDremelシステムはGoogle BigQueryという名称でInfrastructure as a Serviceとして利用可能であるが、DrillはDremelのオープンソースバージョンである。Drillは10,000台のサーバもしくはそれ以上の規模までの拡大が可能であり、数テラバイト、数兆レコードのデータを数秒で処理できることが設計目標に明記されている。DrillはApacheトップレベルプロジェクトの1つである。

Drillは多様なNoSQLデータベースやファイルシステムをサポートしており、これにはHBase、MongoDB、MapR-DB、HDFS、MapR-FS、Amazon S3、Azure Blob Storage、Google Cloud Storage、Swift、NAS、ローカルファイルシステムが含まれる。単一のクエリで複数のデータストアからのデータを結合することが可能である。例えば、MongoDBのユーザープロファイルのコレクションをHadoopのイベントログのディレクトリと結合することができる。

Drillのデータストアを意識したオプティマイザは、データストア内部の処理能力を活用するように自動的にクエリプランを再構築する。これに加えて、Drillとデータストアが同じノード上にあればDrillはデータ局所性をサポートする。。

Apache Drill 1.9では動的なユーザー定義関数が追加された。

Apache Drill 1.11では暗号関連関数とPCAPファイルフォーマット対応が追加された。

特徴

 MongoDBやElasticsearchに似た、正式なスキーマの宣言を必要としない、スキーマ不要のJSONドキュメントモデル
 業界標準API: ANSI SQL、ODBC/JDBC、RESTful API
 ユーザおよび開発者にとって非常に扱いやすい
 プラガブルアーキテクチャにより複数のデータストアに接続が可能

サポート
DrillはApache HadoopテキストファイルやNoSQL、クラウドストレージなどの非リレーショナルデータストアに主に重点を置いている。次のデータストアがサポートされている:

 Apache Hadoop、MapR、CDH、Amazon EMRを含むすべてのHadoopディストリビューション（HDFS API 2.3以降）
 NoSQL: MongoDB、Apache HBase
 クラウドストレージ: Amazon S3、Google Cloud Storage、Azure Blob Storage、Swift
 、、JSONを含む複数のデータ形式の扱い
 RDBMSストレージプラグインのサポート（JDBCを使った接続）

ストレージプラグインを開発することで、新しいデータストアを追加することができる。Drillの「スキーマ不要の」JSONデータモデルにより、非リレーショナルデータストアをその場で検索可能である。

関連項目

 クラウドコンピューティング
 ビッグデータ

脚注・出典

論文
いくつかの論文がDrillの誕生と設計に影響を与えている。下記はその一部のリストである:
 2005 From Databases to Dataspaces: A New Abstraction for Information Management 著者らは、すべてのデータ形式を受け入れてデータアクセスのためのAPIを提供し、データに対する理解に基づき進化するストレージシステムの必要性を強調している。
 2010 Dremel: Interactive Analysis of Web-Scale Datasets

外部リンク
 
 Apache Drill: Tracking its history as an open source community
 SQL and Hadoop: It's complicated
 Crunching Big Data with Google BigQuery + Introducing Apache Drill

SQL
Drill
クラウドコンピューティング
オープンソースソフトウェア