SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Downloaden Sie, um offline zu lesen
®
© 2014 MapR Technologies
®
© 2014 MapR Technologies
2014	
  年	
  7	
  月	
  8	
  日	
  
®
© 2014 MapR Technologies
MapR エンタープライズ Hadoop
トップランク	
   500 以上の顧客	
  クラウドリーダー	
  
®
© 2014 MapR Technologies
Hadoop ディストリビューション
Open Source Open Source
ディストリビューション A	
   ディストリビューション C	
  
運用管理	
  
Open Source
運用管理	
  
アーキテクチャのイノベーション	
  
®
© 2014 MapR Technologies
MapR Distribution for Apache Hadoop
MapR Data Platform
(ランダム Read/Write)
データハブ
エンタープライズ
グレード
業務オペレーション
MapR-FS
(POSIX)
MapR-DB
(ハイパフォーマンス NoSQL)
セキュリティ
YARN
Pig
Cascading
Spark
バッチ
Spark
Streaming
Storm*
ストリーミン
グ
HBase
Solr
NoSQL
・検索
Juju
プロビジョニ
ング・コーディ
ネーション
Savannah*
Mahout
MLLib
機械学習
・グラフ
GraphX
MapReduce
v1 & v2
APACHE HADOOP および OSS エコシステム
実行エンジン	
 データガバナンス・オペレーション	
ワークフロー
・データ
ガバナンスTez*
Accumulo*
Hive
Impala
Shark
Drill*
SQL
Sentry* Oozie ZooKeeperSqoop
Knox* WhirrFalcon*Flume
データ
統合・
アクセス
HttpFS
Hue
NFS	
   HDFS	
  API	
   HBase	
  API	
   JSON	
  API	
  
MapRControlSystem
(運用管理・監視)
* ディストリビューションに統合/認証予定	
CLI	
  GUI	
  REST	
  API	
  
®
© 2014 MapR Technologies
MapR Distribution for Apache Hadoop
MapR Data Platform
(ランダム Read/Write)
データハブ
エンタープライズ
グレード
業務オペレーション
MapR-FS
(POSIX)
MapR-DB
(ハイパフォーマンス NoSQL)
セキュリティ
YARN
Pig
Cascading
Spark
バッチ
Spark
Streaming
Storm*
ストリーミン
グ
HBase
Solr
NoSQL
・検索
Juju
プロビジョニ
ング・コーディ
ネーション
Savannah*
Mahout
MLLib
機械学習
・グラフ
GraphX
MapReduce
v1 & v2
APACHE HADOOP および OSS エコシステム
実行エンジン	
 データガバナンス・オペレーション	
ワークフロー
・データ
ガバナンスTez*
Accumulo*
Hive
Impala
Shark
Drill*
SQL
Sentry* Oozie ZooKeeperSqoop
Knox* WhirrFalcon*Flume
データ
統合・
アクセス
HttpFS
Hue
NFS	
   HDFS	
  API	
   HBase	
  API	
   JSON	
  API	
  
MapRControlSystem
(運用管理・監視)
CLI	
  GUI	
  REST	
  API	
  
Apache
Drill	
* ディストリビューションに統合/認証予定
®
© 2014 MapR Technologies
®
© 2014 MapR Technologies
Hadoop は EDW の強化版—なぜか?
®
© 2014 MapR Technologies
®
© 2014 MapR Technologies
®
© 2014 MapR Technologies
複数のスキーマの統合は非常に困難	
  
なぜか?	
  	
  使い方があらかじめ決められている	
  
®
© 2014 MapR Technologies
縦割りが原因で分析は非常に困難
•  一意の{顧客,	
  取引}
の組み合わせをデー
タセットの中からどの
ように特定するか?	
  
	
  
•  一部のデータが見え
ない場合、異常挙動
がないことをどのよ
うに保証できるのか?	
  
®
© 2014 MapR Technologies 12
何が価値になるかを事前に知ることはできない
®
© 2014 MapR Technologies 13
なぜ Hadoop か?
®
© 2014 MapR Technologies
ビッグデータのための SQL を再考してみる
これまで通り	
  
• 標準	
  ANSI	
  SQL	
  
• 普遍的な仕様	
  
• よく知られている	
  
• BIや分析については切り替え不要	
  
• 単一テクノロジー	
  
• 複数のテクノロジーを管理するのは大変	
  
• エンタープライズ向け	
  
• システム・オブ・レコード、高可用性、災害
対策、セキュリティ、マルチテナント、…	
  
新しく創出	
  
• データモデルの柔軟性	
  
• スキーマの急速な進化を許容	
  
• 半構造化データ型をサポート	
  
• アジリティ	
  
• 開発者とDB管理者が同一の場合、セルフサービ
スを可能に	
  
• スケーラビリティ	
  
• スキーマ、プロセス、運用管理などあらゆる観点で	
  
®
© 2014 MapR Technologies
SQL はすっかり浸透
	
  
®
© 2014 MapR Technologies
Hadoop の位置づけ
	
  
®
© 2014 MapR Technologies
YOU	
  CAN’T	
  HANDLE	
  REAL	
  SQL	
  
『ア・フュー・グッドメン(米/1992)』より	
  
®
© 2014 MapR Technologies
SQL
	
  	
  select	
  	
  *	
  	
  from	
  	
  A	
  
	
  	
  where	
  	
  exists	
  (	
  
	
  	
  	
  	
  	
  	
  	
  select	
  1	
  from	
  B	
  where	
  B.b	
  <	
  100	
  );	
  
	
  
•  Apache	
  HIVE	
  は上記を処理できないことをご存知ですか?	
  
– 例えば	
  Hive,	
  Impala,	
  Spark/Shark	
  
®
© 2014 MapR Technologies
自己表現型のデータ
select	
  	
  cf.month,	
  	
  cf.year	
  
	
  	
  	
  from	
  	
  	
  hbase.table1;	
  
	
  
•  通常の	
  SQL	
  は上記を処理できないことをご存知ですか?	
  
•  HIVE	
  や Impala,	
  Shark	
  のようなものでもできないですよね?	
  
•  理由はメタストア定義がないから	
  
®
© 2014 MapR Technologies
自己表現型のデータが一般的になってきている
中央管理されたスキーマ	
  
-­‐	
  静的	
-­‐	
  DB	
  管理者による管理	
-­‐	
  中央管理のレポジトリ	
	
入念なデータの準備のために長い時間が必要
(ETL,	
  スキーマの作成/変更,	
  等)	
  
	
  –	
  6〜18	
  ヶ月	
自己表現型もしくはスキーマレスデータ	
  
-­‐  動的/更新されていく	
  
-­‐  アプリケーションによる管理	
  
-­‐  データに埋め込まれる	
  
	
  
スキーマをなくすことで,	
  大容量・多用途・更新の
速いデータにより適している	
Apache	
  Drill	
  
®
© 2014 MapR Technologies
Apache Drill クイックツアー
®
© 2014 MapR Technologies
データソースはクエリの中で指定
!select timestamp, message!
!from dfs1.logs.`AppServerLogs/2014/
Jan/p001.parquet` !
!where errorLevel > 2	
  
	
   Apache	
  Drillにおけるクラスタ	
  
-­‐  DFS	
  
-­‐  HBase	
  
-­‐  Hive	
  メタストア	
  
ワークスペース	
  
-­‐  主にサブディ
レクトリ	
  
-­‐  HIVE	
  データ
ベース	
  
テーブル	
  
-­‐  パス名	
  
-­‐  Hbase	
  テーブル	
  
-­‐  Hive	
  テーブル	
  
®
© 2014 MapR Technologies
データソースを直接組み合わせる
•  JSON	
  
•  CSV	
  
•  ORC	
  
(つまりすべてのHive型)	
  
•  Parquet	
  
•  HBase	
  テーブル	
  
•  …	
  を組み合わせ可能	
  
Select	
  	
  USERS.name,	
  	
  USERS.emails.work	
  	
  
