SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
®
© 2015 MapR Technologies 1
®
© 2015 MapR Technologies
Drilling Into Data With Apache Drill
Ted Dunning – Chef Application Architect, MapR Technologies
2015 年年 11 ⽉月  12 ⽇日
®
© 2015 MapR Technologies 2
{“about” : “me”}
®
© 2015 MapR Technologies 3
アジェンダ
•  Why Drill?
•  オープンデータの探索索の例例
•  どのように動作するのか?
®
© 2015 MapR Technologies 4
1980 2000 20101990 2020
固定スキーマ
DB管理理者が構造を管理理
動的/柔軟なスキーマ
アプリケーションが構造を管理理
⾮非リレーショナルデータベースリレーショナルデータベース
GB〜~TB TB〜~PBデータサイズ
データベース
データは⾮非リレーショナルデータストアに向かう
データ構造
開発スタイル
構造化 構造化、半構造化、⾮非構造化
計画的(リリースサイクル=数ヶ⽉月〜~数年年) 反復復的(リリースサイクル=数⽇日〜~数週間)
®
© 2015 MapR Technologies 5
⾮非リレーショナルデータストアにSQLを持ち込む
SQL の親しみやすさ NoSQL の機敏さ
•  ANSI SQL セマンティクス
•  低レイテンシ
•  ツール/アプリケーションと
の連携
•  スキーマ管理理なし
–  HDFS (Parquet、JSON など)
–  HBase
–  …
•  データ変換・複製なし
–  データのサイロ化を防ぐ
•  使いやすさ
®
© 2015 MapR Technologies 6
即時分析により「即断可能な」ビジネスを実現
Hadoop

データ
データ
モデリング
変換
データ移動
(任意)
ユーザー
Hadoop

データ
ユーザー
管理理された
アプローチ
探索索的な
アプローチ
新しいビジネスの問いかけソースデータの変更更
結果を得るまでの合計時間: 数週間から数ヶ⽉月
結果を得るまでの合計時間: 数分
®
© 2015 MapR Technologies 7
Drill は  動的なスキーマディスカバリ  をサポート
•  固定スキーマ
•  中央管理理されたレポジトリのスキー  
マを利利⽤用  (Hive メタストア)
•  固定スキーマ、変化するスキーマ、  
もしくはスキーマレス
•  中央管理理されたレポジトリのスキーマ、  
⾃自⼰己記述型データのスキーマを利利⽤用
2動的にスキーマを発⾒見見事前にスキーマを宣⾔言
SCHEMA ON
WRITE
SCHEMA
BEFORE READ
SCHEMA ON THE
FLY
®
© 2015 MapR Technologies 8
-  サブディレクトリ
-  HBase ネームスペース
-  Hive データベース
Drill は「SQL on Everything」を可能にする
SELECT	
  *	
  FROM	
  dfs.yelp.`business.json`	
  !
