HadoopTimes

ストリーミングアーキテクチャ Apache Kafka とMapR Streams による新しい設計手法
技術情報

Apache Drillの導入作業から学んだこと

Apache Drillがファーストリリースから一年余りが経過しました。ここに、Drill 製品のキープロダクトのロードマップに関するハイライトや、昨年1年間に導入された顧客事例などをわかりやすくまとめた「インフォグラフィック」の資料コンテンツがあります。Drillを顧客の本番環境に適用する過程において、Apache Drillチームは規模を拡大し続け、数々のベスト・プラクティスをもたらしました。顧客からの質問で最も多かったのは、クエリにおける様々な演算処理において、多重度をどのようにして決めれば良いかというものでした。本ブログ記事にてこの質問への答えを示し、この質問を機に我々が到達したベスト・プラクティスについてお伝えできればと思います。

Drillでは、クエリはいくつかのメジャー・フラグメント(major fragments)と呼ばれる論理的な区画に分類され、それらは複合的なマイナー・フラグメント(minor fragments)の集積で構成されています。マイナー・フラグメントは、特定のスライス構造のデータ実行結果で、そのマイナー・フラグメントを含むメジャー・フラグメント処理の際に発生し、一つもしくは複数の処理で構成され、スライス構造データに対して連続的に実行されるものです。

どのように並列処理が実行されたか確認するためには、メジャー・フラグメントに内在するマイナー・フラグメントの数を把握する必要があります。

ここで、クエリプロファイルから提供される情報を例にこれを説明してみましょう。

Drill表1

上の表を見てみると、フラグメント00(メジャー・フラグメントIDとして表示されているものです。つまり00-xx-xxのうちの00)は、一つのマイナー・フラグメントから構成されていることが分かります。一方、フラグメント01と02についてはそれぞれ、42個と4個のマイナー・フラグメントからなっていることが分かります。

ここで、物理的なプランにおける実行済みの多重処理を確認するために、どのメジャー・フラグメントがそのプラン内にあるどの演算処理に該当するかを把握する必要があります。

例えば、そのプラン内にハッシュの結合処理(hash join)があり、実行されたハッシュ結合がどれほどの並列処理が実行されたか知りたいとします。

Drill 表2

ハッシュ結合の番号(01-xx-03)から、このハッシュ結合は01メジャー・フラグメントに含まれていることが分かります。このことから、このハッシュ結合の並列処理数は42でがあることがわかります。

ただここで注意すべきなのは、いくつかのメジャー・フラグメント処理自体の多重化が可能であるということです。したがって、各クエリにおける最大の多重度を計算するのは極めて困難です。これは、最も低い多重度のフラグメント処理数だけでなく、多重度合いに応じて処理が実行される並列処理の総数までのレンジを考慮して、実行処理数を計算する必要があります。

もう少し詳細が知りたい方は、こちらの資料をご覧ください。
Putting Apache Drill to Use: Best Practices for Production Deployments」(英語版)

著者情報

Philippe de Cuzey

サミア・ノリ

(シニアプロダクトマーケティングマネージャ, MAPR)

「いまさら聞けない」データ分析の総ざらい

「いまさら聞けない」データ分析の総ざらい
昨今、「データ分析」の重要性が強く叫ばれています。ただ、それはアナリストやデータ・サイエンティストと呼ばれる“専門家だけが担うことができる難解なもの”という誤解を持たれてはいないでしょうか。

データ分析という手法は、IT のパワーを活用することで、どんな企業も導入・実践することができる“現実解”なのです。

データ分析とはいかなるものなのか――。

この資料では、これからデータ分析を始める方や始めたが、もう一度初歩知識を復習したい方々向けにデータ分析の基本を解説します。

無料ダウンロードはこちら

こちらの記事もおすすめです