from	
  	
  
	
  	
  dfs.logs.`/data/logs`	
  	
  LOGS,	
  
	
  	
  dfs.users.`/profiles.json`	
  	
  USERS,	
  
where	
  
	
  	
  	
  LOGS.uid	
  =	
  USERS.uid	
  	
  	
  and	
  
	
  	
  	
  errorLevel	
  >	
  5	
  
order	
  by	
  	
  count(*);	
  
	
  
®
© 2014 MapR Technologies
ディレクトリツリー全体も処理可能
// ファイルが対象!
select errorLevel, count(*)

from dfs.logs.`/AppServerLogs/2014/Jan/
part0001.parquet` group by errorLevel;!
!
// データコレクション全体が対象: すべての年、すべての月!
select errorLevel, count(*)

from dfs.logs.`/AppServerLogs` 

!
group by errorLevel!
where $dir0 > 2012!
, $dir1!
dir
0!
dir
1!
®
© 2014 MapR Technologies
JSON に対するクエリ
{	
  	
  name:	
  classic	
  
	
  	
  	
  	
  fillings:	
  [	
  	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  sugar	
  cal:	
  	
  400	
  }]}	
  
	
  
{	
  name:	
  choco	
  
	
  	
  	
  fillings:	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  chocolate	
  cal:	
  300	
  }]}	
  
	
  
{	
  	
  name:	
  bostoncreme	
  
	
  	
  	
  	
  fillings:	
  	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  cream	
  	
  cal:	
  1000	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  jelly	
  	
  cal:	
  600	
  }]}	
  
	
  	
  
donuts.json	
  
®
© 2014 MapR Technologies
Drill 内部のカーソル
DrillClient drill = new DrillClient().connect( …);
ResultReader r = drill.runSqlQuery( "select * from
`donuts.json`");
while( r.next()) {
String donutName = r.reader( “name").readString();
ListReader fillings = r.reader( "fillings");
while( fillings.next()) {
int calories = fillings.reader( "cal").readInteger();
if (calories > 400)
print( donutName, calories,
fillings.reader( "name").readString());
}
}
{	
  	
  name:	
  classic	
  
	
  	
  	
  fillings:	
  [	
  	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  sugar	
  cal:	
  	
  400	
  }]}	
  
	
  
{	
  name:	
  choco	
  
	
  	
  fillings:	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  chocolate	
  cal:	
  300	
  }]}	
  
	
  
{	
  	
  name:	
  bostoncreme	
  
	
  	
  	
  fillings:	
  	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  cream	
  	
  cal:	
  1000	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  jelly	
  	
  cal:	
  600	
  }]}	
  
	
  	
  
®
© 2014 MapR Technologies
ネストデータに対する直接クエリ
// JSON, parquet, その他のネストレコードの

マップのフラット化!
!
select name, flatten(fillings) as f!
from dfs.users.`/donuts.json`!
where f.cal < 300;!
!
// 300カロリー未満の中身をリスト!
{	
  	
  name:	
  classic	
  
	
  	
  	
  fillings:	
  [	
  	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  sugar	
  cal:	
  	
  400	
  }]}	
  
	
  
{	
  name:	
  choco	
  
	
  	
  fillings:	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  chocolate	
  cal:	
  300	
  }]}	
  
	
  
{	
  	
  name:	
  bostoncreme	
  
	
  	
  	
  fillings:	
  	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  cream	
  	
  cal:	
  1000	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  jelly	
  	
  cal:	
  600	
  }]}	
  
	
  	
  
®
© 2014 MapR Technologies
SQL または Fluent API を使った複雑なデータ処理
//	
  SQL	
  
