SlideShare a Scribd company logo
1 of 47
Download to read offline
®
© 2014 MapR Technologies 1
®
© 2014 MapR Technologies
Apache Drill を利用した実データの分析
Tomer Shiran
VP Product Management, MapR Technologies
Co-Founder, PMC Member and Committer, Apache Drill
2014年 11 月 20 日
®
© 2014 MapR Technologies 2
データのサイズは2年で
倍のペースで増えている
®
© 2014 MapR Technologies 3
44 ゼッタバイト
4.4 ゼッタバイト
2011 2013
1.8 ゼッタバイト
IDC による予測では 2020年
に世界全体のデータ量は
44 ゼッタバイト に達する
2020
出典: IDC Digital Universe
®
© 2014 MapR Technologies 4
非構造化データ
構造化データ
1980 2000 20101990 2020
非構造化データ の割合は
企業や組織が集めたデータ
の 80%以上 に増大する
出典: Human-Computer Interaction & Knowledge Discovery in Complex Unstructured, Big Data
合計格納データサイズ
®
© 2014 MapR Technologies 5
1980 2000 20101990 2020
固定スキーマ
DB管理者が構造を管理
動的スキーマ(スキーマフリー)
アプリケーションが構造を管理
「非スキーマ」データストアリレーショナルデータベース
MB〜GB TB〜PBサイズ
データベース
非スキーマデータストアがこのデータをとらえつつある
構造
開発スタイル
構造化 構造化、半構造化、非構造化
計画的(リリースサイクル: 数ヶ月〜数年) 反復的(リリースサイクル: 数日〜数週)
®
© 2014 MapR Technologies 6
ビッグデータの世界の SQL
•  SQL
•  BI(Tableau、MicroStrategy など)
•  低レイテンシ
•  スケーラビリティ
•  データストア上のスキーマの作成や
管理:
–  HDFS(Parquet、JSON など)
–  HBase
–  MongoDB
•  データの変換や複製
2 DON’T WANTWANT
非スキーマデータストアの柔軟性や機敏さ に関する
妥協をすることなく SQL および BI への対応をしたい
®
© 2014 MapR Technologies 7
• Hadoop/NoSQL 向けスキーマフリーのスケールアウトクエリエンジン
• クエリを実行するだけ vs スキーマ中心
• 低レイテンシ
• 使いやすさ
• 業界標準 API: ANSI SQL、ODBC/JDBC、RESTful API
40 以上のコントリビュータ
150 年以上のデータベースおよび

分散システムの開発経験	
APACHE DRILL
®
© 2014 MapR Technologies 8
セルフサービスデータ探索に向けた進化
データモデリング
および変換	
データビジュア

ライゼーション	
IT部門主導	
IT部門主導	
IT部門主導	
セルフサービス	
IT部門主導	
セルフサービス	
不要
セルフサービス	
RDBMSを使った

従来のBI
RDBMSを使った

セルフサービスBI
SQL-on-Hadoop
セルフサービス
データ探索	
ゼロデイ・アナリティクス
®
© 2014 MapR Technologies 9
®
© 2014 MapR Technologies 10
Drill のデータモデルはフレキシブル
HBase
JSON
BSON
CSV
TSV
Parquet
Avro
スキーマレス固定スキーマ
フラット
複雑
柔軟性
柔軟性
名前! 性別! 年齢!
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 テーブル
®
© 2014 MapR Technologies 11
Drill は 動的なスキーマディスカバリ をサポート
•  固定スキーマ	
•  中央管理されたレポジトリのスキー
マを利用 (Hive メタストア)
•  固定スキーマ、変化するスキーマ、
もしくはスキーマレス	
•  中央管理されたレポジトリのスキーマ、
自己記述型データのスキーマを利用	
2
SCHEMA ON
WRITE
SCHEMA
BEFORE READ
SCHEMA ON THE
FLY
事前にスキーマを宣言	
 動的にスキーマを発見
®
© 2014 MapR Technologies 12
ネイティブ JSON
SELECT	
  json_value(po_document,	
  
	
  	
  '$.AllowPartialShipment’	
  RETURNING	
  NUMBER)	
  
FROM	
  	
  	
  j_purchaseorder;	
  
SELECT	
  po_document.AllowPartialShipment	
  	
  
FROM	
  	
  	
  j_purchaseorder;	
  
Oracle の JSON クエリ:
Drill のJSON クエリ:
リレーショナルデータベースはスキーマフリーな JSON にきちんと対応できない
®
© 2014 MapR Technologies 13© 2014 MapR Technologies ®
アーキテクチャ
®
© 2014 MapR Technologies 14
アーキテクチャの概要
•  コモディティサーバのクラスタ
–  各ノード上でデーモン (drillbit) が動作
•  他の実行エンジンには非依存(MapReduce、Spark、Tez)
–  より優れた性能と管理性
•  ZooKeeper が逐一変化するクラスタのメンバーシップ情報を管理
–  drillbit は ZooKeeper を利用してクラスタ内の他の drillbit を見つける
–  クライアントは ZooKeeper を利用して drillbit を見つける
•  データ処理単位は カラムナレコードバッチ	
  
–  性能への影響を最小限に抑えつつスキーマの柔軟性を実現
®
© 2014 MapR Technologies 15
Drill はデータ局所性を最大限活用する
データソース ベストプラクティス
HDFS または MapR-FS 各 DataNode 上の drillbit がアクセス
HBase または MapR-DB 各 RegionServer 上の drillbit がアクセス
MongoDB 各 mongod 上の drillbit がアクセス(レプリカ使用時はレプリカノード上で稼働)
drillbit	
  
DataNode/
RegionServer/
mongod	
  
drillbit	
  
DataNode/
RegionServer/
mongod	
  
drillbit	
  
DataNode/
RegionServer/
mongod	
  
ZooKeeper
ZooKeeper
ZooKeeper
…
®
© 2014 MapR Technologies 16
SELECT* クエリ実行
drillbit	
  
ZooKeeper
クライアント
(JDBC, ODBC,
REST)
1.  drillbit を見つけ
る(セッションごと)
3.  論理および物理実行プランを作成
4.  クラスタに個別のフラグメントの実行を行わせる
(完全な分散実行)
ZooKeeper
ZooKeeper
drillbit	
  drillbit	
  
2.  drillbit	
  にク
エリを送信
5.  クライアントに
結果を返す
* CTAS (CREATE TABLE AS SELECT) クエリはステップ 1〜4 を含む
®
© 2014 MapR Technologies 17
drillbit 内部のコアモジュール	
  
SQL パーサ
Hive
HBase
分散キャッシュ
ストレージプラグイン
MongoDB
DFS
物理プラン
実行エンジン論理プラン オプティマイザ
RPC エンドポイント
®
© 2014 MapR Technologies 18© 2014 MapR Technologies ®
例: 実データの分析
®
© 2014 MapR Technologies 19
デモの概要
1.  Drill の起動
2.  DFS および MongoDB ストレージプラグインの設定
3.  データの探索
–  基本操作
–  複雑なデータ
–  ビュー
®
© 2014 MapR Technologies 20© 2014 MapR Technologies ®
Drill の起動
®
© 2014 MapR Technologies 21
Drill を組み込みモードで起動(sqlline)
$	
  tar	
  xf	
  apache-­‐drill-­‐0.7.0.tar.gz	
  
$	
  cd	
  apache-­‐drill-­‐0.7.0	
  
$	
  bin/sqlline	
  -­‐u	
  jdbc:drill:zk=local	
  
>	
  SELECT	
  *	
  
	
  	
  FROM	
  dfs.root.`/Users/tshiran/Development/demo/data/yelp/user.json`	
  
	
  	
  LIMIT	
  1;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  yelping_since	
  |	
  	
  	
  votes	
  	
  	
  	
  |	
  review_count	
  |	
  	
  	
  	
  name	
  	
  	
  	
  |	
  	
  user_id	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  2012-­‐02	
  	
  	
  	
  	
  	
  	
  |	
  {"funny":1,"useful":5,"cool":0}	
  |	
  6	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Lee	
  	
  	
  	
  	
  	
  	
  	
  |	
  
qtrmBGNqCvupHMHL_bKFgQ	
  |	
  
•  drillbit(Drill デーモン)が組み込みモードで自動的に起動する
•  組み込みモードでは ZooKeeper は不要(したがって zk=local)
•  組み込みモードでは BI クライアント(JDBC/ODBC)は使用できない
Web UI にアクセスが可能になる:
http://localhost:8047
®
© 2014 MapR Technologies 22
または Run Drill を分散モードで起動…
$	
  zkServer	
  start	
  
•  ZooKeeper(zkServer)を稼働させる:
•  Web UI にアクセス: http://localhost:8047
•  クライアントからクラスタに接続(sqlline を使用):
•  クライアント(例: sqlline) は ZooKeeper に接続してクラスタノードを見つける
•  1つの ZooKeeper のセットに 複数の Drill クラスタが登録されている場合には、JDBC 接続文字列
の中で希望のクラスタを指定する: jdbc:drill:zk=localhost:2181/drill/<クラスタ名>
•  ZooKeeper の稼働状態が不明の場合 telnet	
  localhost	
  2181 を実行して接続できるか確認
•  conf/drill-­‐override.conf 内で Drill クラスタ名と ZooKeeper ノードを定義
•  drillbit を起動:	
  
$	
  bin/drillbit.sh	
  start	
  
$	
  bin/sqlline	
  -­‐u	
  jdbc:drill:zk=localhost:2181	
  
®
© 2014 MapR Technologies 23© 2014 MapR Technologies ®
ストレージプラグインの設定
®
© 2014 MapR Technologies 24
MongoDB ストレージプラグインを有効化
®
© 2014 MapR Technologies 25
DFS ストレージプラグインでワークスペースを定義
•  d
®
© 2014 MapR Technologies 26© 2014 MapR Technologies ®
データの探索: 基本操作
®
© 2014 MapR Technologies 27
データ: DFS ファイル
{	
  
	
  	
  "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"	
  
}	
  
®
© 2014 MapR Technologies 28
データ: MongoDB コレクション
$	
  mongo	
  
MongoDB	
  shell	
  version:	
  2.6.5	
  
>	
  show	
  databases;	
  
admin	
  	
  (empty)	
  
local	
  	
  0.078GB	
  
yelp	
  	
  	
  0.453GB	
  
>	
  use	
  yelp	
  
>	
  db.users.findOne()	
  
{	
  
	
  "_id"	
  :	
  ObjectId("54566cdf3237149de181a92a"),	
  
	
  "yelping_since"	
  :	
  "2012-­‐02",	
  
	
  "votes"	
  :	
  {	
  
	
   	
  "funny"	
  :	
  1,	
  
	
   	
  "useful"	
  :	
  5,	
  
	
   	
  "cool"	
  :	
  0	
  
	
  },	
  
	
  "review_count"	
  :	
  6,	
  
	
  "name"	
  :	
  "Lee",	
  
	
  "user_id"	
  :	
  "qtrmBGNqCvupHMHL_bKFgQ",	
  
	
  "friends"	
  :	
  [	
  ]	
  
}	
  
®
© 2014 MapR Technologies 29
やってみましょう
>	
  SELECT	
  *	
  
	
  	
  FROM	
  dfs.root.`/Users/tshiran/Development/
demo/data/yelp/review.json`	
  
	
  	
  WHERE	
  stars	
  =	
  1	
  
	
  	
  LIMIT	
  1;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  votes	
  	
  	
  	
  |	
  	
  user_id	
  	
  	
  |	
  review_id	
  	
  |	
  	
  	
  stars	
  	
  	
  	
  |	
  	
  	
  	
  date	
  	
  	
  	
  |	
  	
  	
  	
  text	
  	
  	
  	
  |	
  	
  	
  	
  type	
  	
  	
  	
  |	
  business_id	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  {"funny":0,"useful":0,"cool":0}	
  |	
  Qrs3EICADUKNFoUq2iHStA	
  |	
  _ePLBPrkrf4bhyiKWEn4Qg	
  |	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  2013-­‐04-­‐19	
  
|	
  I	
  don't	
  know	
  what	
  Dr.	
  Goldberg	
  was	
  like	
  before	
  	
  moving	
  to	
  Arizona,	
  but	
  let	
  me	
  tell	
  you,	
  STAY	
  AWAY	
  from	
  this	
  
doctor	
  and	
  this	
  office.	
  |	
  review	
  	
  	
  	
  	
  |	
  vcNAWiLM4dR7D2nwwJ7nCA	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 30
ストレージプラグインの利用とワークスペース
>	
  SELECT	
  *	
  FROM	
  dfs.root.`/Users/tshiran/Development/demo/data/
yelp/review.json`	
  LIMIT	
  1;	
  
>	
  SELECT	
  *	
  FROM	
  dfs.demo.`yelp/review.json`	
  LIMIT	
  1;	
  
>	
  SELECT	
  *	
  FROM	
  mongo.yelp.users	
  LIMIT	
  1;	
  
>	
  USE	
  mongo.yelp;	
  
>	
  SELECT	
  *	
  FROM	
  users	
  LIMIT	
  1;	
  
ストレージプラグイン
ワークスペース
ワークスペースからの相対パス
ストレージプラグイン ワークスペース テーブル
dfs パス ワークスペースからの相対パス
mongo データベース コレクション
hive データベース テーブル
hbase ネームスペース テーブル
®
© 2014 MapR Technologies 31
最も多いユーザ名(MongoDB)
>	
  SELECT	
  name,	
  count(*)	
  AS	
  users	
  
	
  	
  FROM	
  mongo.yelp.users	
  
	
  	
  GROUP	
  BY	
  name	
  
	
  	
  ORDER	
  BY	
  users	
  DESC	
  LIMIT	
  10;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  	
  	
  users	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  David	
  	
  	
  	
  	
  	
  |	
  2453	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  John	
  	
  	
  	
  	
  	
  	
  |	
  2378	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Michael	
  	
  	
  	
  |	
  2322	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Chris	
  	
  	
  	
  	
  	
  |	
  2202	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Mike	
  	
  	
  	
  	
  	
  	
  |	
  2037	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Jennifer	
  	
  	
  |	
  1867	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Jessica	
  	
  	
  	
  |	
  1463	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Jason	
  	
  	
  	
  	
  	
  |	
  1457	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Michelle	
  	
  	
  |	
  1439	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Brian	
  	
  	
  	
  	
  	
  |	
  1436	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 32
最も店舗が多い都市
>	
  SELECT	
  state,	
  city,	
  count(*)	
  AS	
  businesses	
  
	
  	
  FROM	
  dfs.demo.`/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	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 33© 2014 MapR Technologies ®
データの探索:複雑なデータ
®
© 2014 MapR Technologies 34
business.json (1)
{	
  
	
  "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,	
  
®
© 2014 MapR Technologies 35
business.json (2)
	
  "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},	
  
	
  }	
  
}	
  
®
© 2014 MapR Technologies 36
今どの店舗が開いてる(22:00)?
>	
  SELECT	
  name,	
  b.hours	
  
	
  	
  FROM	
  dfs.demo.`yelp/business.json`	
  b	
  
	
  	
  WHERE	
  b.hours.Saturday.`open`	
  <	
  '22:00'	
  AND	
  
	
  	
  	
  	
  	
  	
  	
  	
  b.hours.Saturday.`close`	
  >	
  '22:00'	
  
	
  	
  LIMIT	
  2;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  	
  	
  hours	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Chang	
  Jiang	
  Chinese	
  Kitchen	
  |	
  {"Tuesday":{"close":"22:00","open":"11:00"},"Friday":
{"close":"22:30","open":"11:00"},"Monday":{"close":"22:00","open":"11:00"},"Wednesday":
{"close":"22:00","open":"11:00"},"Thursday":{"close":"22:00","open":"11:00"},"Sunday":
{"close":"21:00","open":"16:00"},"Saturday":{"close":"22:30","open":"11:00"}}	
  |	
  
|	
  Grand	
  China	
  Restaurant	
  |	
  {"Tuesday":{"close":"22:00","open":"11:00"},"Friday":
{"close":"23:00","open":"11:00"},"Monday":{"close":"22:00","open":"11:00"},"Wednesday":
{"close":"22:00","open":"11:00"},"Thursday":{"close":"22:00","open":"11:00"},"Sunday":
{"close":"22:00","open":"12:00"},"Saturday":{"close":"23:00","open":"11:00"}}	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 37
午後10時のラスベガス、おいしい中東料理が食べたい
>	
  SELECT	
  name,	
  stars,	
  b.hours.Friday,	
  categories	
  
	
  	
  FROM	
  dfs.demo.`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	
  	
  	
  	
  |	
  	
  	
  EXPR$2	
  	
  	
  |	
  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"]	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 38
繰り返しの値のフラット化
>	
  SELECT	
  name,	
  categories	
  
	
  	
  FROM	
  dfs.demo.`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.demo.`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	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 39
最も多い店舗カテゴリと最も少ない店舗カテゴリ
>	
  SELECT	
  category,	
  count(*)	
  AS	
  businesses	
  
	
  	
  FROM	
  (SELECT	
  name,	
  FLATTEN(categories)	
  AS	
  category	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  dfs.demo.`yelp/business.json`)	
  c	
  
	
  	
  GROUP	
  BY	
  category	
  ORDER	
  BY	
  businesses	
  DESC;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  category	
  	
  |	
  businesses	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Restaurants	
  |	
  14303	
  	
  	
  	
  	
  	
  |	
  
…	
  
|	
  Australian	
  |	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Boat	
  Dealers	
  |	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Firewood	
  	
  	
  |	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
715	
  rows	
  selected	
  (3.439	
  seconds)	
  
>	
  SELECT	
  name,	
  categories	
  FROM	
  dfs.demo.`yelp/business.json`	
  
WHERE	
  true	
  and	
  REPEATED_CONTAINS(categories,	
  'Australian');	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  categories	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  The	
  Australian	
  AZ	
  |	
  ["Bars","Burgers","Nightlife","Australian","Sports	
  Bars","Restaurants"]	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 40© 2014 MapR Technologies ®
データの探索: ビュー
®
© 2014 MapR Technologies 41
名前-性別マッピングのビューの作成
>	
  CREATE	
  VIEW	
  dfs.tmp.`names`	
  AS	
  
	
  	
  	
  	
  SELECT	
  columns[0]	
  AS	
  name,	
  columns[4]	
  AS	
  gender	
  
	
  	
  	
  	
  FROM	
  dfs.demo.`names.csv`;	
  
>	
  USE	
  dfs.tmp;	
  
>	
  CREATE	
  VIEW	
  names1	
  ASSELECT	
  columns[0]	
  AS	
  name,	
  columns[4]	
  AS	
  gender	
  FROM	
  
dfs.demo.`names.csv`;	
  
>	
  SELECT	
  *	
  FROM	
  dfs.tmp.names	
  WHERE	
  name	
  =	
  'John';	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  	
  	
  gender	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  John	
  	
  	
  	
  	
  	
  	
  |	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
columns[0]	
   columns[4]	
  
names.csv:	
  
®
© 2014 MapR Technologies 42
Yelp 内で最も多い名前(と性別)
>	
  SELECT	
  u.name,	
  n.gender,	
  count(*)	
  AS	
  number	
  
	
  	
  FROM	
  mongo.yelp.users	
  u,	
  dfs.tmp.names	
  n	
  
	
  	
  WHERE	
  u.name	
  =	
  n.name	
  
	
  	
  GROUP	
  BY	
  u.name,	
  n.gender	
  
	
  	
  ORDER	
  BY	
  number	
  DESC	
  LIMIT	
  10;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  name	
  	
  	
  	
  |	
  	
  	
  gender	
  	
  	
  |	
  	
  	
  number	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  David	
  	
  	
  	
  	
  	
  |	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  2453	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  John	
  	
  	
  	
  	
  	
  	
  |	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  2378	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Michael	
  	
  	
  	
  |	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  2322	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Chris	
  	
  	
  	
  	
  	
  |	
  Unknown	
  	
  	
  	
  |	
  2202	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Mike	
  	
  	
  	
  	
  	
  	
  |	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  2037	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Jennifer	
  	
  	
  |	
  Female	
  	
  	
  	
  	
  |	
  1867	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Jessica	
  	
  	
  	
  |	
  Female	
  	
  	
  	
  	
  |	
  1463	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Jason	
  	
  	
  	
  	
  	
  |	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  1457	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Michelle	
  	
  	
  |	
  Female	
  	
  	
  	
  	
  |	
  1439	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Brian	
  	
  	
  	
  	
  	
  |	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  1436	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 43
誰がより高い評価をしているか – 男性 or 女性?
>	
  SELECT	
  n.gender,	
  count(*)	
  AS	
  users,	
  round(avg(average_stars),	
  2)	
  stars	
  
	
  	
  FROM	
  mongo.yelp.users	
  u,	
  dfs.tmp.names	
  n	
  
	
  	
  WHERE	
  u.name	
  =	
  n.name	
  
	
  	
  GROUP	
  BY	
  n.gender;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  gender	
  	
  	
  |	
  	
  	
  users	
  	
  	
  	
  |	
  	
  	
  stars	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Female	
  	
  	
  	
  	
  |	
  103684	
  	
  	
  	
  	
  |	
  3.77	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  97430	
  	
  	
  	
  	
  	
  |	
  3.696	
  	
  	
  	
  	
  	
  |	
  
|	
  Unknown	
  	
  	
  	
  |	
  18409	
  	
  	
  	
  	
  	
  |	
  3.727	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
®
© 2014 MapR Technologies 44
誰がよくレビューを書いているか – 男性 or 女性?
>	
  SELECT	
  n.gender,	
  round(avg(length(r.text)))	
  AS	
  review_length	
  
	
  	
  FROM	
  dfs.demo.`yelp/review.json`	
  r,	
  
	
  	
  	
  	
  	
  	
  	
  mongo.yelp.users	
  u,	
  
	
  	
  	
  	
  	
  	
  	
  dfs.tmp.names	
  n	
  
	
  	
  WHERE	
  u.name	
  =	
  n.name	
  AND	
  r.user_id	
  =	
  u.user_id	
  
	
  	
  GROUP	
  BY	
  n.gender;	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  gender	
  	
  	
  |	
  review_length	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  Male	
  	
  	
  	
  	
  	
  	
  |	
  665	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Female	
  	
  	
  	
  	
  |	
  730	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  Unknown	
  	
  	
  	
  |	
  711	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
3つのジョインを行い見つける…
®
© 2014 MapR Technologies 45
Drill ツイート(@ApacheDrill)
®
© 2014 MapR Technologies 46
ありがとうございました
•  もっと知るには: incubator.apache.org/drill/
•  ダウンロード: incubator.apache.org/drill/download/
•  ご質問は: drill-user@incubator.apache.org
•  連絡先: tshiran@apache.org
®
© 2014 MapR Technologies 47
Thank You
@mapr maprtech
tshiran@mapr.com
Tomer Shiran, VP Product Management
MapRTechnologies
maprtech
mapr-technologies

More Related Content

What's hot

TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門雅也 山本
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"Kentaro Yoshida
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタSatoyuki Tsukano
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Takeshi Fukuhara
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやyoku0825
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)NTT DATA Technology & Innovation
 
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxDatabricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxotato
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモMasayuki Ozawa
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうkasaharatt
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返りSotaro Kimura
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkTakanori Suzuki
 
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4SORACOM,INC
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...Tatsuya Watanabe
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターンyoku0825
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 