ワークスペース
-  パス名
-  Hive テーブル
-  HBase テーブル
テーブル
-  DFS (Text, Parquet, JSON)
-  HBase/MapR-DB
-  Hive メタストアHCatalog/
- Hadoop 以外にも対応する簡単な API
ストレージプラグインインスタンス
®
© 2015 MapR Technologies 9
Drill のデータモデルはフレキシブル
JSON
BSON
HBase
Parquet
Avro
CSV
TSV
動的スキーマ固定スキーマ
複雑
フラット
柔軟性
Name! Gender! Age!
Michael! M! 6!
Jennifer! F! 3!
{!
name: {!
first: Michael,!
last: Smith!
},!
hobbies: [ski, soccer],!
district: Los Altos!
}!
{!
name: {!
first: Jennifer,!
last: Gates!
},!
hobbies: [sing],!
preschool: CCLC!
}!
RDBMS/SQL-on-Hadoop テーブル
Apache Drill テーブル
複雑性
®
© 2015 MapR Technologies 10
Yelp Dataset  をドリルしてみる
http://www.yelp.com/dataset_challenge
®
© 2015 MapR Technologies 11
Business
データセット
{	
  
	
  "business_id":	
  "4bEjOyTaDG24SY5TxsaUNQ",	
  
	
  "full_address":	
  "3655	
  Las	
  Vegas	
  Blvd	
  SnThe	
  StripnLas	
  Vegas,	
  NV	
  89109",	
  
	
  "hours":	
  {	
  
	
   	
  "Monday":	
  {"close":	
  "23:00",	
  "open":	
  "07:00"},	
  
	
   	
  "Tuesday":	
  {"close":	
  "23:00",	
  "open":	
  "07:00"},	
  
	
   	
  "Friday":	
  {"close":	
  "00:00",	
  "open":	
  "07:00"},	
  
	
   	
  "Wednesday":	
  {"close":	
  "23:00",	
  "open":	
  "07:00"},	
  
	
   	
  "Thursday":	
  {"close":	
  "23:00",	
  "open":	
  "07:00"},	
  
	
   	
  "Sunday":	
  {"close":	
  "23:00",	
  "open":	
  "07:00"},	
  
	
   	
  "Saturday":	
  {"close":	
  "00:00",	
  "open":	
  "07:00"}	
  
	
  },	
  
	
  "open":	
  true,	
  
	
  "categories":	
  ["Breakfast	
  &	
  Brunch",	
  "Steakhouses",	
  "French",	
  "Restaurants"],	
  
	
  "city":	
  "Las	
  Vegas",	
  
	
  "review_count":	
  4084,	
  
	
  "name":	
  "Mon	
  Ami	
  Gabi",	
  
	
  "neighborhoods":	
  ["The	
  Strip"],	
  
	
  "longitude":	
  -­‐115.172588519464,	
  
	
  "state":	
  "NV",	
  
	
  "stars":	
  4.0,	
  
	
   	
  "attributes":	
  {	
  
	
   	
  "Alcohol":	
  "full_bar”,	
  
	
   	
   	
  "Noise	
  Level":	
  "average",	
  
	
   	
  "Has	
  TV":	
  false,	
  
	
   	
  "Attire":	
  "casual",	
  
	
   	
  "Ambience":	
  {	
  
	
   	
   	
  "romantic":	
  true,	
  
	
   	
   	
  "intimate":	
  false,	
  
	
   	
   	
  "touristy":	
  false,	
  
	
   	
   	
  "hipster":	
  false,	
  
	
   	
   	
   	
  "classy":	
  true,	
  
	
   	
   	
  "trendy":	
  false,	
  
	
   	
   	
   	
  "casual":	
  false	
  
	
   	
  },	
  
	
   	
  "Good	
  For":	
  {"dessert":	
  false,	
  "latenight":	
  false,	
  "lunch":	
  false,	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "dinner":	
  true,	
  "breakfast":	
  false,	
  "brunch":	
  false},	
  
	
  }	
  
}	
  
®
© 2015 MapR Technologies 12
Review データセット
{	
  
	
  	
  "votes":	
  {"funny":	
  0,	
  "useful":	
  2,	
  "cool":	
  1},	
  
	
  	
  "user_id":	
  "Xqd0DzHaiyRqVH3WRG7hzg",	
  
	
  	
  "review_id":	
  "15SdjuK7DmYqUAj6rjGowg",	
  
	
  	
  "stars":	
  5,	
  
	
  	
  "date":	
  "2007-­‐05-­‐17",	
  
	
  	
  "text":	
  "dr.	
  goldberg	
  offers	
  everything	
  ...",	
  
	
  	
  "type":	
  "review",	
  
	
  	
  "business_id":	
  "vcNAWiLM4dR7D2nwwJ7nCA"	
  
}	
  
®
© 2015 MapR Technologies 13
ゼロから結果を得るまでは  2 分
$	
  tar	
  -­‐xvzf	
  apache-­‐drill-­‐1.2.0.tar.gz	
  
	
  
$	
  bin/drill-­‐embedded	
  
	
  
>	
  SELECT	
  state,	
  city,	
  count(*)	
  AS	
  businesses	
  
	
  	
  FROM	
  dfs.yelp.`business.json`	
  
	
  	
  GROUP	
  BY	
  state,	
  city	
  
	
  	
  ORDER	
  BY	
  businesses	
  DESC	
  LIMIT	
  10;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  state	
  	
  	
  	
  |	
  	
  	
  	
  city	
  	
  	
  	
  |	
  	
  businesses	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  NV	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Las	
  Vegas	
  	
  |	
  12021	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  AZ	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Phoenix	
  	
  	
  	
  |	
  7499	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  AZ	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Scottsdale	
  |	
  3605	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  EDH	
  	
  	
  	
  	
  	
  	
  	
  |	
  Edinburgh	
  	
  |	
  2804	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  AZ	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Mesa	
  	
  	
  	
  	
  	
  	
  |	
  2041	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  AZ	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Tempe	
  	
  	
  	
  	
  	
  |	
  2025	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  NV	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Henderson	
  	
  |	
  1914	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  AZ	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Chandler	
  	
  	
  |	
  1637	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  WI	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Madison	
  	
  	
  	
  |	
  1630	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  AZ	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Glendale	
  	
  	
  |	
  1196	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
インストール
ファイルやディ
レクトリにクエ
リ実⾏行行
結果
シェルを起動
(embedded
モード)
®
© 2015 MapR Technologies 14
複雑なデータに対する直感的な SQL アクセス
//	
  午後10時のラスベガス、おいしい中東料理が食べたい	
  
	
  
>	
  SELECT	
  name,	
  stars,	
  b.hours.Friday	
  friday,	
  categories	
  
	
  	
  FROM	
  dfs.yelp.`business.json`	
  b	
  
	
  	
  WHERE	
  b.hours.Friday.`open`	
  <	
  '22:00'	
  AND	
  
	
  	
  	
  	
  	
  	
  	
  	
  b.hours.Friday.`close`	
  >	
  '22:00'	
  AND	
  
	
  	
  	
  	
  	
  	
  	
  	
  REPEATED_CONTAINS(categories,	
  'Mediterranean')	
  AND	
  
	
  	
  	
  	
  	
  	
  	
  	
  city	
  =	
  'Las	
  Vegas'	
  
	
  	
  ORDER	
  BY	
  stars	
  DESC	
  
	
  	
  LIMIT	
  2;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  	
  	
  stars	
  	
  	
  	
  |	
  	
  	
  friday	
  	
  	
  |	
  categories	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Olives	
  	
  	
  	
  	
  |	
  4.0	
  	
  	
  	
  	
  	
  	
  	
  |	
  {"close":"22:30","open":"11:00"}	
  |	
  
["Mediterranean","Restaurants"]	
  |	
  
|	
  Marrakech	
  Moroccan	
  Restaurant	
  |	
  4.0	
  	
  	
  	
  	
  	
  	
  	
  |	
  {"close":"23:00","open":"17:30"}	
  |	
  
["Mediterranean","Middle	
  Eastern","Moroccan","Restaurants"]	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
どのネスト
の階層の
データも検
索索できる	
  
®
© 2015 MapR Technologies 15
ANSI SQL 互換性
//	
  Cool	
  評価が高いレストランを取得	
  
	
  
>	
  SELECT	
  b.name	
  from	
  dfs.yelp.`business.json`	
  b	
  	
  
	
  	
  	
  WHERE	
  b.business_id	
  IN	
  
	
  	
  (SELECT	
  r.business_id	
  FROM	
  dfs.yelp.`review.json`	
  r	
  
	
  	
  	
  GROUP	
  BY	
  r.business_id	
  HAVING	
  SUM(r.votes.cool)	
  >	
  2000	
  ORDER	
  BY	
  	
  
	
  	
  	
  SUM(r.votes.cool)	
  DESC);	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name 	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Earl	
  of	
  Sandwich	
  |	
  
|	
  XS	
  Nightclub	
  |	
  
|	
  The	
  Cosmopolitan	
  of	
  Las	
  Vegas	
  |	
  
|	
  Wicked	
  Spoon	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
使い慣れた SQL  
の機能 (ジョイン、
集計、ソート、
サブクエリ、
SQL データ型)  
を利利⽤用
®
© 2015 MapR Technologies 16
論論理理ビュー
//	
  business	
  および	
 review	
 データセットを組み合わせたビューを作成	
  
	
  
>	
  CREATE	
  OR	
  REPLACE	
  VIEW	
  dfs.tmp.BusinessReviews	
  AS	
  
	
  	
  	
  	
  SELECT	
  b.name,	
  b.stars,	
  r.votes.funny,	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  r.votes.useful,	
  r.votes.cool,	
  r.`date`	
  
	
  	
  	
  	
  	
  	
  FROM	
  dfs.yelp.`business.json`	
  b,	
  dfs.yelp.`review.json`	
  r	
  
	
  	
  	
  	
  	
  	
  WHERE	
  r.business_id	
  =	
  b.business_id;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  	
  ok	
  	
  	
  	
  	
  |	
  	
  summary	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  true	
  	
  	
  	
  	
  	
  	
  |	
  View	
  'BusinessReviews'	
  created	
  successfully	
  in	
  'dfs.tmp'	
  schema	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
	
  
>	
  SELECT	
  COUNT(*)	
  AS	
  Total	
  FROM	
  dfs.tmp.BusinessReviews;	
  
	
  
+------------+
| Total |
+------------+
| 1125458 |
+------------+
粒粒度度が細かく、
分散的な管理理を
可能にする、軽
量量なファイルシ
ステムベースの
ビュー	
  
®
© 2015 MapR Technologies 17
マテリアライズドビュー、またの名を、テーブル
>	
  ALTER	
  SESSION	
  SET	
  `store.format`	
  =	
  'parquet';	
  
	
  
>	
  CREATE	
  TABLE	
  dfs.yelp.BusinessReviewsTbl	
  AS	
  
	
  	
  	
  	
  SELECT	
  b.name,	
  b.stars,	
  r.votes.funny	
  funny,	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  r.votes.useful	
  useful,	
  r.votes.cool	
  cool,	
  r.`date`	
  
	
  	
  	
  	
  	
  	
  FROM	
  dfs.yelp.`business.json`	
  b,	
  dfs.yelp.`review.json`	
  r	
  
	
  	
  	
  	
  	
  	
  WHERE	
  r.business_id	
  =	
  b.business_id;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  Fragment	
  	
  |	
  Number	
  of	
  records	
  written	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  1_0	
  	
  	
  	
  	
  	
  	
  	
  |	
  176448	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  1_1	
  	
  	
  	
  	
  	
  	
  	
  |	
  192439	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  1_2	
  	
  	
  	
  	
  	
  	
  	
  |	
  198625	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  1_3	
  	
  	
  	
  	
  	
  	
  	
  |	
  200863	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  1_4	
  	
  	
  	
  	
  	
  	
  	
  |	
  181420	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  1_5	
  	
  	
  	
  	
  	
  	
  	
  |	
  175663	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
使い慣れた  
CTAS  シンタッ
クスを利利⽤用し、
分析結果をテー
ブルとして保存
®
© 2015 MapR Technologies 18
繰り返し値のサポート
//	
  カテゴリの繰り返しをフラット化	
  
	
  
>	
  SELECT	
  name,	
  categories	
  
	
  	
  FROM	
  dfs.yelp.`business.json`	
  LIMIT	
  3;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  categories	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Eric	
  Goldberg,	
  MD	
  |	
  ["Doctors","Health	
  &	
  Medical"]	
  |	
  
|	
  Pine	
  Cone	
  Restaurant	
  |	
  ["Restaurants"]	
  |	
  
|	
  Deforest	
  Family	
  Restaurant	
  |	
  ["American	
  (Traditional)","Restaurants"]	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
	
  
>	
  SELECT	
  name,	
  FLATTEN(categories)	
  AS	
  categories	
  
	
  	
  FROM	
  dfs.yelp.`business.json`	
  LIMIT	
  5;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  categories	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Eric	
  Goldberg,	
  MD	
  |	
  Doctors	
  	
  	
  	
  |	
  
|	
  Eric	
  Goldberg,	
  MD	
  |	
  Health	
  &	
  Medical	
  |	
  
|	
  Pine	
  Cone	
  Restaurant	
  |	
  Restaurants	
  |	
  
|	
  Deforest	
  Family	
  Restaurant	
  |	
  American	
  (Traditional)	
  |	
  
|	
  Deforest	
  Family	
  Restaurant	
  |	
  Restaurants	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
SQL  クエリの
⼀一部として、繰
り返しやネスト
データ要素を動
的にフラット化
®
© 2015 MapR Technologies 19
繰り返し値を扱うための  ANSI SQL の拡張
//	
  Get	
  most	
  common	
  business	
  categories	
  
	
  	
  
>	
  SELECT	
  category,	
  count(*)	
  AS	
  categorycount	
  
	
  	
  FROM	
  (SELECT	
  name,	
  FLATTEN(categories)	
  AS	
  category	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  dfs.yelp.`business.json`)	
  c	
  
	
  	
  GROUP	
  BY	
  category	
  ORDER	
  BY	
  categorycount	
  DESC;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  category	
  	
  |	
  categorycount|	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Restaurants	
  |	
  14303	
  	
  	
  	
  	
  	
  |	
  
…	
  
|	
  Australian	
  |	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Boat	
  Dealers	
  |	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Firewood	
  	
  	
  |	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2015 MapR Technologies 20
Check in
データセット
{	
  	
  
	
  	
  	
  "checkin_info":{	
  	
  
	
  	
  	
  	
  	
  	
  "3-­‐4":1,	
  
	
  	
  	
  	
  	
  	
  "13-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "6-­‐6":1,	
  
	
  	
  	
  	
  	
  	
  "14-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "14-­‐6":1,	
  
	
  	
  	
  	
  	
  	
  "14-­‐2":1,	
  
	
  	
  	
  	
  	
  	
  "14-­‐3":1,	
  
	
  	
  	
  	
  	
  	
  "19-­‐0":1,	
  
	
  	
  	
  	
  	
  	
  "11-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "13-­‐2":1,	
  
	
  	
  	
  	
  	
  	
  "11-­‐6":2,	
  
	
  	
  	
  	
  	
  	
  "11-­‐3":1,	
  
	
  	
  	
  	
  	
  	
  "12-­‐6":1,	
  
	
  	
  	
  	
  	
  	
  "6-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "5-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "9-­‐2":1,	
  
	
  	
  	
  	
  	
  	
  "9-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "9-­‐6":1,	
  
	
  	
  	
  	
  	
  	
  "5-­‐2":1,	
  
	
  	
  	
  	
  	
  	
  "7-­‐6":1,	
  
	
  	
  	
  	
  	
  	
  "7-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "7-­‐4":1,	
  
	
  	
  	
  	
  	
  	
  "17-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "8-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "10-­‐2":1,	
  
	
  	
  	
  	
  	
  	
  "10-­‐5":1,	
  
	
  	
  	
  	
  	
  	
  "10-­‐6":1	
  
	
  	
  	
  },	
  
	
  	
  	
  "type":"checkin",	
  
	
  	
  	
  "business_id":"JwUE5GmEO-­‐sH1FuwJgKBlQ"	
  
}	
  
®
© 2015 MapR Technologies 21
動的な/未知のカラムのサポート
>	
  SELECT	
  KVGEN(checkin_info)	
  checkins	
  	
  
	
  	
  	
  FROM	
  dfs.yelp.`checkin.json`	
  LIMIT	
  1;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  checkins	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  [{"key":"3-­‐4","value":1},{"key":"13-­‐5","value":1},{"key":"6-­‐6","value":1},{"key":"14-­‐5","value":1},
{"key":"14-­‐6","value":1},{"key":"14-­‐2","value":1},{"key":"14-­‐3","value":1},{"key":"19-­‐0","value":1},
{"key":"11-­‐5","value":1},{"key":"13-­‐2","value":1},{"key":"11-­‐6","value":2},{"key":"11-­‐3","value":1},
{"key":"12-­‐6","value":1},{"key":"6-­‐5","value":1},{"key":"5-­‐5","value":1},{"key":"9-­‐2","value":1},
{"key":"9-­‐5","value":1},{"key":"9-­‐6","value":1},{"key":"5-­‐2","value":1},{"key":"7-­‐6","value":1},
{"key":"7-­‐5","value":1},{"key":"7-­‐4","value":1},{"key":"17-­‐5","value":1},{"key":"8-­‐5","value":1},
{"key":"10-­‐2","value":1},{"key":"10-­‐5","value":1},{"key":"10-­‐6","value":1}]	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
	
  
>	
  SELECT	
  FLATTEN(KVGEN(checkin_info))	
  checkins	
  FROM	
  
dfs.yelp.`checkin.json`	
  limit	
  6;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  checkins	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  {"key":"3-­‐4","value":1}	
  |	
  
|	
  {"key":"13-­‐5","value":1}	
  |	
  
|	
  {"key":"6-­‐6","value":1}	
  |	
  
|	
  {"key":"14-­‐5","value":1}	
  |	
  
|	
  {"key":"14-­‐6","value":1}	
  |	
  
|	
  {"key":"14-­‐2","value":1}	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
動的なカラムを
数多く伴う
Map を key-
value ペアの配
列列に変換
®
© 2015 MapR Technologies 22
動的な/未知のカラムの扱いを簡単に
//	
  日曜深夜のチェックイン数の合計を求める	
  
	
  
>	
  SELECT	
  SUM(checkintbl.checkins.`value`)	
  as	
  SundayMidnightCheckins	
  
FROM	
  	
  
	
  	
  	
  (SELECT	
  FLATTEN(KVGEN(checkin_info))	
  checkins	
  
	
  	
  	
  	
  FROM	
  dfs.yelp.checkin.json`)	
  checkintbl	
  	
  
	
  	
  	
  	
  WHERE	
  checkintbl.checkins.key='23-­‐0';	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  SundayMidnightCheckins	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  8575	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2015 MapR Technologies 23
データソースをまたいだクエリ
//	
  JSON	
  ファイル、Parquet、MongoDB	
  コレクションをジョイン	
  
	
  
>	
  SELECT	
  u.name,	
  b.category,	
  count(1)	
  nb_review	
  
FROM	
  mongo.yelp.`user`	
  u,	
  dfs.yelp.`review.parquet`	
  r,	
  (select	
  business_id,	
  
flatten(categories)	
  category	
  from	
  dfs.yelp.`business.json`	
  )	
  b	
  
WHERE	
  u.user_id	
  =	
  r.user_id	
  
AND	
  b.business_id	
  =	
  r.business_id	
  
GROUP	
  BY	
  u.user_id,	
  u.name,	
  b.category	
  
ORDER	
  BY	
  nb_review	
  DESC	
  
LIMIT	
  10;	
  
	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  name	
  	
  	
  	
  |	
  	
  	
  category	
  	
  	
  |	
  nb_review	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Rand	
  	
  	
  	
  	
  	
  |	
  Restaurants	
  	
  |	
  1086	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  J	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Restaurants	
  	
  |	
  661	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Jennifer	
  	
  |	
  Restaurants	
  	
  |	
  657	
  	
  	
  	
  	
  	
  	
  	
  |	
  
...............	
  
®
© 2015 MapR Technologies 24
ディレクトリは暗黙的なパーティション
logs	
  
├──	
  2014	
  
│	
  	
  	
  ├──	
  1	
  
│	
  	
  	
  ├──	
  2	
  
│	
  	
  	
  ├──	
  3	
  
│	
  	
  	
  └──	
  4	
  
└──	
  2015	
  
	
  	
  	
  	
  └──	
  1	
  
select	
  dir0,	
  count(1)	
  
from	
  dfs.logs.`*`	
  
where	
  dir1	
  in	
  (1,2,3)	
  
group	
  by	
  dir0	
  
®
© 2015 MapR Technologies 25
どのように動作するのか?
®
© 2015 MapR Technologies 26
すべては「Drillbit」
•  「Drillbit」が各ノードで動作
•  インメモリカラムナ実⾏行行
•  コーディネーション、プランニング、実⾏行行
•  ネットワーク接続もしくは未接続
•  JDBC, ODBC, REST をサポート
•  組み込み  Web UI および  CLI
•  拡張性
–  カスタム関数
–  データソース
Drillbit
®
© 2015 MapR Technologies 27
データ局所性
HDFS	
 HDFS	
 HDFS	
mongod	
 mongod	
Windows	
HDFS	
 HDFS	
 HDFS	
HBase	
 HBase	
 HBase	
Mac	
クラスタ デスクトップ
HDFS & HBase クラスタ
HDFS クラスタ
MongoDB クラスタ
®
© 2015 MapR Technologies 28
データのあるところで  Drillbit を動作させる
HDFS	
 HDFS	
 HDFS	
mongod	
 mongod	
Windows	
HDFS	
 HDFS	
 HDFS	
HBase	
 HBase	
 HBase	
Mac	
Drillbit	
 Drillbit	
Drillbit	
 Drillbit	
 Drillbit	
Drillbit	
 Drillbit	
 Drillbit	
Drillbit	
Drillbit	
クラスタ デスクトップ
HDFS & HBase クラスタ
HDFS クラスタ
MongoDB クラスタ
®
© 2015 MapR Technologies 29
クエリ実⾏行行
•  クライアントがいずれかの  Drillbit  に接続
•  その  Drillbit は  Foreman(監督)になる
•  Foreman は実⾏行行プランを⽣生成
–  コストベースクエリ最適化
Drillbit	
 Drillbit	
 Drillbit	
クライアント
®
© 2015 MapR Technologies 30
クエリ実⾏行行
•  実⾏行行  Fragment が他の  Drillbit  に委託される
•  Drillbit は必要に応じてデータを交換
Drillbit	
 Drillbit	
 Drillbit	
クライアント
®
© 2015 MapR Technologies 31
クエリ実⾏行行
•  結果は  Foreman を経由してユーザに返る
Drillbit	
 Drillbit	
 Drillbit	
クライアント
®
© 2015 MapR Technologies 32
セキュリティは?
®
© 2015 MapR Technologies 33
Drill View を介した粒粒度度の細かいセキュリティ
Name City State Credit Card #
Dave San Jose CA 1374-7914-3865-4817
John Boulder CO 1374-9735-1794-9711
Raw ファイル (/raw/cards.csv)
オーナー
Admins
パーミッション  
Admins
ビジネスアナリスト データサイエンティスト
Name City State Credit Card #
Dave San Jose CA 1374-1111-1111-1111
John Boulder CO 1374-1111-1111-1111
データサイエンティスト  View (/views/maskedcards.csv)
物理理データコピーではない
Name City State
Dave San Jose CA
John Boulder CO
ビジネスアナリスト  View
オーナー
Admins
パーミッション
Business
Analysts
オーナー
Admins
パーミッション
Data
Scientists
®
© 2015 MapR Technologies 34
拡張性
®
© 2015 MapR Technologies 35
Apache Drill の拡張
•  ファイルフォーマット
–  ORC
–  XML
–  ...
•  データソース
–  NoSQL データベース
–  検索索エンジン
–  REST
–  ...
•  カスタム関数
®
© 2015 MapR Technologies 36
Drill  を始める際のおすすめ
•  Drill 初⼼心者は?
–  無料料の  MapR オンライントレーニング
–  AWS のクラウド上の  Test Drive Drill
–  MapR Sandbox を利利⽤用した Drill with Hadoop の学習
•  データを分析してみたい⼈人は?
–  デスクトップ PC で「Apache Drill in 10 mins」ガイドを試す
–  Drill をクラスタにダウンロードしてデータ探索索を始める
–  幅広いチュートリアルとドキュメント
•  質問は
–  user@drill.apache.org
–  dev@drill.apache.org
®
© 2015 MapR Technologies 37
®
© 2015 MapR Technologies 38
Q&A
@mapr_japan maprjapan
sales-jp@mapr.com
お問い合わせはこちらまで
MapR
maprtech
mapr-technologies

Mais conteúdo relacionado

Mais procurados

ストリーミングアーキテクチャ: 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
 
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 と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかHBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかMapR Technologies Japan
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたRecruit Technologies
 
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
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントCloudera Japan
 
Fast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンFast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンMapR Technologies Japan
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)Toru Takizawa
 
Kuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltKuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltToshihiro 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 Technologies Japan
 
Hadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese VersionHadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese VersionCloudera, Inc.
 
Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmerSho Shimauchi
 
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...Insight Technology, Inc.
 
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
 

Mais procurados (20)

ストリーミングアーキテクチャ: 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 ...
 
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 と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかHBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
 
時系列の世界の時系列データ
時系列の世界の時系列データ時系列の世界の時系列データ
時系列の世界の時系列データ
 
MapR M7 技術概要
MapR M7 技術概要MapR M7 技術概要
MapR M7 技術概要
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみた
 
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のシステム設計・運用のポイント
 
Fast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンFast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターン
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
 
MapReduce入門
MapReduce入門MapReduce入門
MapReduce入門
 
Kuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltKuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakalt
 
スケールアウト・インメモリ分析の標準フォーマットを目指す 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...
 
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
 
Hadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese VersionHadoop Troubleshooting 101 - Japanese Version
Hadoop Troubleshooting 101 - Japanese Version
 
Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmer
 
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
 
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講演)
 

Destaque

Design Patterns for working with Fast Data
Design Patterns for working with Fast DataDesign Patterns for working with Fast Data
Design Patterns for working with Fast DataMapR Technologies
 
時系列データ分析
時系列データ分析時系列データ分析
時系列データ分析graySpace999
 
異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法MapR Technologies Japan
 
異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知Ken'ichi Matsui
 
Recent Progress in RNN and NLP
Recent Progress in RNN and NLPRecent Progress in RNN and NLP
Recent Progress in RNN and NLPhytae
 
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~sugiyama koki
 
機械学習を用いた異常検知入門
機械学習を用いた異常検知入門機械学習を用いた異常検知入門
機械学習を用いた異常検知入門michiaki ito
 
新たなRNNと自然言語処理
新たなRNNと自然言語処理新たなRNNと自然言語処理
新たなRNNと自然言語処理hytae
 
FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」Shohei Hido
 

Destaque (9)

Design Patterns for working with Fast Data
Design Patterns for working with Fast DataDesign Patterns for working with Fast Data
Design Patterns for working with Fast Data
 
時系列データ分析
時系列データ分析時系列データ分析
時系列データ分析
 
異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法
 
異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知
 
Recent Progress in RNN and NLP
Recent Progress in RNN and NLPRecent Progress in RNN and NLP
Recent Progress in RNN and NLP
 
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
 
機械学習を用いた異常検知入門
機械学習を用いた異常検知入門機械学習を用いた異常検知入門
機械学習を用いた異常検知入門
 
新たなRNNと自然言語処理
新たなRNNと自然言語処理新たなRNNと自然言語処理
新たなRNNと自然言語処理
 
FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」
 

Semelhante a Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12

SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料Koichiro Sasaki
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアShinya Sugiyama
 
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceCloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceShunsuke Kurumatani
 
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~normalian
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for SmalltalkSho Yoshida
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignRyuji TAKEHARA
 
Develop Web Application with Node.js + Express
Develop Web Application with Node.js + ExpressDevelop Web Application with Node.js + Express
Develop Web Application with Node.js + ExpressAkinari Tsugo
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best PracticeHadoop / Spark Conference Japan
 

Semelhante a Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12 (9)

SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
 
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceCloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a Service
 
DNS, DNSSECの仕組み
DNS, DNSSECの仕組みDNS, DNSSECの仕組み
DNS, DNSSECの仕組み
 
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
Develop Web Application with Node.js + Express
Develop Web Application with Node.js + ExpressDevelop Web Application with Node.js + Express
Develop Web Application with Node.js + Express
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
 

Mais de 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
 
実践機械学習 — 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
 

Mais de MapR Technologies Japan (9)

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
 

Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12

  • 1. ® © 2015 MapR Technologies 1 ® © 2015 MapR Technologies Drilling Into Data With Apache Drill Ted Dunning – Chef Application Architect, MapR Technologies 2015 年年 11 ⽉月  12 ⽇日
  • 2. ® © 2015 MapR Technologies 2 {“about” : “me”}
  • 3. ® © 2015 MapR Technologies 3 アジェンダ •  Why Drill? •  オープンデータの探索索の例例 •  どのように動作するのか?
  • 4. ® © 2015 MapR Technologies 4 1980 2000 20101990 2020 固定スキーマ DB管理理者が構造を管理理 動的/柔軟なスキーマ アプリケーションが構造を管理理 ⾮非リレーショナルデータベースリレーショナルデータベース GB〜~TB TB〜~PBデータサイズ データベース データは⾮非リレーショナルデータストアに向かう データ構造 開発スタイル 構造化 構造化、半構造化、⾮非構造化 計画的(リリースサイクル=数ヶ⽉月〜~数年年) 反復復的(リリースサイクル=数⽇日〜~数週間)
  • 5. ® © 2015 MapR Technologies 5 ⾮非リレーショナルデータストアにSQLを持ち込む SQL の親しみやすさ NoSQL の機敏さ •  ANSI SQL セマンティクス •  低レイテンシ •  ツール/アプリケーションと の連携 •  スキーマ管理理なし –  HDFS (Parquet、JSON など) –  HBase –  … •  データ変換・複製なし –  データのサイロ化を防ぐ •  使いやすさ
  • 6. ® © 2015 MapR Technologies 6 即時分析により「即断可能な」ビジネスを実現 Hadoop
 データ データ モデリング 変換 データ移動 (任意) ユーザー Hadoop
 データ ユーザー 管理理された アプローチ 探索索的な アプローチ 新しいビジネスの問いかけソースデータの変更更 結果を得るまでの合計時間: 数週間から数ヶ⽉月 結果を得るまでの合計時間: 数分
  • 7. ® © 2015 MapR Technologies 7 Drill は  動的なスキーマディスカバリ  をサポート •  固定スキーマ •  中央管理理されたレポジトリのスキー   マを利利⽤用  (Hive メタストア) •  固定スキーマ、変化するスキーマ、   もしくはスキーマレス •  中央管理理されたレポジトリのスキーマ、   ⾃自⼰己記述型データのスキーマを利利⽤用 2動的にスキーマを発⾒見見事前にスキーマを宣⾔言 SCHEMA ON WRITE SCHEMA BEFORE READ SCHEMA ON THE FLY
  • 8. ® © 2015 MapR Technologies 8 -  サブディレクトリ -  HBase ネームスペース -  Hive データベース Drill は「SQL on Everything」を可能にする SELECT  *  FROM  dfs.yelp.`business.json`  ! ワークスペース -  パス名 -  Hive テーブル -  HBase テーブル テーブル -  DFS (Text, Parquet, JSON) -  HBase/MapR-DB -  Hive メタストアHCatalog/ - Hadoop 以外にも対応する簡単な API ストレージプラグインインスタンス
  • 9. ® © 2015 MapR Technologies 9 Drill のデータモデルはフレキシブル JSON BSON HBase Parquet Avro CSV TSV 動的スキーマ固定スキーマ 複雑 フラット 柔軟性 Name! Gender! Age! Michael! M! 6! Jennifer! F! 3! {! name: {! first: Michael,! last: Smith! },! hobbies: [ski, soccer],! district: Los Altos! }! {! name: {! first: Jennifer,! last: Gates! },! hobbies: [sing],! preschool: CCLC! }! RDBMS/SQL-on-Hadoop テーブル Apache Drill テーブル 複雑性
  • 10. ® © 2015 MapR Technologies 10 Yelp Dataset  をドリルしてみる http://www.yelp.com/dataset_challenge
  • 11. ® © 2015 MapR Technologies 11 Business データセット {    "business_id":  "4bEjOyTaDG24SY5TxsaUNQ",    "full_address":  "3655  Las  Vegas  Blvd  SnThe  StripnLas  Vegas,  NV  89109",    "hours":  {      "Monday":  {"close":  "23:00",  "open":  "07:00"},      "Tuesday":  {"close":  "23:00",  "open":  "07:00"},      "Friday":  {"close":  "00:00",  "open":  "07:00"},      "Wednesday":  {"close":  "23:00",  "open":  "07:00"},      "Thursday":  {"close":  "23:00",  "open":  "07:00"},      "Sunday":  {"close":  "23:00",  "open":  "07:00"},      "Saturday":  {"close":  "00:00",  "open":  "07:00"}    },    "open":  true,    "categories":  ["Breakfast  &  Brunch",  "Steakhouses",  "French",  "Restaurants"],    "city":  "Las  Vegas",    "review_count":  4084,    "name":  "Mon  Ami  Gabi",    "neighborhoods":  ["The  Strip"],    "longitude":  -­‐115.172588519464,    "state":  "NV",    "stars":  4.0,      "attributes":  {      "Alcohol":  "full_bar”,        "Noise  Level":  "average",      "Has  TV":  false,      "Attire":  "casual",      "Ambience":  {        "romantic":  true,        "intimate":  false,        "touristy":  false,        "hipster":  false,          "classy":  true,        "trendy":  false,          "casual":  false      },      "Good  For":  {"dessert":  false,  "latenight":  false,  "lunch":  false,                                                  "dinner":  true,  "breakfast":  false,  "brunch":  false},    }   }  
  • 12. ® © 2015 MapR Technologies 12 Review データセット {      "votes":  {"funny":  0,  "useful":  2,  "cool":  1},      "user_id":  "Xqd0DzHaiyRqVH3WRG7hzg",      "review_id":  "15SdjuK7DmYqUAj6rjGowg",      "stars":  5,      "date":  "2007-­‐05-­‐17",      "text":  "dr.  goldberg  offers  everything  ...",      "type":  "review",      "business_id":  "vcNAWiLM4dR7D2nwwJ7nCA"   }  
  • 13. ® © 2015 MapR Technologies 13 ゼロから結果を得るまでは  2 分 $  tar  -­‐xvzf  apache-­‐drill-­‐1.2.0.tar.gz     $  bin/drill-­‐embedded     >  SELECT  state,  city,  count(*)  AS  businesses      FROM  dfs.yelp.`business.json`      GROUP  BY  state,  city      ORDER  BY  businesses  DESC  LIMIT  10;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |      state        |        city        |    businesses  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  NV                  |  Las  Vegas    |  12021              |   |  AZ                  |  Phoenix        |  7499                |   |  AZ                  |  Scottsdale  |  3605                |   |  EDH                |  Edinburgh    |  2804                |   |  AZ                  |  Mesa              |  2041                |   |  AZ                  |  Tempe            |  2025                |   |  NV                  |  Henderson    |  1914                |   |  AZ                  |  Chandler      |  1637                |   |  WI                  |  Madison        |  1630                |   |  AZ                  |  Glendale      |  1196                |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   インストール ファイルやディ レクトリにクエ リ実⾏行行 結果 シェルを起動 (embedded モード)
  • 14. ® © 2015 MapR Technologies 14 複雑なデータに対する直感的な SQL アクセス //  午後10時のラスベガス、おいしい中東料理が食べたい     >  SELECT  name,  stars,  b.hours.Friday  friday,  categories      FROM  dfs.yelp.`business.json`  b      WHERE  b.hours.Friday.`open`  <  '22:00'  AND                  b.hours.Friday.`close`  >  '22:00'  AND                  REPEATED_CONTAINS(categories,  'Mediterranean')  AND                  city  =  'Las  Vegas'      ORDER  BY  stars  DESC      LIMIT  2;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |      stars        |      friday      |  categories  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Olives          |  4.0                |  {"close":"22:30","open":"11:00"}  |   ["Mediterranean","Restaurants"]  |   |  Marrakech  Moroccan  Restaurant  |  4.0                |  {"close":"23:00","open":"17:30"}  |   ["Mediterranean","Middle  Eastern","Moroccan","Restaurants"]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   どのネスト の階層の データも検 索索できる  
  • 15. ® © 2015 MapR Technologies 15 ANSI SQL 互換性 //  Cool  評価が高いレストランを取得     >  SELECT  b.name  from  dfs.yelp.`business.json`  b          WHERE  b.business_id  IN      (SELECT  r.business_id  FROM  dfs.yelp.`review.json`  r        GROUP  BY  r.business_id  HAVING  SUM(r.votes.cool)  >  2000  ORDER  BY          SUM(r.votes.cool)  DESC);     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Earl  of  Sandwich  |   |  XS  Nightclub  |   |  The  Cosmopolitan  of  Las  Vegas  |   |  Wicked  Spoon  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   使い慣れた SQL   の機能 (ジョイン、 集計、ソート、 サブクエリ、 SQL データ型)   を利利⽤用
  • 16. ® © 2015 MapR Technologies 16 論論理理ビュー //  business  および review データセットを組み合わせたビューを作成     >  CREATE  OR  REPLACE  VIEW  dfs.tmp.BusinessReviews  AS          SELECT  b.name,  b.stars,  r.votes.funny,                        r.votes.useful,  r.votes.cool,  r.`date`              FROM  dfs.yelp.`business.json`  b,  dfs.yelp.`review.json`  r              WHERE  r.business_id  =  b.business_id;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |          ok          |    summary      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  true              |  View  'BusinessReviews'  created  successfully  in  'dfs.tmp'  schema  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+     >  SELECT  COUNT(*)  AS  Total  FROM  dfs.tmp.BusinessReviews;     +------------+ | Total | +------------+ | 1125458 | +------------+ 粒粒度度が細かく、 分散的な管理理を 可能にする、軽 量量なファイルシ ステムベースの ビュー  
  • 17. ® © 2015 MapR Technologies 17 マテリアライズドビュー、またの名を、テーブル >  ALTER  SESSION  SET  `store.format`  =  'parquet';     >  CREATE  TABLE  dfs.yelp.BusinessReviewsTbl  AS          SELECT  b.name,  b.stars,  r.votes.funny  funny,                        r.votes.useful  useful,  r.votes.cool  cool,  r.`date`              FROM  dfs.yelp.`business.json`  b,  dfs.yelp.`review.json`  r              WHERE  r.business_id  =  b.business_id;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    Fragment    |  Number  of  records  written  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  1_0                |  176448                                        |   |  1_1                |  192439                                        |   |  1_2                |  198625                                        |   |  1_3                |  200863                                        |   |  1_4                |  181420                                        |   |  1_5                |  175663                                        |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   使い慣れた   CTAS  シンタッ クスを利利⽤用し、 分析結果をテー ブルとして保存
  • 18. ® © 2015 MapR Technologies 18 繰り返し値のサポート //  カテゴリの繰り返しをフラット化     >  SELECT  name,  categories      FROM  dfs.yelp.`business.json`  LIMIT  3;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |  categories  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Eric  Goldberg,  MD  |  ["Doctors","Health  &  Medical"]  |   |  Pine  Cone  Restaurant  |  ["Restaurants"]  |   |  Deforest  Family  Restaurant  |  ["American  (Traditional)","Restaurants"]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+     >  SELECT  name,  FLATTEN(categories)  AS  categories      FROM  dfs.yelp.`business.json`  LIMIT  5;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |  categories  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Eric  Goldberg,  MD  |  Doctors        |   |  Eric  Goldberg,  MD  |  Health  &  Medical  |   |  Pine  Cone  Restaurant  |  Restaurants  |   |  Deforest  Family  Restaurant  |  American  (Traditional)  |   |  Deforest  Family  Restaurant  |  Restaurants  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   SQL  クエリの ⼀一部として、繰 り返しやネスト データ要素を動 的にフラット化
  • 19. ® © 2015 MapR Technologies 19 繰り返し値を扱うための  ANSI SQL の拡張 //  Get  most  common  business  categories       >  SELECT  category,  count(*)  AS  categorycount      FROM  (SELECT  name,  FLATTEN(categories)  AS  category                  FROM  dfs.yelp.`business.json`)  c      GROUP  BY  category  ORDER  BY  categorycount  DESC;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    category    |  categorycount|   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Restaurants  |  14303            |   …   |  Australian  |  1                    |   |  Boat  Dealers  |  1                    |   |  Firewood      |  1                    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 20. ® © 2015 MapR Technologies 20 Check in データセット {          "checkin_info":{                "3-­‐4":1,              "13-­‐5":1,              "6-­‐6":1,              "14-­‐5":1,              "14-­‐6":1,              "14-­‐2":1,              "14-­‐3":1,              "19-­‐0":1,              "11-­‐5":1,              "13-­‐2":1,              "11-­‐6":2,              "11-­‐3":1,              "12-­‐6":1,              "6-­‐5":1,              "5-­‐5":1,              "9-­‐2":1,              "9-­‐5":1,              "9-­‐6":1,              "5-­‐2":1,              "7-­‐6":1,              "7-­‐5":1,              "7-­‐4":1,              "17-­‐5":1,              "8-­‐5":1,              "10-­‐2":1,              "10-­‐5":1,              "10-­‐6":1        },        "type":"checkin",        "business_id":"JwUE5GmEO-­‐sH1FuwJgKBlQ"   }  
  • 21. ® © 2015 MapR Technologies 21 動的な/未知のカラムのサポート >  SELECT  KVGEN(checkin_info)  checkins          FROM  dfs.yelp.`checkin.json`  LIMIT  1;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    checkins    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  [{"key":"3-­‐4","value":1},{"key":"13-­‐5","value":1},{"key":"6-­‐6","value":1},{"key":"14-­‐5","value":1}, {"key":"14-­‐6","value":1},{"key":"14-­‐2","value":1},{"key":"14-­‐3","value":1},{"key":"19-­‐0","value":1}, {"key":"11-­‐5","value":1},{"key":"13-­‐2","value":1},{"key":"11-­‐6","value":2},{"key":"11-­‐3","value":1}, {"key":"12-­‐6","value":1},{"key":"6-­‐5","value":1},{"key":"5-­‐5","value":1},{"key":"9-­‐2","value":1}, {"key":"9-­‐5","value":1},{"key":"9-­‐6","value":1},{"key":"5-­‐2","value":1},{"key":"7-­‐6","value":1}, {"key":"7-­‐5","value":1},{"key":"7-­‐4","value":1},{"key":"17-­‐5","value":1},{"key":"8-­‐5","value":1}, {"key":"10-­‐2","value":1},{"key":"10-­‐5","value":1},{"key":"10-­‐6","value":1}]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+     >  SELECT  FLATTEN(KVGEN(checkin_info))  checkins  FROM   dfs.yelp.`checkin.json`  limit  6;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    checkins    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  {"key":"3-­‐4","value":1}  |   |  {"key":"13-­‐5","value":1}  |   |  {"key":"6-­‐6","value":1}  |   |  {"key":"14-­‐5","value":1}  |   |  {"key":"14-­‐6","value":1}  |   |  {"key":"14-­‐2","value":1}  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   動的なカラムを 数多く伴う Map を key- value ペアの配 列列に変換
  • 22. ® © 2015 MapR Technologies 22 動的な/未知のカラムの扱いを簡単に //  日曜深夜のチェックイン数の合計を求める     >  SELECT  SUM(checkintbl.checkins.`value`)  as  SundayMidnightCheckins   FROM          (SELECT  FLATTEN(KVGEN(checkin_info))  checkins          FROM  dfs.yelp.checkin.json`)  checkintbl            WHERE  checkintbl.checkins.key='23-­‐0';     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  SundayMidnightCheckins  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  8575                                      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 23. ® © 2015 MapR Technologies 23 データソースをまたいだクエリ //  JSON  ファイル、Parquet、MongoDB  コレクションをジョイン     >  SELECT  u.name,  b.category,  count(1)  nb_review   FROM  mongo.yelp.`user`  u,  dfs.yelp.`review.parquet`  r,  (select  business_id,   flatten(categories)  category  from  dfs.yelp.`business.json`  )  b   WHERE  u.user_id  =  r.user_id   AND  b.business_id  =  r.business_id   GROUP  BY  u.user_id,  u.name,  b.category   ORDER  BY  nb_review  DESC   LIMIT  10;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |      name        |      category      |  nb_review    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Rand            |  Restaurants    |  1086              |   |  J                  |  Restaurants    |  661                |   |  Jennifer    |  Restaurants    |  657                |   ...............  
  • 24. ® © 2015 MapR Technologies 24 ディレクトリは暗黙的なパーティション logs   ├──  2014   │      ├──  1   │      ├──  2   │      ├──  3   │      └──  4   └──  2015          └──  1   select  dir0,  count(1)   from  dfs.logs.`*`   where  dir1  in  (1,2,3)   group  by  dir0  
  • 25. ® © 2015 MapR Technologies 25 どのように動作するのか?
  • 26. ® © 2015 MapR Technologies 26 すべては「Drillbit」 •  「Drillbit」が各ノードで動作 •  インメモリカラムナ実⾏行行 •  コーディネーション、プランニング、実⾏行行 •  ネットワーク接続もしくは未接続 •  JDBC, ODBC, REST をサポート •  組み込み  Web UI および  CLI •  拡張性 –  カスタム関数 –  データソース Drillbit
  • 27. ® © 2015 MapR Technologies 27 データ局所性 HDFS HDFS HDFS mongod mongod Windows HDFS HDFS HDFS HBase HBase HBase Mac クラスタ デスクトップ HDFS & HBase クラスタ HDFS クラスタ MongoDB クラスタ
  • 28. ® © 2015 MapR Technologies 28 データのあるところで  Drillbit を動作させる HDFS HDFS HDFS mongod mongod Windows HDFS HDFS HDFS HBase HBase HBase Mac Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit クラスタ デスクトップ HDFS & HBase クラスタ HDFS クラスタ MongoDB クラスタ
  • 29. ® © 2015 MapR Technologies 29 クエリ実⾏行行 •  クライアントがいずれかの  Drillbit  に接続 •  その  Drillbit は  Foreman(監督)になる •  Foreman は実⾏行行プランを⽣生成 –  コストベースクエリ最適化 Drillbit Drillbit Drillbit クライアント
  • 30. ® © 2015 MapR Technologies 30 クエリ実⾏行行 •  実⾏行行  Fragment が他の  Drillbit  に委託される •  Drillbit は必要に応じてデータを交換 Drillbit Drillbit Drillbit クライアント
  • 31. ® © 2015 MapR Technologies 31 クエリ実⾏行行 •  結果は  Foreman を経由してユーザに返る Drillbit Drillbit Drillbit クライアント
  • 32. ® © 2015 MapR Technologies 32 セキュリティは?
  • 33. ® © 2015 MapR Technologies 33 Drill View を介した粒粒度度の細かいセキュリティ Name City State Credit Card # Dave San Jose CA 1374-7914-3865-4817 John Boulder CO 1374-9735-1794-9711 Raw ファイル (/raw/cards.csv) オーナー Admins パーミッション   Admins ビジネスアナリスト データサイエンティスト Name City State Credit Card # Dave San Jose CA 1374-1111-1111-1111 John Boulder CO 1374-1111-1111-1111 データサイエンティスト  View (/views/maskedcards.csv) 物理理データコピーではない Name City State Dave San Jose CA John Boulder CO ビジネスアナリスト  View オーナー Admins パーミッション Business Analysts オーナー Admins パーミッション Data Scientists
  • 34. ® © 2015 MapR Technologies 34 拡張性
  • 35. ® © 2015 MapR Technologies 35 Apache Drill の拡張 •  ファイルフォーマット –  ORC –  XML –  ... •  データソース –  NoSQL データベース –  検索索エンジン –  REST –  ... •  カスタム関数
  • 36. ® © 2015 MapR Technologies 36 Drill  を始める際のおすすめ •  Drill 初⼼心者は? –  無料料の  MapR オンライントレーニング –  AWS のクラウド上の  Test Drive Drill –  MapR Sandbox を利利⽤用した Drill with Hadoop の学習 •  データを分析してみたい⼈人は? –  デスクトップ PC で「Apache Drill in 10 mins」ガイドを試す –  Drill をクラスタにダウンロードしてデータ探索索を始める –  幅広いチュートリアルとドキュメント •  質問は –  user@drill.apache.org –  dev@drill.apache.org
  • 37. ® © 2015 MapR Technologies 37
  • 38. ® © 2015 MapR Technologies 38 Q&A @mapr_japan maprjapan sales-jp@mapr.com お問い合わせはこちらまで MapR maprtech mapr-technologies