Result	
  r	
  =	
  drill.sql(	
  "select	
  name,	
  flatten(fillings)	
  from	
  	
  	
  	
  
	
  	
  `donuts.json`	
  where	
  fillings.cal	
  <	
  300`);	
  
	
  
//	
  or	
  Fluent	
  API	
  
Result	
  r	
  =	
  drill.table(“donuts.json”)	
  
	
  	
  .lt(“fillings.cal”,	
  300).all();	
  
	
  
while(	
  r.next())	
  {	
  
	
  	
  String	
  name	
  =	
  r.get(	
  “name").string();	
  
	
  	
  List	
  fillings	
  =	
  r.get(	
  “fillings”).list();	
  
	
  	
  while(fillings.next())	
  {	
  
	
  	
  	
  	
  print(name,	
  calories,	
  fillings.get(“name”).string());	
  
	
  	
  }	
  
}	
  
{	
  	
  name:	
  classic	
  
	
  	
  	
  fillings:	
  [	
  	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  sugar	
  cal:	
  	
  400	
  }]}	
  
	
  
{	
  name:	
  choco	
  
	
  	
  fillings:	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  plain:	
  280	
  }]}	
  
	
  
{	
  	
  name:	
  bostoncreme	
  
	
  	
  	
  fillings:	
  	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  sugar	
  	
  cal:	
  400	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  cream	
  	
  cal:	
  1000	
  }	
  
	
  	
  	
  	
  	
  	
  {	
  name:	
  	
  jelly	
  	
  cal:	
  600	
  }]}	
  
	
  	
  
®
© 2014 MapR Technologies
埋め込みデータに対するクエリ
// hbaseテーブルdonutsの、カラムファミリcf1内の、カラムdonut-json
内部に埋め込まれたJSON値!
!
select d.name, count( d.fillings),!
! from (!
select
convert_from( cf1.donut-json, json) as d ! !
from hbase.user.`donuts` );!
!
®
© 2014 MapR Technologies
JSON レコード内部へのクエリ
// 各JSONレコード自体をひとつのデータベースとして扱える!
// 例: 少なくとも1つの中身が300カロリーを超えるすべてのドーナツを得る

!
!select d.name, count( d.fillings),!
max(d.fillings.cal) within
record as mincal!
!from ( select convert_from( cf1.donut-json,
json) as d ! !
from hbase.user.`donuts` )!
where mincal > 300; !
!
®
© 2014 MapR Technologies
a
•  クエリ処理の途中でスキーマが変わる可能性がある	
  
•  スキーマ変更イベントによりオペレータの再構成ができるよ
うになっている	
– 柔軟性のためのオーバーヘッドを最小化	
  
– 実際のデータ特性に基づいてより高度な実行時最適化を行える	
  
®
© 2014 MapR Technologies
中央管理ではないメタデータ
// 顧客毎のツイート数をカウント。顧客マスタはHive、ツイートデータはHBaseに存在。
hbaseデータはメタデータ情報を持たないことに注目。!
!
Select!c.customerName, hb.tweets.count!
from !hive.CustomersDB.`Customers` c!
join hbase.user.`SocialData` hb!
on !c.customerId = convert_from( hb.rowkey, UTF-8);!
®
© 2014 MapR Technologies
内部のしくみ
®
© 2014 MapR Technologies
基本的な処理の流れ
Zookeeper	
  
DFS/HBase	
   DFS/HBase	
   DFS/HBase	
  
Drillbit	
  
分散キャッシュ	
  
Drillbit	
  
分散キャッシュ	
  
Drillbit	
  
分散キャッシュ	
  
クエリ	
   1.	
  クエリがいずれかの	
  Drillbit	
  に到着	
  (JDBC,	
  ODBC,	
  CLI,	
  protobuf)	
  
2.	
  Drillbit	
  はクエリ最適化&ローカリティに基づき実行プランを生成	
3.	
  処理の Fragment	
  が各ノードで実行される	
4.	
  データが最初のノードに返される	
c	
   c	
   c	
  
®
© 2014 MapR Technologies
クエリプランニングのステージ
パーサ
Logical
プランナ
Physical
プランナ
クエリ
Foreman
プランの
Fragment が
Drill Bit に送
られる
SQL	
  
クエリ	
  
ヒューリスティック	
  
およびコストベース	
  
コストベース	
  
®
© 2014 MapR Technologies
クエリの実行
SQL	
  パーサ	
  
オプティマイザ	
  
スケジューラ	
  
Pig	
  パーサ	
  
Physical	
  プラン	
  
Mongo	
  	
  
Cassandra	
  
HiveQL	
  パーサ	
  
RPC	
  エンドポイント	
  
分散キャッシュ	
  
ストレージエンジンインターフェース	
Operators	
  オペレータ	
  
Foreman	
  
Logical	
  プラン	
  
HDFS	
  
HBase	
  
JDBC	
  エンドポイント	
   ODBC	
  エンドポイント	
  
®
© 2014 MapR Technologies
クエリエンジンの特徴は…
•  カラム型/ベクトル化	
  	
  
•  楽観的/パイプライン化	
  
•  ランタイムコンパイル	
  
•  遅延バインディング	
  
•  拡張が容易	
  
®
© 2014 MapR Technologies
カラム表現
A	
   B	
   C	
   D	
   E	
  
A	
  
B	
  
C	
  
D	
  
ディスク上	
  
E	
  
®
© 2014 MapR Technologies
カラムナエンコーディング
•  カラム内の値を隣り合わせで格納	
  
– 高い圧縮効率	
  
– レンジマップ:	
  最小値と最大値を保管し、存
在しなければスキップ	
  
•  クエリで対象になっているカラムのみを取
得	
  
•  デコードすることなく集約可能	
  
A	
  
B	
  
C	
  
D	
  
ディスク上	
  
E	
  
®
© 2014 MapR Technologies
ランレングスエンコーディング & 合計の計算
•  データセットは次のようにエンコード	
  <値>	
  <繰り返しの数>:	
  
–  2,	
  4	
  	
  (2	
  が	
  4回)	
  
–  8,	
  10	
  	
  (8	
  が	
  10回)	
  
•  ゴール:	
  	
  レコードの合計を求める	
  
•  単純な処理:	
  
–  展開:	
  2,	
  2,	
  2,	
  2,	
  8,	
  8,	
  8,	
  8,	
  8,	
  8,	
  8,	
  8,	
  8,	
  8	
  
–  加算:	
  2	
  +	
  2	
  +	
  2	
  +	
  2	
  +	
  8	
  +	
  8	
  +	
  8	
  +	
  8	
  +	
  8	
  +	
  8	
  +	
  8	
  +	
  8	
  +	
  8	
  +	
  8	
  
•  最適化された処理:	
  	
  	
  2	
  *	
  4	
  +	
  8	
  *	
  10	
  
–  より少ないメモリ、より少ない計算	
  
®
© 2014 MapR Technologies
ビットパックディクショナリソート
•  データセットはディクショナリとビット位置を使ってエンコードされる:	
  
–  ディクショナリ:	
  [Rupert,	
  Bill,	
  Larry]	
  	
  {0,	
  1,	
  2}	
  
–  値:	
  [1,0,1,2,1,2,1,0]	
  
•  単純な処理	
  	
  
–  展開して格納:	
  Bill,	
  Rupert,	
  Bill,	
  Larry,	
  Bill,	
  Larry,	
  Bill,	
  Rupert	
  
–  ソート:	
  〜24回の可変長文字列の比較	
  
•  最適化された処理	
  
–  ディクショナリのソート:	
  {Bill:	
  1,	
  Larry:	
  2,	
  Rupert:	
  0}	
  
–  ビットパック値のソート	
  
–  処理:	
  最大3回の文字列比較,	
  〜24回の固定長ディクショナリビットの比較	
  
®
© 2014 MapR Technologies
Drill の 4値セマンティクス
•  SQL	
  の	
  3値セマンティクス	
  
– True	
  
– False	
  
– Unknown	
  
•  Drill	
  は第4の値を追加	
  
– Repeated	
  
®
© 2014 MapR Technologies
値のバッチ
•  Value	
  Vector	
  
– 同じスキーマを持つ値のリスト	
  
– それぞれの値に4値セマンティクスがつく	
  
•  バッチ (Batch)	
  単位で送信される	
  
– 	
  Batch	
  あたり最大	
  256KB	
  
– 	
  Batch	
  あたり最大	
  64K	
  行	
  
•  1つのリクエストに複数の応答があることを想定して	
  
RPC	
  が設計されている	
  
®
© 2014 MapR Technologies
固定長 Value Vector
®
© 2014 MapR Technologies
Null 許容値
®
© 2014 MapR Technologies
反復値
®
© 2014 MapR Technologies
可変長
®
© 2014 MapR Technologies
反復 Map
®
© 2014 MapR Technologies
ベクトル化
•  Drill	
  は複数のレコードを同時に処理する	
  
–  ワードサイズの操作	
  
–  SIMD	
  インストラクション	
  
•  GCC,	
  LLVM,	
  JVM	
  はみな、さまざまな最適化を自動的に行っている	
  
–  アルゴリズムのコーディングによりさらなる最適化も	
  
•  Logical	
  ベクトル化	
  
–  ビットマップの利用による非常に高速な	
  null	
  チェック	
  
–  CPU	
  パイプラインを高速化するため分岐を回避	
  
®
© 2014 MapR Technologies
ランタイムコンパイラはより高速
•  JIT	
  はスマートだ
がランタイムコン
パイルはより高速	
  
•  Janino:	
  Java	
  ベース
の Java	
  コンパイラ	
  
From	
  hsp://bit.ly/16Xk32x	
  
®
© 2014 MapR Technologies
Drill コンパイラ
ロードされた	
  
クラス	
  
2つのクラスの	
  
バイトコードを	
  
マージ	
  
Janino	
  が	
  
ランタイムバイト	
  
コードをコンパイル	
  
CodeModel	
  
がコードを生成	
  
事前コンパイル	
  
されたバイトコード	
  
テンプレート	
  
®
© 2014 MapR Technologies
楽観的
0	
  
20	
  
40	
  
60	
  
80	
  
100	
  
120	
  
140	
  
160	
  
スピード	
  vs.	
  チェックポイント処理	
  
チェックポイント不要	
  
頻繁なチェックポイント	
  Apache	
  Drill	
  
®
© 2014 MapR Technologies
楽観的実行
•  復旧のコーディングは容易	
  
– 実行中のインスタンスは失敗したクエリの中間ステートを破棄する	
  
•  パイプライン化が可能	
  
– Batch	
  がある程度大きくなればすぐに結果を送信	
  
– バリアのないクエリの分解が必要	
  
®
© 2014 MapR Technologies
パイプライン化
•  Record	
  Batch	
  はノード間でパイプ
ライン化される	
  
–  通常は	
  〜256kB	
  
•  Drill	
  の処理単位	
  
–  オペレータは	
  Batch	
  に対して処理する	
  
•  Batch	
  境界でオペレータの再構
成が発生	
  
DrillBit	
  
DrillBit	
   DrillBit	
  
®
© 2014 MapR Technologies
Record Batch のパイプライン化
SQL	
  パーサ	
  
オプティマイザ	
  
スケジューラ	
  
Pig	
  パーサ	
  
Physical	
  プラン	
  
Mongo	
  	
  
Cassandra	
  
HiveQL	
  パーサ	
  
RPC	
  エンドポイント	
  
分散キャッシュ	
  
ストレージエンジンインターフェース	
Operators	
  オペレータ	
  
Foreman	
  
Logical	
  プラン	
  
HDFS	
  
HBase	
  
JDBC	
  エンドポイント	
   ODBC	
  エンドポイント	
  
®
© 2014 MapR Technologies
	
  
ディスク	
  
パイプライン化
•  ランダムアクセス:	
  コピーや再構成なしでソート	
  
•  シリアライズ/デシリアライズを避ける	
  
•  オフヒープ	
  
(メモリが大きい場合のGC問題を回避)	
  
•  Full	
  specificauon	
  +	
  オフヒープ	
  +	
  Batch	
  
– C/C++	
  オペレータが有効に (早い!)	
  
•  ディスクへの Read/Write	
  
– データがメモリより大きい場合	
  
Drill	
  Bit	
  
メモリに	
  
収まらない場合	
  
ディスクを利用	
  
®
© 2014 MapR Technologies
コストベース最適化
•  拡張が容易なフレームワーク	
  Opuq	
  を利用	
  
•  プラガブルなルールとコストモデル	
  	
  
•  分散実行プラン生成のルール	
  
•  Exchange	
  オペレータを Physical	
  プランに挿入	
  
•  Opuq	
  が並列クエリプランの探索を強化	
  
•  プラガブルコストモデル	
  
–  CPU,	
  IO,	
  メモリ,	
  ネットワークコスト	
  (データ局所性)	
  
–  ストレージエンジンの機能	
  (HDFS	
  vs	
  HIVE	
  vs	
  HBase)	
  
	
  
クエリ
オプティマイザ
プラガブル	
  
ルール	
  
プラガブル	
  
コストモデル	
  
®
© 2014 MapR Technologies
分散実行プランのコスト
•  オペレータは distribu5on	
  プロパティを持つ	
  
•  Hash,	
  Broadcast,	
  Singleton,	
  …	
  	
  	
  
•  Exchange	
  オペレータが分散を実施	
  
•  Hash:	
  HashToRandomExchange	
  
•  Broadcast:	
  	
  BroadcastExchange	
  
•  Singleton:	
  	
  UnionExchange,	
  SingleMergeExchange	
  
•  すべてを数値化しコストを計算して最適な	
  
プランを決定	
  
•  マージジョイン vs	
  ハッシュジョイン	
  
•  パーティションベースジョイン vs	
  
ブロードキャストベースジョイン	
  
•  ストリーミング集約 vs	
  ハッシュ集約	
  
•  集約を	
  1	
  段階で行うか 2	
  段階で行うか	
  
•  部分的にローカル集約 +	
  最終的な集約	
  
HashToRandomExchange	
  
ソート	
  
ストリーミングの集約	
  
データ データ データ
®
© 2014 MapR Technologies
Apache Drill
自己記述型データもし
くは中央管理型メタデ
ータを利用した分析	
  
	
  
	
   SQL/BI	
  ツールおよび	
  
Apache	
  Hive	
  への投資を
再利用	
  
半構造化データ・	
  
ネストデータの分析	
  
…	
  1	
  から作り上げたアーキテクチャにより、	
  
低レイテンシクエリのスケーラブルな処理を実現	
  
フレキシブルな	
  
スキーマ管理	
  
ネストデータに対する	
効率の良い分析	
既存資産との	
  
プラグアンドプレイ 	
  
®
© 2014 MapR Technologies
Apache Drill ロードマップ
• 低レイテンシ SQL
• スキーマレスデータの処理
• ファイル & HBase/M7サポート
• Hive 連携
• ODBC/JDBC を経由した BI
および SQL ツールサポート
データ検索/アドホッククエリ
1.0
• HBase クエリ性能向上
• ネストデータ機能
• 高度な SQL 機能
高度な分析および
オペレーショナルデータ
1.1
• さらなる低レイテンシクエリ
• 単一行 insert/update/
delete
• ワークロード管理
オペレーショナル SQL
2.0
®
© 2014 MapR Technologies
Drill	
  1.0	
   Hive	
  0.13	
  +	
  Tez	
   Impala	
  1.x	
   Shark	
  1.0	
  
レイテンシ	
   Low	
   Medium	
   Low	
   Medium	
  
ファイル	
   Yes	
  (すべての	
  Hive	
  ファ
イル形式に加え	
  JSON,	
  
Text,	
  …)	
  
Yes	
  (すべての Hive	
  ファ
イル形式)	
  
Yes	
  (Parquet,	
  Sequence,	
  
…)	
  
Yes	
  (すべての	
  Hive	
  
ファイル形式)	
  
HBase/M7	
   Yes	
   Yes,	
  性能の問題	
   Yes,	
  一部に問題	
   Yes,	
  性能の問題	
  
スキーマ	
   Hive	
  or	
  スキーマレス	
   Hive	
   Hive	
   Hive	
  
SQL	
  サポート	
   ANSI	
  SQL	
  2003	
   HiveQL	
   HiveQL	
  (サブセット)	
   HiveQL	
  
クライアントサポー
ト	
  
ODBC/JDBC	
   ODBC/JDBC	
   ODBC/JDBC	
   ODBC/JDBC	
  
Hive	
  互換性	
   High	
   High	
   Low	
   High	
  
大きなデータセット	
   Yes	
   Yes	
   Limited	
   Limited	
  
ネストデータ	
   Yes	
   Limited	
   No	
   Limited	
  
同時実行	
   High	
   Limited	
   Medium	
   Limited	
  
インタラクティブ SQL-on-Hadoop の選択肢
®
© 2014 MapR Technologies
バイアスのないオープンソース (Linux を例に)
•  オープンソースディストリビューションは選択肢の提供が鍵	
  
– Linux	
  は MySQL,	
  PostgreSQL,	
  SQLite	
  のすべてを含む	
  
– Linux	
  は Apache	
  hspd,	
  nginx,	
  Lighspd	
  のすべてを含む	
  
•  MapR	
  はバイアスのない選択肢を提供する唯一の Hadoop	
  
	
  
MapR	
  DistribuYon	
  for	
  Hadoop	
   ディストリビューションA	
   ディストリビューションB	
  
Spark	
   Spark	
  および	
  Shark	
  
	
  
Spark	
  のみ	
   なし	
  
インタラク
ティブ SQL	
  
Shark,	
  Impala,	
  Drill,	
  Hive/Tez	
   単一の選択肢	
  
(Impala)	
  
単一の選択肢	
  
(Hive/Tez)	
  
バージョン	
   Hive	
  0.10,	
  0.11,	
  0.12	
  
Pig	
  0.11,	
  012	
  
HBase	
  0.94,	
  0.98	
  
単一のバージョン	
   単一のバージョン	
  
®
© 2014 MapR Technologies
MapR Distribution for Apache Hadoop
MapR Data Platform
(ランダム Read/Write)
データハブ
エンタープライズ
グレード
業務オペレーション
MapR-FS
(POSIX)
MapR-DB
(ハイパフォーマンス NoSQL)
セキュリティ
YARN
Pig
Cascading
Spark
バッチ
Spark
Streaming
Storm*
ストリーミン
グ
HBase
Solr
NoSQL
・検索
Juju
プロビジョニ
ング・コーディ
ネーション
Savannah*
Mahout
MLLib
機械学習
・グラフ
GraphX
MapReduce
v1 & v2
APACHE HADOOP および OSS エコシステム
実行エンジン	
 データガバナンス・オペレーション	
ワークフロー
・データ
ガバナンスTez*
Accumulo*
Hive
Impala
Shark
Drill*
SQL
Sentry* Oozie ZooKeeperSqoop
Knox* WhirrFalcon*Flume
データ
統合・
アクセス
HttpFS
Hue
NFS	
   HDFS	
  API	
   HBase	
  API	
   JSON	
  API	
  
MapRControlSystem
(運用管理・監視)
CLI	
  GUI	
  REST	
  API	
  
* ディストリビューションに統合/認証予定
®
© 2014 MapR Technologies
MapR の Drill 開発チーム
•  ワールドクラスの SQL	
  チーム、〜20	
  名	
  
•  商用データベース開発の経験、のべ	
  150	
  年以上	
  
•  Oracle,	
  DB2,	
  ParAccel,	
  Teradata,	
  SQLServer,	
  Veruca	
  
•  Apache	
  Hive	
  におけるいくつかの困難な問題を解決	
  
®
© 2014 MapR Technologies
アクティブな Drill コミュニティ
•  大きなコミュニティ、急速に拡大中	
  
– コントリビュータ	
  35〜40名、コミッタ	
  16名	
  
– Microsoz,	
  Linked-­‐in,	
  Oracle,	
  Facebook,	
  Visa,	
  Lucidworks,	
  
Concurrent,	
  多数の大学	
  
•  2014	
  年の活動	
  
– 20	
  回を超える Meet-­‐Up、さらに多数を予定	
  
– Hackathon	
  2回、40	
  を超える参加者	
  
•  皆さんの参加、学習、貢献をお待ちしています	
  (Have	
  fun!)	
  
®
© 2014 MapR Technologies
Apache Drill リソース
•  Drill	
  を始めるのはかんたん	
  
– 	
  tarball	
  をダウンロードして、ローカルファイルに対し SQL	
  クエリを
投げるだけ	
  
•  メーリングリスト	
  
–  drill-­‐user@incubator.apache.org	
  
–  drill-­‐dev@incubator.apache.org	
  
•  ドキュメント:	
  	
  hsps://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki	
  	
  
•  GitHub	
  でフォーク:	
  	
  	
  hsp://github.com/apache/incubator-­‐drill/	
  
•  JIRA	
  の作成:	
  	
  	
  hsps://issues.apache.org/jira/browse/DRILL	
  
®
© 2014 MapR Technologies
ありがとうございました!	
  
M.	
  C.	
  Srivas	
  
srivas@mapr.com	
  
ちなみに人材募集中です…	
  	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Kuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltKuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltToshihiro Suzuki
 
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッションApache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッションMapR Technologies Japan
 
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12MapR Technologies Japan
 
HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用Toshihiro Suzuki
 
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...MapR Technologies Japan
 
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19MapR Technologies Japan
 
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09MapR Technologies Japan
 
Fast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンFast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンMapR Technologies Japan
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)Hadoop / Spark Conference Japan
 
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジLINE Corporation
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントCloudera Japan
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5Koichiro Sasaki
 
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...MapR Technologies Japan
 
Hadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese VersionHadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese VersionCloudera, Inc.
 
オライリーセミナー Hive入門 #oreilly0724
オライリーセミナー Hive入門  #oreilly0724オライリーセミナー Hive入門  #oreilly0724
オライリーセミナー Hive入門 #oreilly0724Cloudera Japan
 

Was ist angesagt? (20)

Kuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltKuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakalt
 
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッションApache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
 
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
 
HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用
 
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
 
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
 
Fast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンFast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターン
 
MapR M7 技術概要
MapR M7 技術概要MapR M7 技術概要
MapR M7 技術概要
 
HBase at Ameba
HBase at AmebaHBase at Ameba
HBase at Ameba
 
MapReduce入門
MapReduce入門MapReduce入門
MapReduce入門
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
 
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
 
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
 
Hadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese VersionHadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese Version
 
Apache Hive 紹介
Apache Hive 紹介Apache Hive 紹介
Apache Hive 紹介
 
オライリーセミナー Hive入門 #oreilly0724
オライリーセミナー Hive入門  #oreilly0724オライリーセミナー Hive入門  #oreilly0724
オライリーセミナー Hive入門 #oreilly0724
 

Ähnlich wie Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility or Performance - 2014/07/08 Hadoop Conference Japan 2014

HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)Hadoop / Spark Conference Japan
 
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習x1 ichi
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...Holden Karau
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for SmalltalkSho Yoshida
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームはじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームTaisuke Fukuno
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best PracticeHadoop / Spark Conference Japan
 
OpenStack Trove 技術解説
OpenStack Trove 技術解説OpenStack Trove 技術解説
OpenStack Trove 技術解説Toru Makabe
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006Cloudera Japan
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4アシアル株式会社
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
実動するIot&hadoopから学ぶ会_資料
実動するIot&hadoopから学ぶ会_資料実動するIot&hadoopから学ぶ会_資料
実動するIot&hadoopから学ぶ会_資料FwardNetwork
 
コンテナで作れるFaaS
コンテナで作れるFaaSコンテナで作れるFaaS
コンテナで作れるFaaS真吾 吉田
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜Naohiro Yoshida
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter IntegrationKazuki Nakajima
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Yasuhiro Horiuchi
 
株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料leverages_event
 
RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦幹雄 小川
 

Ähnlich wie Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility or Performance - 2014/07/08 Hadoop Conference Japan 2014 (20)

HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
 
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームはじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
 
OpenStack Trove 技術解説
OpenStack Trove 技術解説OpenStack Trove 技術解説
OpenStack Trove 技術解説
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
test
testtest
test
 
Azure DataLake 大全
Azure DataLake 大全Azure DataLake 大全
Azure DataLake 大全
 
実動するIot&hadoopから学ぶ会_資料
実動するIot&hadoopから学ぶ会_資料実動するIot&hadoopから学ぶ会_資料
実動するIot&hadoopから学ぶ会_資料
 
コンテナで作れるFaaS
コンテナで作れるFaaSコンテナで作れるFaaS
コンテナで作れるFaaS
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
 
株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料
 
RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦
 

Mehr von MapR Technologies Japan

MapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォームMapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォームMapR Technologies Japan
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11MapR Technologies Japan
 
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11MapR Technologies Japan
 
異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法MapR Technologies Japan
 
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャMapR Technologies Japan
 
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...MapR Technologies Japan
 
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014MapR Technologies Japan
 
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...MapR Technologies Japan
 
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...MapR Technologies Japan
 
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26MapR Technologies Japan
 

Mehr von MapR Technologies Japan (12)

MapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォームMapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォーム
 
Hadoop によるゲノム解読
Hadoop によるゲノム解読Hadoop によるゲノム解読
Hadoop によるゲノム解読
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
 
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
 
異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法
 
時系列の世界の時系列データ
時系列の世界の時系列データ時系列の世界の時系列データ
時系列の世界の時系列データ
 
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
 
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
 
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
 
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
 
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
 
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
 

Kürzlich hochgeladen

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Kürzlich hochgeladen (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility or Performance - 2014/07/08 Hadoop Conference Japan 2014

  • 1. ® © 2014 MapR Technologies ® © 2014 MapR Technologies 2014  年  7  月  8  日  
  • 2. ® © 2014 MapR Technologies MapR エンタープライズ Hadoop トップランク   500 以上の顧客  クラウドリーダー  
  • 3. ® © 2014 MapR Technologies Hadoop ディストリビューション Open Source Open Source ディストリビューション A   ディストリビューション C   運用管理   Open Source 運用管理   アーキテクチャのイノベーション  
  • 4. ® © 2014 MapR Technologies MapR Distribution for Apache Hadoop MapR Data Platform (ランダム Read/Write) データハブ エンタープライズ グレード 業務オペレーション MapR-FS (POSIX) MapR-DB (ハイパフォーマンス NoSQL) セキュリティ YARN Pig Cascading Spark バッチ Spark Streaming Storm* ストリーミン グ HBase Solr NoSQL ・検索 Juju プロビジョニ ング・コーディ ネーション Savannah* Mahout MLLib 機械学習 ・グラフ GraphX MapReduce v1 & v2 APACHE HADOOP および OSS エコシステム 実行エンジン データガバナンス・オペレーション ワークフロー ・データ ガバナンスTez* Accumulo* Hive Impala Shark Drill* SQL Sentry* Oozie ZooKeeperSqoop Knox* WhirrFalcon*Flume データ 統合・ アクセス HttpFS Hue NFS   HDFS  API   HBase  API   JSON  API   MapRControlSystem (運用管理・監視) * ディストリビューションに統合/認証予定 CLI  GUI  REST  API  
  • 5. ® © 2014 MapR Technologies MapR Distribution for Apache Hadoop MapR Data Platform (ランダム Read/Write) データハブ エンタープライズ グレード 業務オペレーション MapR-FS (POSIX) MapR-DB (ハイパフォーマンス NoSQL) セキュリティ YARN Pig Cascading Spark バッチ Spark Streaming Storm* ストリーミン グ HBase Solr NoSQL ・検索 Juju プロビジョニ ング・コーディ ネーション Savannah* Mahout MLLib 機械学習 ・グラフ GraphX MapReduce v1 & v2 APACHE HADOOP および OSS エコシステム 実行エンジン データガバナンス・オペレーション ワークフロー ・データ ガバナンスTez* Accumulo* Hive Impala Shark Drill* SQL Sentry* Oozie ZooKeeperSqoop Knox* WhirrFalcon*Flume データ 統合・ アクセス HttpFS Hue NFS   HDFS  API   HBase  API   JSON  API   MapRControlSystem (運用管理・監視) CLI  GUI  REST  API   Apache Drill * ディストリビューションに統合/認証予定
  • 6. ® © 2014 MapR Technologies
  • 7. ® © 2014 MapR Technologies Hadoop は EDW の強化版—なぜか?
  • 8. ® © 2014 MapR Technologies
  • 9. ® © 2014 MapR Technologies
  • 10. ® © 2014 MapR Technologies 複数のスキーマの統合は非常に困難   なぜか?    使い方があらかじめ決められている  
  • 11. ® © 2014 MapR Technologies 縦割りが原因で分析は非常に困難 •  一意の{顧客,  取引} の組み合わせをデー タセットの中からどの ように特定するか?     •  一部のデータが見え ない場合、異常挙動 がないことをどのよ うに保証できるのか?  
  • 12. ® © 2014 MapR Technologies 12 何が価値になるかを事前に知ることはできない
  • 13. ® © 2014 MapR Technologies 13 なぜ Hadoop か?
  • 14. ® © 2014 MapR Technologies ビッグデータのための SQL を再考してみる これまで通り   • 標準  ANSI  SQL   • 普遍的な仕様   • よく知られている   • BIや分析については切り替え不要   • 単一テクノロジー   • 複数のテクノロジーを管理するのは大変   • エンタープライズ向け   • システム・オブ・レコード、高可用性、災害 対策、セキュリティ、マルチテナント、…   新しく創出   • データモデルの柔軟性   • スキーマの急速な進化を許容   • 半構造化データ型をサポート   • アジリティ   • 開発者とDB管理者が同一の場合、セルフサービ スを可能に   • スケーラビリティ   • スキーマ、プロセス、運用管理などあらゆる観点で  
  • 15. ® © 2014 MapR Technologies SQL はすっかり浸透  
  • 16. ® © 2014 MapR Technologies Hadoop の位置づけ  
  • 17. ® © 2014 MapR Technologies YOU  CAN’T  HANDLE  REAL  SQL   『ア・フュー・グッドメン(米/1992)』より  
  • 18. ® © 2014 MapR Technologies SQL    select    *    from    A      where    exists  (                select  1  from  B  where  B.b  <  100  );     •  Apache  HIVE  は上記を処理できないことをご存知ですか?   – 例えば  Hive,  Impala,  Spark/Shark  
  • 19. ® © 2014 MapR Technologies 自己表現型のデータ select    cf.month,    cf.year        from      hbase.table1;     •  通常の  SQL  は上記を処理できないことをご存知ですか?   •  HIVE  や Impala,  Shark  のようなものでもできないですよね?   •  理由はメタストア定義がないから  
  • 20. ® © 2014 MapR Technologies 自己表現型のデータが一般的になってきている 中央管理されたスキーマ   -­‐  静的 -­‐  DB  管理者による管理 -­‐  中央管理のレポジトリ 入念なデータの準備のために長い時間が必要 (ETL,  スキーマの作成/変更,  等)    –  6〜18  ヶ月 自己表現型もしくはスキーマレスデータ   -­‐  動的/更新されていく   -­‐  アプリケーションによる管理   -­‐  データに埋め込まれる     スキーマをなくすことで,  大容量・多用途・更新の 速いデータにより適している Apache  Drill  
  • 21. ® © 2014 MapR Technologies Apache Drill クイックツアー
  • 22. ® © 2014 MapR Technologies データソースはクエリの中で指定 !select timestamp, message! !from dfs1.logs.`AppServerLogs/2014/ Jan/p001.parquet` ! !where errorLevel > 2     Apache  Drillにおけるクラスタ   -­‐  DFS   -­‐  HBase   -­‐  Hive  メタストア   ワークスペース   -­‐  主にサブディ レクトリ   -­‐  HIVE  データ ベース   テーブル   -­‐  パス名   -­‐  Hbase  テーブル   -­‐  Hive  テーブル  
  • 23. ® © 2014 MapR Technologies データソースを直接組み合わせる •  JSON   •  CSV   •  ORC   (つまりすべてのHive型)   •  Parquet   •  HBase  テーブル   •  …  を組み合わせ可能   Select    USERS.name,    USERS.emails.work     from        dfs.logs.`/data/logs`    LOGS,      dfs.users.`/profiles.json`    USERS,   where        LOGS.uid  =  USERS.uid      and        errorLevel  >  5   order  by    count(*);    
  • 24. ® © 2014 MapR Technologies ディレクトリツリー全体も処理可能 // ファイルが対象! select errorLevel, count(*)
 from dfs.logs.`/AppServerLogs/2014/Jan/ part0001.parquet` group by errorLevel;! ! // データコレクション全体が対象: すべての年、すべての月! select errorLevel, count(*)
 from dfs.logs.`/AppServerLogs` 
 ! group by errorLevel! where $dir0 > 2012! , $dir1! dir 0! dir 1!
  • 25. ® © 2014 MapR Technologies JSON に対するクエリ {    name:  classic          fillings:  [                {  name:  sugar  cal:    400  }]}     {  name:  choco        fillings:  [              {  name:  sugar    cal:  400  }              {  name:  chocolate  cal:  300  }]}     {    name:  bostoncreme          fillings:    [              {  name:    sugar    cal:  400  }              {  name:    cream    cal:  1000  }              {  name:    jelly    cal:  600  }]}       donuts.json  
  • 26. ® © 2014 MapR Technologies Drill 内部のカーソル DrillClient drill = new DrillClient().connect( …); ResultReader r = drill.runSqlQuery( "select * from `donuts.json`"); while( r.next()) { String donutName = r.reader( “name").readString(); ListReader fillings = r.reader( "fillings"); while( fillings.next()) { int calories = fillings.reader( "cal").readInteger(); if (calories > 400) print( donutName, calories, fillings.reader( "name").readString()); } } {    name:  classic        fillings:  [                {  name:    sugar  cal:    400  }]}     {  name:  choco      fillings:  [              {  name:  sugar    cal:  400  }              {  name:  chocolate  cal:  300  }]}     {    name:  bostoncreme        fillings:    [              {  name:    sugar    cal:  400  }              {  name:    cream    cal:  1000  }              {  name:    jelly    cal:  600  }]}      
  • 27. ® © 2014 MapR Technologies ネストデータに対する直接クエリ // JSON, parquet, その他のネストレコードの
 マップのフラット化! ! select name, flatten(fillings) as f! from dfs.users.`/donuts.json`! where f.cal < 300;! ! // 300カロリー未満の中身をリスト! {    name:  classic        fillings:  [                {  name:    sugar  cal:    400  }]}     {  name:  choco      fillings:  [              {  name:  sugar    cal:  400  }              {  name:  chocolate  cal:  300  }]}     {    name:  bostoncreme        fillings:    [              {  name:    sugar    cal:  400  }              {  name:    cream    cal:  1000  }              {  name:    jelly    cal:  600  }]}      
  • 28. ® © 2014 MapR Technologies SQL または Fluent API を使った複雑なデータ処理 //  SQL   Result  r  =  drill.sql(  "select  name,  flatten(fillings)  from            `donuts.json`  where  fillings.cal  <  300`);     //  or  Fluent  API   Result  r  =  drill.table(“donuts.json”)      .lt(“fillings.cal”,  300).all();     while(  r.next())  {      String  name  =  r.get(  “name").string();      List  fillings  =  r.get(  “fillings”).list();      while(fillings.next())  {          print(name,  calories,  fillings.get(“name”).string());      }   }   {    name:  classic        fillings:  [                {  name:    sugar  cal:    400  }]}     {  name:  choco      fillings:  [              {  name:  sugar    cal:  400  }              {  name:  plain:  280  }]}     {    name:  bostoncreme        fillings:    [              {  name:    sugar    cal:  400  }              {  name:    cream    cal:  1000  }              {  name:    jelly    cal:  600  }]}      
  • 29. ® © 2014 MapR Technologies 埋め込みデータに対するクエリ // hbaseテーブルdonutsの、カラムファミリcf1内の、カラムdonut-json 内部に埋め込まれたJSON値! ! select d.name, count( d.fillings),! ! from (! select convert_from( cf1.donut-json, json) as d ! ! from hbase.user.`donuts` );! !
  • 30. ® © 2014 MapR Technologies JSON レコード内部へのクエリ // 各JSONレコード自体をひとつのデータベースとして扱える! // 例: 少なくとも1つの中身が300カロリーを超えるすべてのドーナツを得る
 ! !select d.name, count( d.fillings),! max(d.fillings.cal) within record as mincal! !from ( select convert_from( cf1.donut-json, json) as d ! ! from hbase.user.`donuts` )! where mincal > 300; ! !
  • 31. ® © 2014 MapR Technologies a •  クエリ処理の途中でスキーマが変わる可能性がある   •  スキーマ変更イベントによりオペレータの再構成ができるよ うになっている – 柔軟性のためのオーバーヘッドを最小化   – 実際のデータ特性に基づいてより高度な実行時最適化を行える  
  • 32. ® © 2014 MapR Technologies 中央管理ではないメタデータ // 顧客毎のツイート数をカウント。顧客マスタはHive、ツイートデータはHBaseに存在。 hbaseデータはメタデータ情報を持たないことに注目。! ! Select!c.customerName, hb.tweets.count! from !hive.CustomersDB.`Customers` c! join hbase.user.`SocialData` hb! on !c.customerId = convert_from( hb.rowkey, UTF-8);!
  • 33. ® © 2014 MapR Technologies 内部のしくみ
  • 34. ® © 2014 MapR Technologies 基本的な処理の流れ Zookeeper   DFS/HBase   DFS/HBase   DFS/HBase   Drillbit   分散キャッシュ   Drillbit   分散キャッシュ   Drillbit   分散キャッシュ   クエリ   1.  クエリがいずれかの  Drillbit  に到着  (JDBC,  ODBC,  CLI,  protobuf)   2.  Drillbit  はクエリ最適化&ローカリティに基づき実行プランを生成 3.  処理の Fragment  が各ノードで実行される 4.  データが最初のノードに返される c   c   c  
  • 35. ® © 2014 MapR Technologies クエリプランニングのステージ パーサ Logical プランナ Physical プランナ クエリ Foreman プランの Fragment が Drill Bit に送 られる SQL   クエリ   ヒューリスティック   およびコストベース   コストベース  
  • 36. ® © 2014 MapR Technologies クエリの実行 SQL  パーサ   オプティマイザ   スケジューラ   Pig  パーサ   Physical  プラン   Mongo     Cassandra   HiveQL  パーサ   RPC  エンドポイント   分散キャッシュ   ストレージエンジンインターフェース Operators  オペレータ   Foreman   Logical  プラン   HDFS   HBase   JDBC  エンドポイント   ODBC  エンドポイント  
  • 37. ® © 2014 MapR Technologies クエリエンジンの特徴は… •  カラム型/ベクトル化     •  楽観的/パイプライン化   •  ランタイムコンパイル   •  遅延バインディング   •  拡張が容易  
  • 38. ® © 2014 MapR Technologies カラム表現 A   B   C   D   E   A   B   C   D   ディスク上   E  
  • 39. ® © 2014 MapR Technologies カラムナエンコーディング •  カラム内の値を隣り合わせで格納   – 高い圧縮効率   – レンジマップ:  最小値と最大値を保管し、存 在しなければスキップ   •  クエリで対象になっているカラムのみを取 得   •  デコードすることなく集約可能   A   B   C   D   ディスク上   E  
  • 40. ® © 2014 MapR Technologies ランレングスエンコーディング & 合計の計算 •  データセットは次のようにエンコード  <値>  <繰り返しの数>:   –  2,  4    (2  が  4回)   –  8,  10    (8  が  10回)   •  ゴール:    レコードの合計を求める   •  単純な処理:   –  展開:  2,  2,  2,  2,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8   –  加算:  2  +  2  +  2  +  2  +  8  +  8  +  8  +  8  +  8  +  8  +  8  +  8  +  8  +  8   •  最適化された処理:      2  *  4  +  8  *  10   –  より少ないメモリ、より少ない計算  
  • 41. ® © 2014 MapR Technologies ビットパックディクショナリソート •  データセットはディクショナリとビット位置を使ってエンコードされる:   –  ディクショナリ:  [Rupert,  Bill,  Larry]    {0,  1,  2}   –  値:  [1,0,1,2,1,2,1,0]   •  単純な処理     –  展開して格納:  Bill,  Rupert,  Bill,  Larry,  Bill,  Larry,  Bill,  Rupert   –  ソート:  〜24回の可変長文字列の比較   •  最適化された処理   –  ディクショナリのソート:  {Bill:  1,  Larry:  2,  Rupert:  0}   –  ビットパック値のソート   –  処理:  最大3回の文字列比較,  〜24回の固定長ディクショナリビットの比較  
  • 42. ® © 2014 MapR Technologies Drill の 4値セマンティクス •  SQL  の  3値セマンティクス   – True   – False   – Unknown   •  Drill  は第4の値を追加   – Repeated  
  • 43. ® © 2014 MapR Technologies 値のバッチ •  Value  Vector   – 同じスキーマを持つ値のリスト   – それぞれの値に4値セマンティクスがつく   •  バッチ (Batch)  単位で送信される   –   Batch  あたり最大  256KB   –   Batch  あたり最大  64K  行   •  1つのリクエストに複数の応答があることを想定して   RPC  が設計されている  
  • 44. ® © 2014 MapR Technologies 固定長 Value Vector
  • 45. ® © 2014 MapR Technologies Null 許容値
  • 46. ® © 2014 MapR Technologies 反復値
  • 47. ® © 2014 MapR Technologies 可変長
  • 48. ® © 2014 MapR Technologies 反復 Map
  • 49. ® © 2014 MapR Technologies ベクトル化 •  Drill  は複数のレコードを同時に処理する   –  ワードサイズの操作   –  SIMD  インストラクション   •  GCC,  LLVM,  JVM  はみな、さまざまな最適化を自動的に行っている   –  アルゴリズムのコーディングによりさらなる最適化も   •  Logical  ベクトル化   –  ビットマップの利用による非常に高速な  null  チェック   –  CPU  パイプラインを高速化するため分岐を回避  
  • 50. ® © 2014 MapR Technologies ランタイムコンパイラはより高速 •  JIT  はスマートだ がランタイムコン パイルはより高速   •  Janino:  Java  ベース の Java  コンパイラ   From  hsp://bit.ly/16Xk32x  
  • 51. ® © 2014 MapR Technologies Drill コンパイラ ロードされた   クラス   2つのクラスの   バイトコードを   マージ   Janino  が   ランタイムバイト   コードをコンパイル   CodeModel   がコードを生成   事前コンパイル   されたバイトコード   テンプレート  
  • 52. ® © 2014 MapR Technologies 楽観的 0   20   40   60   80   100   120   140   160   スピード  vs.  チェックポイント処理   チェックポイント不要   頻繁なチェックポイント  Apache  Drill  
  • 53. ® © 2014 MapR Technologies 楽観的実行 •  復旧のコーディングは容易   – 実行中のインスタンスは失敗したクエリの中間ステートを破棄する   •  パイプライン化が可能   – Batch  がある程度大きくなればすぐに結果を送信   – バリアのないクエリの分解が必要  
  • 54. ® © 2014 MapR Technologies パイプライン化 •  Record  Batch  はノード間でパイプ ライン化される   –  通常は  〜256kB   •  Drill  の処理単位   –  オペレータは  Batch  に対して処理する   •  Batch  境界でオペレータの再構 成が発生   DrillBit   DrillBit   DrillBit  
  • 55. ® © 2014 MapR Technologies Record Batch のパイプライン化 SQL  パーサ   オプティマイザ   スケジューラ   Pig  パーサ   Physical  プラン   Mongo     Cassandra   HiveQL  パーサ   RPC  エンドポイント   分散キャッシュ   ストレージエンジンインターフェース Operators  オペレータ   Foreman   Logical  プラン   HDFS   HBase   JDBC  エンドポイント   ODBC  エンドポイント  
  • 56. ® © 2014 MapR Technologies   ディスク   パイプライン化 •  ランダムアクセス:  コピーや再構成なしでソート   •  シリアライズ/デシリアライズを避ける   •  オフヒープ   (メモリが大きい場合のGC問題を回避)   •  Full  specificauon  +  オフヒープ  +  Batch   – C/C++  オペレータが有効に (早い!)   •  ディスクへの Read/Write   – データがメモリより大きい場合   Drill  Bit   メモリに   収まらない場合   ディスクを利用  
  • 57. ® © 2014 MapR Technologies コストベース最適化 •  拡張が容易なフレームワーク  Opuq  を利用   •  プラガブルなルールとコストモデル     •  分散実行プラン生成のルール   •  Exchange  オペレータを Physical  プランに挿入   •  Opuq  が並列クエリプランの探索を強化   •  プラガブルコストモデル   –  CPU,  IO,  メモリ,  ネットワークコスト  (データ局所性)   –  ストレージエンジンの機能  (HDFS  vs  HIVE  vs  HBase)     クエリ オプティマイザ プラガブル   ルール   プラガブル   コストモデル  
  • 58. ® © 2014 MapR Technologies 分散実行プランのコスト •  オペレータは distribu5on  プロパティを持つ   •  Hash,  Broadcast,  Singleton,  …       •  Exchange  オペレータが分散を実施   •  Hash:  HashToRandomExchange   •  Broadcast:    BroadcastExchange   •  Singleton:    UnionExchange,  SingleMergeExchange   •  すべてを数値化しコストを計算して最適な   プランを決定   •  マージジョイン vs  ハッシュジョイン   •  パーティションベースジョイン vs   ブロードキャストベースジョイン   •  ストリーミング集約 vs  ハッシュ集約   •  集約を  1  段階で行うか 2  段階で行うか   •  部分的にローカル集約 +  最終的な集約   HashToRandomExchange   ソート   ストリーミングの集約   データ データ データ
  • 59. ® © 2014 MapR Technologies Apache Drill 自己記述型データもし くは中央管理型メタデ ータを利用した分析       SQL/BI  ツールおよび   Apache  Hive  への投資を 再利用   半構造化データ・   ネストデータの分析   …  1  から作り上げたアーキテクチャにより、   低レイテンシクエリのスケーラブルな処理を実現   フレキシブルな   スキーマ管理   ネストデータに対する 効率の良い分析 既存資産との   プラグアンドプレイ  
  • 60. ® © 2014 MapR Technologies Apache Drill ロードマップ • 低レイテンシ SQL • スキーマレスデータの処理 • ファイル & HBase/M7サポート • Hive 連携 • ODBC/JDBC を経由した BI および SQL ツールサポート データ検索/アドホッククエリ 1.0 • HBase クエリ性能向上 • ネストデータ機能 • 高度な SQL 機能 高度な分析および オペレーショナルデータ 1.1 • さらなる低レイテンシクエリ • 単一行 insert/update/ delete • ワークロード管理 オペレーショナル SQL 2.0
  • 61. ® © 2014 MapR Technologies Drill  1.0   Hive  0.13  +  Tez   Impala  1.x   Shark  1.0   レイテンシ   Low   Medium   Low   Medium   ファイル   Yes  (すべての  Hive  ファ イル形式に加え  JSON,   Text,  …)   Yes  (すべての Hive  ファ イル形式)   Yes  (Parquet,  Sequence,   …)   Yes  (すべての  Hive   ファイル形式)   HBase/M7   Yes   Yes,  性能の問題   Yes,  一部に問題   Yes,  性能の問題   スキーマ   Hive  or  スキーマレス   Hive   Hive   Hive   SQL  サポート   ANSI  SQL  2003   HiveQL   HiveQL  (サブセット)   HiveQL   クライアントサポー ト   ODBC/JDBC   ODBC/JDBC   ODBC/JDBC   ODBC/JDBC   Hive  互換性   High   High   Low   High   大きなデータセット   Yes   Yes   Limited   Limited   ネストデータ   Yes   Limited   No   Limited   同時実行   High   Limited   Medium   Limited   インタラクティブ SQL-on-Hadoop の選択肢
  • 62. ® © 2014 MapR Technologies バイアスのないオープンソース (Linux を例に) •  オープンソースディストリビューションは選択肢の提供が鍵   – Linux  は MySQL,  PostgreSQL,  SQLite  のすべてを含む   – Linux  は Apache  hspd,  nginx,  Lighspd  のすべてを含む   •  MapR  はバイアスのない選択肢を提供する唯一の Hadoop     MapR  DistribuYon  for  Hadoop   ディストリビューションA   ディストリビューションB   Spark   Spark  および  Shark     Spark  のみ   なし   インタラク ティブ SQL   Shark,  Impala,  Drill,  Hive/Tez   単一の選択肢   (Impala)   単一の選択肢   (Hive/Tez)   バージョン   Hive  0.10,  0.11,  0.12   Pig  0.11,  012   HBase  0.94,  0.98   単一のバージョン   単一のバージョン  
  • 63. ® © 2014 MapR Technologies MapR Distribution for Apache Hadoop MapR Data Platform (ランダム Read/Write) データハブ エンタープライズ グレード 業務オペレーション MapR-FS (POSIX) MapR-DB (ハイパフォーマンス NoSQL) セキュリティ YARN Pig Cascading Spark バッチ Spark Streaming Storm* ストリーミン グ HBase Solr NoSQL ・検索 Juju プロビジョニ ング・コーディ ネーション Savannah* Mahout MLLib 機械学習 ・グラフ GraphX MapReduce v1 & v2 APACHE HADOOP および OSS エコシステム 実行エンジン データガバナンス・オペレーション ワークフロー ・データ ガバナンスTez* Accumulo* Hive Impala Shark Drill* SQL Sentry* Oozie ZooKeeperSqoop Knox* WhirrFalcon*Flume データ 統合・ アクセス HttpFS Hue NFS   HDFS  API   HBase  API   JSON  API   MapRControlSystem (運用管理・監視) CLI  GUI  REST  API   * ディストリビューションに統合/認証予定
  • 64. ® © 2014 MapR Technologies MapR の Drill 開発チーム •  ワールドクラスの SQL  チーム、〜20  名   •  商用データベース開発の経験、のべ  150  年以上   •  Oracle,  DB2,  ParAccel,  Teradata,  SQLServer,  Veruca   •  Apache  Hive  におけるいくつかの困難な問題を解決  
  • 65. ® © 2014 MapR Technologies アクティブな Drill コミュニティ •  大きなコミュニティ、急速に拡大中   – コントリビュータ  35〜40名、コミッタ  16名   – Microsoz,  Linked-­‐in,  Oracle,  Facebook,  Visa,  Lucidworks,   Concurrent,  多数の大学   •  2014  年の活動   – 20  回を超える Meet-­‐Up、さらに多数を予定   – Hackathon  2回、40  を超える参加者   •  皆さんの参加、学習、貢献をお待ちしています  (Have  fun!)  
  • 66. ® © 2014 MapR Technologies Apache Drill リソース •  Drill  を始めるのはかんたん   –   tarball  をダウンロードして、ローカルファイルに対し SQL  クエリを 投げるだけ   •  メーリングリスト   –  drill-­‐user@incubator.apache.org   –  drill-­‐dev@incubator.apache.org   •  ドキュメント:    hsps://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki     •  GitHub  でフォーク:      hsp://github.com/apache/incubator-­‐drill/   •  JIRA  の作成:      hsps://issues.apache.org/jira/browse/DRILL  
  • 67. ® © 2014 MapR Technologies ありがとうございました!   M.  C.  Srivas   srivas@mapr.com   ちなみに人材募集中です…