What's hot (20)

TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
BERTによる文書系AIの取り組みと、Azureを用いたテーブルデータの説明性実現!
BERTによる文書系AIの取り組みと、Azureを用いたテーブルデータの説明性実現!BERTによる文書系AIの取り組みと、Azureを用いたテーブルデータの説明性実現!
BERTによる文書系AIの取り組みと、Azureを用いたテーブルデータの説明性実現!
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxDatabricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptx
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモ
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
 
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 

Similar to Apache Drill を利用した実データの分析

Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11MapR Technologies Japan
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15MapR 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
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎Insight Technology, Inc.
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoTreasure Data, Inc.
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展Recruit Technologies
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best PracticeHadoop / Spark Conference Japan
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Taro L. Saito
 
Spark徹底入門 #cwt2015
Spark徹底入門 #cwt2015Spark徹底入門 #cwt2015
Spark徹底入門 #cwt2015Cloudera 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
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame IntroductionYu Ishikawa
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC EnterpriseYusukeKuramata
 
D3.jsを使ったデータビジュアライズ勉強会
D3.jsを使ったデータビジュアライズ勉強会D3.jsを使ったデータビジュアライズ勉強会
D3.jsを使ったデータビジュアライズ勉強会aitc_jp
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたRecruit Technologies
 
HDFS Supportaiblity Improvements
HDFS Supportaiblity ImprovementsHDFS Supportaiblity Improvements
HDFS Supportaiblity ImprovementsCloudera Japan
 
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用Developers Summit
 
Dapr on Kubernetes
Dapr on KubernetesDapr on Kubernetes
Dapr on KubernetesShiho ASA
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 

Similar to Apache Drill を利用した実データの分析 (20)

Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
 
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
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
 
Spark徹底入門 #cwt2015
Spark徹底入門 #cwt2015Spark徹底入門 #cwt2015
Spark徹底入門 #cwt2015
 
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セッション
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
D3.jsを使ったデータビジュアライズ勉強会
D3.jsを使ったデータビジュアライズ勉強会D3.jsを使ったデータビジュアライズ勉強会
D3.jsを使ったデータビジュアライズ勉強会
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみた
 
HDFS Supportaiblity Improvements
HDFS Supportaiblity ImprovementsHDFS Supportaiblity Improvements
HDFS Supportaiblity Improvements
 
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
 
Dapr on Kubernetes
Dapr on KubernetesDapr on Kubernetes
Dapr on Kubernetes
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 

More from MapR Technologies Japan

Fast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンFast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンMapR Technologies Japan
 
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなすMapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなすMapR Technologies Japan
 
スケールアウト・インメモリ分析の標準フォーマットを目指す 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
 
ストリーミングアーキテクチャ: 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
 
MapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォームMapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォームMapR 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
 
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12MapR Technologies Japan
 
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかHBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか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
 
異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法MapR Technologies Japan
 
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャMapR Technologies Japan
 
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...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
 
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最新情報 - 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
 

More from MapR Technologies Japan (20)

Fast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターンFast Data を扱うためのデザインパターン
Fast Data を扱うためのデザインパターン
 
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなすMapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
 
スケールアウト・インメモリ分析の標準フォーマットを目指す 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...
 
ストリーミングアーキテクチャ: 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 Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォームMapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォーム
 
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
 
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
 
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかHBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
 
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: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
 
実践機械学習 — 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...
 
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
 
MapR M7 技術概要
MapR M7 技術概要MapR M7 技術概要
MapR M7 技術概要
 
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...
 

