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ファイルフォーマット対応が追加された。
サポート.
DrillはApache HadoopテキストファイルやNoSQL、クラウドストレージなどの非リレーショナルデータストアに主に重点を置いている。次のデータストアがサポートされている:
ストレージプラグインを開発することで、新しいデータストアを追加することができる。Drillの「スキーマ不要の」JSONデータモデルにより、非リレーショナルデータストアをその場で検索可能である。
論文.
いくつかの論文がDrillの誕生と設計に影響を与えている。下記はその一部のリストである: