LoginSignup
4
2

More than 3 years have passed since last update.

Apache Drillの調査

Last updated at Posted at 2019-12-12

エッジコンピューティングによって高性能化したエッジ機器にデータが格納されるようになると、クラウドサービスにデータを集めないでエッジ機器のデータを直接検索したいとニーズが生まれてきました。そして、IoT(Internet of Things) システムでは広域に分散されたエッジ機器のデータ群を高速に検索するために、マルチデータベースにアクセスできる分散SQLエンジンが求められています。そこで、分散SQLエンジンの Apache Drill についてまとめました。
動作環境やライセンスなど基本情報から、対応プログラム言語、可用性、拡張性など機能情報やセキュリティまで掘り下げて、以下のようにまとめました。

Apache Drill

Drill は構造化/セミ構造化/ネスト化データを含んだ大規模データセット向け低レイテンシ分散クエリエンジンです。Drill は Google の Dremel の刺激を受けて、数千ノードをスケールさせ、かつ BI/Analytics が要求するインタラクティブ可能な速度でペタバイト級データをクエリできるように設計されています。さらに、Drill は大規模データセット上のインタラクティブ・アドホック・クエリに有益です。また、Drill は集中型メタデータ・リポジトリを必要としません。
参照 : Architecture Introduction

基本情報

項目            内容
URL https://drill.apache.org/
データモデル JSONデータモデル
参照 : Drillix: Combined Operational & Analytical SQL at Scale
動作環境 CPU
メモリ: 4GB 以上
ストレージ :
OS:Linux, Mac OS X, Windows (Oracle JDK version 8以上)
参照 : Drill in 10 Minutes
実装言語 Java
ライセンス Apache License, Version 2.0
https://github.com/apache/drill/blob/master/LICENSE
主なバージョン 1.16.0 (2019-05-02) : ANALYZE TABLEステートメントでParquetデータの統計計算、CREATE OR REPLACE SCHEMAコマンドでテキストファイルのスキーマを定義、REFRESH TABLE METADATAコマンドでカラム指定でのメタデータのキャッシュファイルを生成機能、SYSLOG 用プラグイン
1.15.0 (2018-12-31) : SQLLine のアップグレード、インデックスのサポート、カスタム・アクセス制御リスト(ACL)付き znodeによるセキュア機能、INFORMATION_SCHEMAファイルテーブル、システムテーブル・ファンクション
1.14.0 (2018-08-05) : Docker containerでDrillを動かすための機能、ストレージ・プラグインのコンフィグレーションのエクスポートとセーブ機能、イメージ・メタデータ・フォーマット・プラグインの追加、セッション単位の Hiveプロパティの設定オプション
開発元 Apache Software Foundation
開発体制 PMC(Project Management Committee) Chair 1名(Arina Ielchiieva氏)、PMC 24名、Committers 53名、Contoributors 125名
参照 : Apache Drill Committee
活動状況 開発者用メーリングリストの投稿月間 平均約 600件、GitHubでソースコード・コミット月間約 20件
参照 : dev@drill.apache.org
国内サポート体制 現時点で国内での保守サポートサービスを行っている企業、団体はありません。
その他

機能情報

項目            内容
対応プログラム言語 RESTful HTTP API、JDBC、ODBCを利用可能なプログラム言語であればアクセス可能です
アクセス可能なDB HBase、MongoDB、MapR-DB、Hive、HDFS、MapR-FS、Amazon S3、Azure Blob Storage、Google Cloud Storage、OpenStack Swift、NAS、JSONデータモデル、ローカルファイル(JSON形式/CSV形式)、ODBC/JDBC、PostgreSQL、 MySQL、Oracle、MS SQL Server、Apache Derby、Restful APIなどがアクセス可能です。
参照 : Query any non-relational datastore
クエリ言語 SQL
マルチテナント マルチテナント機能は存在しません
インデックス DrillはMapR-DBストレージプラグインだけインデックスを(Drill 1.5から)サポートします。インデックスベースのクエリプランを生成するためにデータソースのインデックスを利用することができます(primary か secondary)。
Drillはインデックスをカバーリング、ノンカバーリング、ファンクショナルのインデックスプランで利用することができる。
参照 : Querying Indexes Introduction
トランザクション トランザクション機能は存在しません
ストアドプロシジャ ユーザ定義関数を作成することが可能です。
参照 : Develop Custom Functions Introduction
dockerコンテナ dockerhubでDrillのDocker Containerイメージが公開されています。
https://hub.docker.com/r/harisekhon/apache-drill/
性能拡張 Drillbitと呼ばれる Drilを構成する各サーバノードによって性能拡張を行います。各DrillBitは処理のコーディネーション、クエリプランニング、処理の実行などのすべての役割を全ノードが共通で持っています。
参照 : Architecture
高可用性 Drillbitに有効なフォールト・トレランスを持っていません
運用 バックアップや監視ツールは存在しません
出来ないこと

セキュリティ

項目            内容
通信暗号化 クライアントからのすべての通信は、SSL/TLS 1.2に対応しています。
DB格納領域の暗号化 なし
認証機能 Kerberos認証、PAM認証、ダイジェスト認証が使用可能です
権限管理 権限管理は可能です
DB監査 Auditロギングがあります

参照 : Securing Drill Introduction

まとめ

Apache Drill は、分散型SQLクエリエンジンに特化しているため、一般的なDB機能はサポートしていません。特に高可用性、運用面は対策が必要だと考えます。マルチテナント機能がないことはマイナスポイントと考えます。
また、SQL on Hadoopのホントのところ~Impala v.s. Hive on Tez v.s. Drill~の18ページで報告されているように、クエリ実行成功数が極端に少なく検証が困難、実行成功したクエリでも最速となるケースが見られない、という現象を私達も確認しています。
これらの状況から、Apeche Drillは、IoTデータのビッグデータ検索には向いていないと考えます。

掲載内容は、(株)東芝 デジタルイノベーションテクノロジーセンター及びソフトウェア技術センターの見解です。コメント等は広くご意見を頂ければ幸いです。

また、記述について誤りがあったり、気になることがあれば、編集リクエストやコメントでフィードバックしていただけると助かります。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2