Apache Drill を利用した実データの分析

  • 1. ® © 2014 MapR Technologies 1 ® © 2014 MapR Technologies Apache Drill を利用した実データの分析 Tomer Shiran VP Product Management, MapR Technologies Co-Founder, PMC Member and Committer, Apache Drill 2014年 11 月 20 日
  • 2. ® © 2014 MapR Technologies 2 データのサイズは2年で 倍のペースで増えている
  • 3. ® © 2014 MapR Technologies 3 44 ゼッタバイト 4.4 ゼッタバイト 2011 2013 1.8 ゼッタバイト IDC による予測では 2020年 に世界全体のデータ量は 44 ゼッタバイト に達する 2020 出典: IDC Digital Universe
  • 4. ® © 2014 MapR Technologies 4 非構造化データ 構造化データ 1980 2000 20101990 2020 非構造化データ の割合は 企業や組織が集めたデータ の 80%以上 に増大する 出典: Human-Computer Interaction & Knowledge Discovery in Complex Unstructured, Big Data 合計格納データサイズ
  • 5. ® © 2014 MapR Technologies 5 1980 2000 20101990 2020 固定スキーマ DB管理者が構造を管理 動的スキーマ(スキーマフリー) アプリケーションが構造を管理 「非スキーマ」データストアリレーショナルデータベース MB〜GB TB〜PBサイズ データベース 非スキーマデータストアがこのデータをとらえつつある 構造 開発スタイル 構造化 構造化、半構造化、非構造化 計画的(リリースサイクル: 数ヶ月〜数年) 反復的(リリースサイクル: 数日〜数週)
  • 6. ® © 2014 MapR Technologies 6 ビッグデータの世界の SQL •  SQL •  BI(Tableau、MicroStrategy など) •  低レイテンシ •  スケーラビリティ •  データストア上のスキーマの作成や 管理: –  HDFS(Parquet、JSON など) –  HBase –  MongoDB •  データの変換や複製 2 DON’T WANTWANT 非スキーマデータストアの柔軟性や機敏さ に関する 妥協をすることなく SQL および BI への対応をしたい
  • 7. ® © 2014 MapR Technologies 7 • Hadoop/NoSQL 向けスキーマフリーのスケールアウトクエリエンジン • クエリを実行するだけ vs スキーマ中心 • 低レイテンシ • 使いやすさ • 業界標準 API: ANSI SQL、ODBC/JDBC、RESTful API 40 以上のコントリビュータ 150 年以上のデータベースおよび
 分散システムの開発経験 APACHE DRILL
  • 8. ® © 2014 MapR Technologies 8 セルフサービスデータ探索に向けた進化 データモデリング および変換 データビジュア
 ライゼーション IT部門主導 IT部門主導 IT部門主導 セルフサービス IT部門主導 セルフサービス 不要 セルフサービス RDBMSを使った
 従来のBI RDBMSを使った
 セルフサービスBI SQL-on-Hadoop セルフサービス データ探索 ゼロデイ・アナリティクス
  • 9. ® © 2014 MapR Technologies 9
  • 10. ® © 2014 MapR Technologies 10 Drill のデータモデルはフレキシブル HBase JSON BSON CSV TSV Parquet Avro スキーマレス固定スキーマ フラット 複雑 柔軟性 柔軟性 名前! 性別! 年齢! 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 テーブル
  • 11. ® © 2014 MapR Technologies 11 Drill は 動的なスキーマディスカバリ をサポート •  固定スキーマ •  中央管理されたレポジトリのスキー マを利用 (Hive メタストア) •  固定スキーマ、変化するスキーマ、 もしくはスキーマレス •  中央管理されたレポジトリのスキーマ、 自己記述型データのスキーマを利用 2 SCHEMA ON WRITE SCHEMA BEFORE READ SCHEMA ON THE FLY 事前にスキーマを宣言 動的にスキーマを発見
  • 12. ® © 2014 MapR Technologies 12 ネイティブ JSON SELECT  json_value(po_document,      '$.AllowPartialShipment’  RETURNING  NUMBER)   FROM      j_purchaseorder;   SELECT  po_document.AllowPartialShipment     FROM      j_purchaseorder;   Oracle の JSON クエリ: Drill のJSON クエリ: リレーショナルデータベースはスキーマフリーな JSON にきちんと対応できない
  • 13. ® © 2014 MapR Technologies 13© 2014 MapR Technologies ® アーキテクチャ
  • 14. ® © 2014 MapR Technologies 14 アーキテクチャの概要 •  コモディティサーバのクラスタ –  各ノード上でデーモン (drillbit) が動作 •  他の実行エンジンには非依存(MapReduce、Spark、Tez) –  より優れた性能と管理性 •  ZooKeeper が逐一変化するクラスタのメンバーシップ情報を管理 –  drillbit は ZooKeeper を利用してクラスタ内の他の drillbit を見つける –  クライアントは ZooKeeper を利用して drillbit を見つける •  データ処理単位は カラムナレコードバッチ   –  性能への影響を最小限に抑えつつスキーマの柔軟性を実現
  • 15. ® © 2014 MapR Technologies 15 Drill はデータ局所性を最大限活用する データソース ベストプラクティス HDFS または MapR-FS 各 DataNode 上の drillbit がアクセス HBase または MapR-DB 各 RegionServer 上の drillbit がアクセス MongoDB 各 mongod 上の drillbit がアクセス(レプリカ使用時はレプリカノード上で稼働) drillbit   DataNode/ RegionServer/ mongod   drillbit   DataNode/ RegionServer/ mongod   drillbit   DataNode/ RegionServer/ mongod   ZooKeeper ZooKeeper ZooKeeper …
  • 16. ® © 2014 MapR Technologies 16 SELECT* クエリ実行 drillbit   ZooKeeper クライアント (JDBC, ODBC, REST) 1.  drillbit を見つけ る(セッションごと) 3.  論理および物理実行プランを作成 4.  クラスタに個別のフラグメントの実行を行わせる (完全な分散実行) ZooKeeper ZooKeeper drillbit  drillbit   2.  drillbit  にク エリを送信 5.  クライアントに 結果を返す * CTAS (CREATE TABLE AS SELECT) クエリはステップ 1〜4 を含む
  • 17. ® © 2014 MapR Technologies 17 drillbit 内部のコアモジュール   SQL パーサ Hive HBase 分散キャッシュ ストレージプラグイン MongoDB DFS 物理プラン 実行エンジン論理プラン オプティマイザ RPC エンドポイント
  • 18. ® © 2014 MapR Technologies 18© 2014 MapR Technologies ® 例: 実データの分析
  • 19. ® © 2014 MapR Technologies 19 デモの概要 1.  Drill の起動 2.  DFS および MongoDB ストレージプラグインの設定 3.  データの探索 –  基本操作 –  複雑なデータ –  ビュー
  • 20. ® © 2014 MapR Technologies 20© 2014 MapR Technologies ® Drill の起動
  • 21. ® © 2014 MapR Technologies 21 Drill を組み込みモードで起動(sqlline) $  tar  xf  apache-­‐drill-­‐0.7.0.tar.gz   $  cd  apache-­‐drill-­‐0.7.0   $  bin/sqlline  -­‐u  jdbc:drill:zk=local   >  SELECT  *      FROM  dfs.root.`/Users/tshiran/Development/demo/data/yelp/user.json`      LIMIT  1;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  yelping_since  |      votes        |  review_count  |        name        |    user_id      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  2012-­‐02              |  {"funny":1,"useful":5,"cool":0}  |  6                        |  Lee                |   qtrmBGNqCvupHMHL_bKFgQ  |   •  drillbit(Drill デーモン)が組み込みモードで自動的に起動する •  組み込みモードでは ZooKeeper は不要(したがって zk=local) •  組み込みモードでは BI クライアント(JDBC/ODBC)は使用できない Web UI にアクセスが可能になる: http://localhost:8047
  • 22. ® © 2014 MapR Technologies 22 または Run Drill を分散モードで起動… $  zkServer  start   •  ZooKeeper(zkServer)を稼働させる: •  Web UI にアクセス: http://localhost:8047 •  クライアントからクラスタに接続(sqlline を使用): •  クライアント(例: sqlline) は ZooKeeper に接続してクラスタノードを見つける •  1つの ZooKeeper のセットに 複数の Drill クラスタが登録されている場合には、JDBC 接続文字列 の中で希望のクラスタを指定する: jdbc:drill:zk=localhost:2181/drill/<クラスタ名> •  ZooKeeper の稼働状態が不明の場合 telnet  localhost  2181 を実行して接続できるか確認 •  conf/drill-­‐override.conf 内で Drill クラスタ名と ZooKeeper ノードを定義 •  drillbit を起動:   $  bin/drillbit.sh  start   $  bin/sqlline  -­‐u  jdbc:drill:zk=localhost:2181  
  • 23. ® © 2014 MapR Technologies 23© 2014 MapR Technologies ® ストレージプラグインの設定
  • 24. ® © 2014 MapR Technologies 24 MongoDB ストレージプラグインを有効化
  • 25. ® © 2014 MapR Technologies 25 DFS ストレージプラグインでワークスペースを定義 •  d
  • 26. ® © 2014 MapR Technologies 26© 2014 MapR Technologies ® データの探索: 基本操作
  • 27. ® © 2014 MapR Technologies 27 データ: DFS ファイル {      "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"   }  
  • 28. ® © 2014 MapR Technologies 28 データ: MongoDB コレクション $  mongo   MongoDB  shell  version:  2.6.5   >  show  databases;   admin    (empty)   local    0.078GB   yelp      0.453GB   >  use  yelp   >  db.users.findOne()   {    "_id"  :  ObjectId("54566cdf3237149de181a92a"),    "yelping_since"  :  "2012-­‐02",    "votes"  :  {      "funny"  :  1,      "useful"  :  5,      "cool"  :  0    },    "review_count"  :  6,    "name"  :  "Lee",    "user_id"  :  "qtrmBGNqCvupHMHL_bKFgQ",    "friends"  :  [  ]   }  
  • 29. ® © 2014 MapR Technologies 29 やってみましょう >  SELECT  *      FROM  dfs.root.`/Users/tshiran/Development/ demo/data/yelp/review.json`      WHERE  stars  =  1      LIMIT  1;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |      votes        |    user_id      |  review_id    |      stars        |        date        |        text        |        type        |  business_id  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  {"funny":0,"useful":0,"cool":0}  |  Qrs3EICADUKNFoUq2iHStA  |  _ePLBPrkrf4bhyiKWEn4Qg  |  1                    |  2013-­‐04-­‐19   |  I  don't  know  what  Dr.  Goldberg  was  like  before    moving  to  Arizona,  but  let  me  tell  you,  STAY  AWAY  from  this   doctor  and  this  office.  |  review          |  vcNAWiLM4dR7D2nwwJ7nCA  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 30. ® © 2014 MapR Technologies 30 ストレージプラグインの利用とワークスペース >  SELECT  *  FROM  dfs.root.`/Users/tshiran/Development/demo/data/ yelp/review.json`  LIMIT  1;   >  SELECT  *  FROM  dfs.demo.`yelp/review.json`  LIMIT  1;   >  SELECT  *  FROM  mongo.yelp.users  LIMIT  1;   >  USE  mongo.yelp;   >  SELECT  *  FROM  users  LIMIT  1;   ストレージプラグイン ワークスペース ワークスペースからの相対パス ストレージプラグイン ワークスペース テーブル dfs パス ワークスペースからの相対パス mongo データベース コレクション hive データベース テーブル hbase ネームスペース テーブル
  • 31. ® © 2014 MapR Technologies 31 最も多いユーザ名(MongoDB) >  SELECT  name,  count(*)  AS  users      FROM  mongo.yelp.users      GROUP  BY  name      ORDER  BY  users  DESC  LIMIT  10;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |      users        |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  David            |  2453              |   |  John              |  2378              |   |  Michael        |  2322              |   |  Chris            |  2202              |   |  Mike              |  2037              |   |  Jennifer      |  1867              |   |  Jessica        |  1463              |   |  Jason            |  1457              |   |  Michelle      |  1439              |   |  Brian            |  1436              |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 32. ® © 2014 MapR Technologies 32 最も店舗が多い都市 >  SELECT  state,  city,  count(*)  AS  businesses      FROM  dfs.demo.`/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                |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 33. ® © 2014 MapR Technologies 33© 2014 MapR Technologies ® データの探索:複雑なデータ
  • 34. ® © 2014 MapR Technologies 34 business.json (1) {    "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,  
  • 35. ® © 2014 MapR Technologies 35 business.json (2)  "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},    }   }  
  • 36. ® © 2014 MapR Technologies 36 今どの店舗が開いてる(22:00)? >  SELECT  name,  b.hours      FROM  dfs.demo.`yelp/business.json`  b      WHERE  b.hours.Saturday.`open`  <  '22:00'  AND                  b.hours.Saturday.`close`  >  '22:00'      LIMIT  2;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |      hours        |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Chang  Jiang  Chinese  Kitchen  |  {"Tuesday":{"close":"22:00","open":"11:00"},"Friday": {"close":"22:30","open":"11:00"},"Monday":{"close":"22:00","open":"11:00"},"Wednesday": {"close":"22:00","open":"11:00"},"Thursday":{"close":"22:00","open":"11:00"},"Sunday": {"close":"21:00","open":"16:00"},"Saturday":{"close":"22:30","open":"11:00"}}  |   |  Grand  China  Restaurant  |  {"Tuesday":{"close":"22:00","open":"11:00"},"Friday": {"close":"23:00","open":"11:00"},"Monday":{"close":"22:00","open":"11:00"},"Wednesday": {"close":"22:00","open":"11:00"},"Thursday":{"close":"22:00","open":"11:00"},"Sunday": {"close":"22:00","open":"12:00"},"Saturday":{"close":"23:00","open":"11:00"}}  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 37. ® © 2014 MapR Technologies 37 午後10時のラスベガス、おいしい中東料理が食べたい >  SELECT  name,  stars,  b.hours.Friday,  categories      FROM  dfs.demo.`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        |      EXPR$2      |  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"]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 38. ® © 2014 MapR Technologies 38 繰り返しの値のフラット化 >  SELECT  name,  categories      FROM  dfs.demo.`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.demo.`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  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 39. ® © 2014 MapR Technologies 39 最も多い店舗カテゴリと最も少ない店舗カテゴリ >  SELECT  category,  count(*)  AS  businesses      FROM  (SELECT  name,  FLATTEN(categories)  AS  category                  FROM  dfs.demo.`yelp/business.json`)  c      GROUP  BY  category  ORDER  BY  businesses  DESC;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    category    |  businesses  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Restaurants  |  14303            |   …   |  Australian  |  1                    |   |  Boat  Dealers  |  1                    |   |  Firewood      |  1                    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   715  rows  selected  (3.439  seconds)   >  SELECT  name,  categories  FROM  dfs.demo.`yelp/business.json`   WHERE  true  and  REPEATED_CONTAINS(categories,  'Australian');   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |  categories  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  The  Australian  AZ  |  ["Bars","Burgers","Nightlife","Australian","Sports  Bars","Restaurants"]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 40. ® © 2014 MapR Technologies 40© 2014 MapR Technologies ® データの探索: ビュー
  • 41. ® © 2014 MapR Technologies 41 名前-性別マッピングのビューの作成 >  CREATE  VIEW  dfs.tmp.`names`  AS          SELECT  columns[0]  AS  name,  columns[4]  AS  gender          FROM  dfs.demo.`names.csv`;   >  USE  dfs.tmp;   >  CREATE  VIEW  names1  ASSELECT  columns[0]  AS  name,  columns[4]  AS  gender  FROM   dfs.demo.`names.csv`;   >  SELECT  *  FROM  dfs.tmp.names  WHERE  name  =  'John';   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |      gender      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  John              |  Male              |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   columns[0]   columns[4]   names.csv:  
  • 42. ® © 2014 MapR Technologies 42 Yelp 内で最も多い名前(と性別) >  SELECT  u.name,  n.gender,  count(*)  AS  number      FROM  mongo.yelp.users  u,  dfs.tmp.names  n      WHERE  u.name  =  n.name      GROUP  BY  u.name,  n.gender      ORDER  BY  number  DESC  LIMIT  10;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |      gender      |      number      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  David            |  Male              |  2453              |   |  John              |  Male              |  2378              |   |  Michael        |  Male              |  2322              |   |  Chris            |  Unknown        |  2202              |   |  Mike              |  Male              |  2037              |   |  Jennifer      |  Female          |  1867              |   |  Jessica        |  Female          |  1463              |   |  Jason            |  Male              |  1457              |   |  Michelle      |  Female          |  1439              |   |  Brian            |  Male              |  1436              |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 43. ® © 2014 MapR Technologies 43 誰がより高い評価をしているか – 男性 or 女性? >  SELECT  n.gender,  count(*)  AS  users,  round(avg(average_stars),  2)  stars      FROM  mongo.yelp.users  u,  dfs.tmp.names  n      WHERE  u.name  =  n.name      GROUP  BY  n.gender;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |      gender      |      users        |      stars        |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Female          |  103684          |  3.77              |   |  Male              |  97430            |  3.696            |   |  Unknown        |  18409            |  3.727            |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  • 44. ® © 2014 MapR Technologies 44 誰がよくレビューを書いているか – 男性 or 女性? >  SELECT  n.gender,  round(avg(length(r.text)))  AS  review_length      FROM  dfs.demo.`yelp/review.json`  r,                mongo.yelp.users  u,                dfs.tmp.names  n      WHERE  u.name  =  n.name  AND  r.user_id  =  u.user_id      GROUP  BY  n.gender;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |      gender      |  review_length  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Male              |  665                      |   |  Female          |  730                      |   |  Unknown        |  711                      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   3つのジョインを行い見つける…
  • 45. ® © 2014 MapR Technologies 45 Drill ツイート(@ApacheDrill)
  • 46. ® © 2014 MapR Technologies 46 ありがとうございました •  もっと知るには: incubator.apache.org/drill/ •  ダウンロード: incubator.apache.org/drill/download/ •  ご質問は: drill-user@incubator.apache.org •  連絡先: tshiran@apache.org
  • 47. ® © 2014 MapR Technologies 47 Thank You @mapr maprtech tshiran@mapr.com Tomer Shiran, VP Product Management MapRTechnologies maprtech mapr-technologies