SlideShare a Scribd company logo
1 of 16
Download to read offline
© SIOS Technology, Inc. All rights Reserved.
1. BigData解析基盤としての
Treasure Data
2. HiveQLの周辺技術とTips
サイオステクノロジー株式会社
クラウドソリューション部
2013年6月11日
髙橋 達
サイオステクノロジー株式会社
© SIOS Technology, Inc. All rights Reserved.
目的と目次
目 次
1. BigData解析基盤としてのTreasure Data
1. BigData解析基盤とは?
2. HiveQLの周辺技術とTips
1.~4. HiveQLの周辺技術
5.~11. HiveQLのTips
3. 発表のまとめ
2
Treasure DataとHiveQLに関する知識共有により,
レポーティング作業の効率アップ
目 的
© SIOS Technology, Inc. All rights Reserved.
1.1. BigData解析基盤とは?
3
BigData COLLECT STORE
QUERY &
VISUALIZE
ANALYSIS
SNSやセンサ,
ログデータなど
様々なデータを
定期的・継続的
に収集
日々増え続ける
データの保管・
管理や、
可用性の保証
データ抽出・
可視化を
行うための
計算リソースや、
可視化ツールの
提供
データから有意
義な結果の発見
© SIOS Technology, Inc. All rights Reserved.
2.1. Hadoopによる一般的な解析基盤
 HDFS
分散ファイルシステム
 Hadoop MapReduce
並列分散処理フレームワーク
 Hive
 HiveQL
SQLライクな問い合わせ言語
 Pig
 PigLatin
データの処理フローを
記述するスクリプト
4
Hadoop Distributed File System
(HDFS)
Hadoop
MapReduce
Hive Pig
HiveQL PigLatinJava
利用
難易度 高
ユーザ
© SIOS Technology, Inc. All rights Reserved.
2.2. MapReduce・Pig・Hiveの記述比較
例:単語の集計
Java For
MapReduce
(コードの1/6程度抜粋)
Job job = new Job(conf,
'wordcount');
job.setJarByClass(WordCou
nt.class);
job.setOutputKeyClass(Text
.class);
job.setOutputValueClass(In
tWritable.class);
job.setMapperClass(Map.cla
ss);
job.setCombinerClass(Redu
ce.class);
job.setReducerClass(Reduc
e.class);
HiveQL
select s.word, count(*) from
(select explode(split(text, '[ ¥t]+')) word from
hello) s group by s.word;
5
b = foreach a generate flatten(TOKENIZE(text))
as word;
c = group b by word;
d = foreach c generate group as word, COUNT(b)
as count;
store d into ‘/output';
PigLatin
スクリプト引用:http://www.ne.jp/asahi/hishidama/home/tech/index.html
© SIOS Technology, Inc. All rights Reserved.
2.3. MapReduceの概要
 大規模データを複数ノードで並列分散処理するための
プログラミング・パターン
 Mapタスク・Reduceタスクの二段階でデータ処理
6
Map Reduce
Node
1
Node
2
Node
3
佐藤, 1
鈴木, 1
高橋, 1
中村, 1
佐藤, 1
田中, 1
山本, 1
鈴木, 1
田中, 1
Node
1
Node
2
佐藤, 2
鈴木, 2
高橋, 1
中村, 1
田中, 2
山本, 1
Shuffle
& Sort
データ集計例
入
力
出
力
苗字
佐藤
鈴木
高橋
中村
佐藤
田中
山本
鈴木
田中
苗字 件数
佐藤 2
鈴木 2
高橋 1
中村 1
田中 2
山本 1
© SIOS Technology, Inc. All rights Reserved.
2.4. HiveとHiveQLの概要
 Hive
 MapReduceのラッパーのような存在
 HiveQL
 SQLライクなHiveのクエリ言語
7
SQL HiveQL
テーブル定義
CREATE TABLE
○ ○
データ入力 LOAD ○ ○
データ出力 INSERT ○ ○
データ抽出 SELECT ○ ○
データ並び替え ○ △
副問い合わせ ○ △
テーブルの結合 JOIN ○ △
△:
SQLと文法が大きく異なる
Treasure Dataでは、
Queryではなく
別コマンドを用意
データ集計の効率的な処理のために
MapReduceとHiveQLの知識が重要
© SIOS Technology, Inc. All rights Reserved.
2.5. Treasure Dataにおけるデータ形式
 二つのカラムに格納(’v’と’time’)
 ‘v’カラムには、MAP形式で格納
 Key:v[‘host’], v[‘user’]
 Value:’1.1.0.1’, ‘ichi’
 カラムの参照
v[‘host’], v[‘user’], time
 別名をカラム名として利用
v[‘host’] AS host
8
v time
{'host':'1.1.0.1','user':'ichi'} 1370420001
{'host':'1.1.0.2','user':'jiro'} 1370420010
{'host':'1.1.0.3','user':'sabu'} 1370420100
_c0
1.1.0.1
1.1.0.2
1.1.0.3
host
1.1.0.1
1.1.0.2
1.1.0.3
AS利用
AS未使用
© SIOS Technology, Inc. All rights Reserved.
2.6. SELECT * と SELECT 項目指定
SELECT *
FROM tbl
 MapReduce処理を
実行しないで結果出力
 Hiveがスキーマを基に
結果を出力
SELECT カラム指定
FROM tbl
 MapReduce処理を
実行して結果出力
9
挙動に差異
• カラム指定より処理が速い
• MapReduceの起動等に
時間消費
• データの確認用に利用
<おまけ>
LIMITで結果の取得件数を制限
可能
SELECT * FROM tbl LIMIT 1
結果)
tblから1件のみ取得
© SIOS Technology, Inc. All rights Reserved.
2.7. MapReduceの回数削減による効率化
重複カラムの除去でのLEFT SEMI JOIN
SELECT host AS host
FROM
(SELECT v[‘host’] AS host
FROM tbl1) JOIN
(SELECT v[‘host’] AS host
FROM tbl2 GROUP BY host
) ON tbl1.host = tbl2.host
SELECT host AS host
FROM
(SELECT v[‘host’] AS host
FROM tbl1) LEFT SEMI JOIN
(SELECT v[‘host’] AS host
FROM tbl2)
ON tbl1.host = tbl2.host
10
GROUP BYの利用 LEFT SEMI JOINの利用
v
{'host':'1.1.0.3‘, ‘user’:’taro’}
{'host':'1.1.0.1‘, ‘user’:’ichi’}
v time
{'host':'1.1.0.1‘} 1370420001
{'host':'1.1.0.1'} 1370420010
tbl1 tbl2
host
1.1.0.1
stage-1 : GROUP BY計算
stage-2 : JOIN計算
stage-1 : JOIN計算
処理数の削減
* 右テーブルのデータが左テーブル
に存在する場合のみ利用可能
© SIOS Technology, Inc. All rights Reserved.
2.8.テーブルをメモリへ展開する
MAPJOINの利用
11
SELECT /*+MAPJOIN(tbl2)*/
host AS host FROM
(SELECT v[‘host’] AS host
FROM tbl1) LEFT SEMI JOIN
(SELECT v[‘host’] AS host
FROM tbl2) ON tbl1.host = tbl2.host
SELECT host AS host
FROM
(SELECT v[‘host’] AS host
FROM tbl1) LEFT SEMI JOIN
(SELECT v[‘host’] AS host
FROM tbl2) ON tbl1.host =
tbl2.host
MAPJOINの非利用 MAPJOINの利用
v
{'host':'1.1.0.3‘, ‘user’:’taro’}
{'host':'1.1.0.1‘, ‘user’:’ichi’}
v time
{'host':'1.1.0.1‘} 1370420001
{'host':'1.1.0.1'} 1370420010
tbl1 tbl2
host
1.1.0.1
stage-1 : JOIN計算
計算時間 小
→右テーブルをメモリ上に展開
stage-1 : JOIN計算
計算時間 大
* 右テーブルのデータがメモリに
収まりきるサイズであること
© SIOS Technology, Inc. All rights Reserved.
2.9. 全体集計と個別集計
12
V
{‘user':‘taro‘, ‘cnt’:20’}
{‘user':‘ichi‘, ‘cnt’:’5’}
{‘user':‘ichi‘, ‘cnt’:’15’}
tbl
user count
NULL 40
taro 20
ichi 20
SELECT v[‘user’] AS user,
SUM(v[‘cnt’]) AS count
FROM tbl
GROUP BY v[‘host’]
WITH ROLLUP
SELECT u AS user, SUM(z) AS count
FROM tbl LATERAL VIEW
EXPLODE(ARRAY(v[‘user’], null)) e
AS u
group by u
ROLLUPの利用(Hive0.10未満) ROLLUPの利用 (Hive0.10以上)
*現在のTDでは利用不可*v[‘user’]は NOT NULL
© SIOS Technology, Inc. All rights Reserved.
2.10. Treasure Dataが提供するUDF
(User Defined Functoins)
 TD_X_RANK(keys)
 ユーザ毎に番号付
 時系列に並び替えることでパスの作成が可能
 TD_TIME_RANGE(time, start_time, end_time)
 WHERE句での時間による範囲指定
 TD_TIME_ADD(time, ‘期間’)
 時間の様々な指定が可能
 N日後:’1d’, ‘2d’, ‘3d’,...
13
V
{‘user':‘taro‘, ‘ref’:’1.1.1.1’}
{‘user':‘ichi‘, ‘ref’:’1.1.1.2’}
{‘user':‘ichi‘, ‘ref’:’1.1.1.3’}
Rank User Ref
1 Taro 1.1.1.1
1 Ichi 1.1.1.2
2 Ichi 1.1.1.3
SELECT ... WHERE TD_TIME_RANGE(
Time, ‘2013-04-01’, TD_TIME_ADD(‘2013-04-01’, ‘1d’)
© SIOS Technology, Inc. All rights Reserved.
2.11. その他のポイント(1/2)
 テーブル結合について
 UNION ALLのみ利用可能
 重複を含む全レコードの結合
 結合するテーブル全体を副問い合わせにすること
 JOIN ONのONを記述漏れは、CROSS JOINになる
 ON句では以下の二つは利用不可
 不等号での結合
 ORによる二つの条件を用いた結合
 正規表現について
 LIKE = SQLのLIKE
 ワイルドカード:*,%,?,_,#,[文字リスト],...
 RLIKEを用いると、Javaの正規表現を利用可能
 ワイルドカード:LIKE + α
14
© SIOS Technology, Inc. All rights Reserved.
2.11. その他のポイント(2/2)
 関数情報
 SHOW FUNCTIONS
関数の一覧を表示(UDFも含む)
 DESC FUNCTION 関数名
DESC FUNCTION EXTENDED 関数名
関数の情報を表示、EXTENDEDで使用例も表示
15
© SIOS Technology, Inc. All rights Reserved.
3. 発表のまとめ
 ビッグデータ解析基盤に求められる機能:
 各製品における各機能の詳細な比較が必要
 HiveQLのTips
 SQLと違いはあまりない
 MapReduceを意識することでクエリの効率化
 LEFT SEMI JOINの利用
 /*+ MAPJOIN(tbl) */の利用
 全体集計と個別集計
 UDFについて
16
COLLECT STORE QUERY & VISUALIZE ANALYSIS

More Related Content

What's hot

Treasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC DemoTreasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC DemoTakahiro Inoue
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータTakahiro Inoue
 
この Visualization がすごい2014 〜データ世界を彩るツール6選〜
この Visualization がすごい2014 〜データ世界を彩るツール6選〜この Visualization がすごい2014 〜データ世界を彩るツール6選〜
この Visualization がすごい2014 〜データ世界を彩るツール6選〜Takahiro Inoue
 
トレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティングトレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティングTakahiro Inoue
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoTreasure Data, Inc.
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京Koichiro Sasaki
 
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出Google Cloud Platform - Japan
 
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise GraphYuki Morishita
 
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理並列データベースシステムの概念と原理
並列データベースシステムの概念と原理Makoto Yui
 
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Taro L. Saito
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]Hideo Takagi
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeHideo Takagi
 
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しようMicrosoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しようHideo Takagi
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeSatoru Ishikawa
 
DeltaCubeにおけるユニークユーザー集計高速化(理論編)
DeltaCubeにおけるユニークユーザー集計高速化(理論編)DeltaCubeにおけるユニークユーザー集計高速化(理論編)
DeltaCubeにおけるユニークユーザー集計高速化(理論編)BrainPad Inc.
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lakede:code 2017
 
dots. ビッグデータオールスターズ: Azure 畠山
dots. ビッグデータオールスターズ: Azure 畠山dots. ビッグデータオールスターズ: Azure 畠山
dots. ビッグデータオールスターズ: Azure 畠山Daiyu Hatakeyama
 
Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介Toshiaki Enami
 
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
1000人規模で使う分析基盤構築  〜redshiftを活用したeuc1000人規模で使う分析基盤構築  〜redshiftを活用したeuc
1000人規模で使う分析基盤構築 〜redshiftを活用したeucKazuhiro Miyajima
 

What's hot (20)

Treasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC DemoTreasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC Demo
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータ
 
この Visualization がすごい2014 〜データ世界を彩るツール6選〜
この Visualization がすごい2014 〜データ世界を彩るツール6選〜この Visualization がすごい2014 〜データ世界を彩るツール6選〜
この Visualization がすごい2014 〜データ世界を彩るツール6選〜
 
トレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティングトレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティング
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
 
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
 
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph
 
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
 
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data Lake
 
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しようMicrosoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
DeltaCubeにおけるユニークユーザー集計高速化(理論編)
DeltaCubeにおけるユニークユーザー集計高速化(理論編)DeltaCubeにおけるユニークユーザー集計高速化(理論編)
DeltaCubeにおけるユニークユーザー集計高速化(理論編)
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
 
dots. ビッグデータオールスターズ: Azure 畠山
dots. ビッグデータオールスターズ: Azure 畠山dots. ビッグデータオールスターズ: Azure 畠山
dots. ビッグデータオールスターズ: Azure 畠山
 
Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介
 
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
1000人規模で使う分析基盤構築  〜redshiftを活用したeuc1000人規模で使う分析基盤構築  〜redshiftを活用したeuc
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
 

Similar to For blog hive_ql_on_treasuredata

About OpenStack DBaas (trove)
About OpenStack DBaas (trove)About OpenStack DBaas (trove)
About OpenStack DBaas (trove)Ikuo Kumagai
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC EnterpriseYusukeKuramata
 
[Livesence Tech Night] グリーにおけるHiveの運用
[Livesence Tech Night] グリーにおけるHiveの運用[Livesence Tech Night] グリーにおけるHiveの運用
[Livesence Tech Night] グリーにおけるHiveの運用gree_tech
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説Masahiko Sawada
 
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例 by 株式会社日立製作所 ...
[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例  by 株式会社日立製作所 ...[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例  by 株式会社日立製作所 ...
[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例 by 株式会社日立製作所 ...Insight Technology, Inc.
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかたTomoyuki Oota
 
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??griddb
 
ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視Kodai Terashima
 
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfReckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfYoshihiroKitamura4
 
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...Insight Technology, Inc.
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料yoyamasaki
 
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演Nobuyuki Tamaoki
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
楽天のプライベートクラウドを支えるフラッシュストレージ
楽天のプライベートクラウドを支えるフラッシュストレージ楽天のプライベートクラウドを支えるフラッシュストレージ
楽天のプライベートクラウドを支えるフラッシュストレージRakuten Group, Inc.
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月
OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月
OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月VirtualTech Japan Inc.
 
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~griddb
 

Similar to For blog hive_ql_on_treasuredata (20)

PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
About OpenStack DBaas (trove)
About OpenStack DBaas (trove)About OpenStack DBaas (trove)
About OpenStack DBaas (trove)
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
[Livesence Tech Night] グリーにおけるHiveの運用
[Livesence Tech Night] グリーにおけるHiveの運用[Livesence Tech Night] グリーにおけるHiveの運用
[Livesence Tech Night] グリーにおけるHiveの運用
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
 
[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例 by 株式会社日立製作所 ...
[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例  by 株式会社日立製作所 ...[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例  by 株式会社日立製作所 ...
[db tech showcase Tokyo 2014] B33: 超高速データベースエンジンでのビッグデータ分析活用事例 by 株式会社日立製作所 ...
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
 
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
 
ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視
 
データマート対応した話
データマート対応した話データマート対応した話
データマート対応した話
 
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfReckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdf
 
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
 
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
楽天のプライベートクラウドを支えるフラッシュストレージ
楽天のプライベートクラウドを支えるフラッシュストレージ楽天のプライベートクラウドを支えるフラッシュストレージ
楽天のプライベートクラウドを支えるフラッシュストレージ
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月
OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月
OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月
 
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
 

Recently uploaded

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (11)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

For blog hive_ql_on_treasuredata

  • 1. © SIOS Technology, Inc. All rights Reserved. 1. BigData解析基盤としての Treasure Data 2. HiveQLの周辺技術とTips サイオステクノロジー株式会社 クラウドソリューション部 2013年6月11日 髙橋 達 サイオステクノロジー株式会社
  • 2. © SIOS Technology, Inc. All rights Reserved. 目的と目次 目 次 1. BigData解析基盤としてのTreasure Data 1. BigData解析基盤とは? 2. HiveQLの周辺技術とTips 1.~4. HiveQLの周辺技術 5.~11. HiveQLのTips 3. 発表のまとめ 2 Treasure DataとHiveQLに関する知識共有により, レポーティング作業の効率アップ 目 的
  • 3. © SIOS Technology, Inc. All rights Reserved. 1.1. BigData解析基盤とは? 3 BigData COLLECT STORE QUERY & VISUALIZE ANALYSIS SNSやセンサ, ログデータなど 様々なデータを 定期的・継続的 に収集 日々増え続ける データの保管・ 管理や、 可用性の保証 データ抽出・ 可視化を 行うための 計算リソースや、 可視化ツールの 提供 データから有意 義な結果の発見
  • 4. © SIOS Technology, Inc. All rights Reserved. 2.1. Hadoopによる一般的な解析基盤  HDFS 分散ファイルシステム  Hadoop MapReduce 並列分散処理フレームワーク  Hive  HiveQL SQLライクな問い合わせ言語  Pig  PigLatin データの処理フローを 記述するスクリプト 4 Hadoop Distributed File System (HDFS) Hadoop MapReduce Hive Pig HiveQL PigLatinJava 利用 難易度 高 ユーザ
  • 5. © SIOS Technology, Inc. All rights Reserved. 2.2. MapReduce・Pig・Hiveの記述比較 例:単語の集計 Java For MapReduce (コードの1/6程度抜粋) Job job = new Job(conf, 'wordcount'); job.setJarByClass(WordCou nt.class); job.setOutputKeyClass(Text .class); job.setOutputValueClass(In tWritable.class); job.setMapperClass(Map.cla ss); job.setCombinerClass(Redu ce.class); job.setReducerClass(Reduc e.class); HiveQL select s.word, count(*) from (select explode(split(text, '[ ¥t]+')) word from hello) s group by s.word; 5 b = foreach a generate flatten(TOKENIZE(text)) as word; c = group b by word; d = foreach c generate group as word, COUNT(b) as count; store d into ‘/output'; PigLatin スクリプト引用:http://www.ne.jp/asahi/hishidama/home/tech/index.html
  • 6. © SIOS Technology, Inc. All rights Reserved. 2.3. MapReduceの概要  大規模データを複数ノードで並列分散処理するための プログラミング・パターン  Mapタスク・Reduceタスクの二段階でデータ処理 6 Map Reduce Node 1 Node 2 Node 3 佐藤, 1 鈴木, 1 高橋, 1 中村, 1 佐藤, 1 田中, 1 山本, 1 鈴木, 1 田中, 1 Node 1 Node 2 佐藤, 2 鈴木, 2 高橋, 1 中村, 1 田中, 2 山本, 1 Shuffle & Sort データ集計例 入 力 出 力 苗字 佐藤 鈴木 高橋 中村 佐藤 田中 山本 鈴木 田中 苗字 件数 佐藤 2 鈴木 2 高橋 1 中村 1 田中 2 山本 1
  • 7. © SIOS Technology, Inc. All rights Reserved. 2.4. HiveとHiveQLの概要  Hive  MapReduceのラッパーのような存在  HiveQL  SQLライクなHiveのクエリ言語 7 SQL HiveQL テーブル定義 CREATE TABLE ○ ○ データ入力 LOAD ○ ○ データ出力 INSERT ○ ○ データ抽出 SELECT ○ ○ データ並び替え ○ △ 副問い合わせ ○ △ テーブルの結合 JOIN ○ △ △: SQLと文法が大きく異なる Treasure Dataでは、 Queryではなく 別コマンドを用意 データ集計の効率的な処理のために MapReduceとHiveQLの知識が重要
  • 8. © SIOS Technology, Inc. All rights Reserved. 2.5. Treasure Dataにおけるデータ形式  二つのカラムに格納(’v’と’time’)  ‘v’カラムには、MAP形式で格納  Key:v[‘host’], v[‘user’]  Value:’1.1.0.1’, ‘ichi’  カラムの参照 v[‘host’], v[‘user’], time  別名をカラム名として利用 v[‘host’] AS host 8 v time {'host':'1.1.0.1','user':'ichi'} 1370420001 {'host':'1.1.0.2','user':'jiro'} 1370420010 {'host':'1.1.0.3','user':'sabu'} 1370420100 _c0 1.1.0.1 1.1.0.2 1.1.0.3 host 1.1.0.1 1.1.0.2 1.1.0.3 AS利用 AS未使用
  • 9. © SIOS Technology, Inc. All rights Reserved. 2.6. SELECT * と SELECT 項目指定 SELECT * FROM tbl  MapReduce処理を 実行しないで結果出力  Hiveがスキーマを基に 結果を出力 SELECT カラム指定 FROM tbl  MapReduce処理を 実行して結果出力 9 挙動に差異 • カラム指定より処理が速い • MapReduceの起動等に 時間消費 • データの確認用に利用 <おまけ> LIMITで結果の取得件数を制限 可能 SELECT * FROM tbl LIMIT 1 結果) tblから1件のみ取得
  • 10. © SIOS Technology, Inc. All rights Reserved. 2.7. MapReduceの回数削減による効率化 重複カラムの除去でのLEFT SEMI JOIN SELECT host AS host FROM (SELECT v[‘host’] AS host FROM tbl1) JOIN (SELECT v[‘host’] AS host FROM tbl2 GROUP BY host ) ON tbl1.host = tbl2.host SELECT host AS host FROM (SELECT v[‘host’] AS host FROM tbl1) LEFT SEMI JOIN (SELECT v[‘host’] AS host FROM tbl2) ON tbl1.host = tbl2.host 10 GROUP BYの利用 LEFT SEMI JOINの利用 v {'host':'1.1.0.3‘, ‘user’:’taro’} {'host':'1.1.0.1‘, ‘user’:’ichi’} v time {'host':'1.1.0.1‘} 1370420001 {'host':'1.1.0.1'} 1370420010 tbl1 tbl2 host 1.1.0.1 stage-1 : GROUP BY計算 stage-2 : JOIN計算 stage-1 : JOIN計算 処理数の削減 * 右テーブルのデータが左テーブル に存在する場合のみ利用可能
  • 11. © SIOS Technology, Inc. All rights Reserved. 2.8.テーブルをメモリへ展開する MAPJOINの利用 11 SELECT /*+MAPJOIN(tbl2)*/ host AS host FROM (SELECT v[‘host’] AS host FROM tbl1) LEFT SEMI JOIN (SELECT v[‘host’] AS host FROM tbl2) ON tbl1.host = tbl2.host SELECT host AS host FROM (SELECT v[‘host’] AS host FROM tbl1) LEFT SEMI JOIN (SELECT v[‘host’] AS host FROM tbl2) ON tbl1.host = tbl2.host MAPJOINの非利用 MAPJOINの利用 v {'host':'1.1.0.3‘, ‘user’:’taro’} {'host':'1.1.0.1‘, ‘user’:’ichi’} v time {'host':'1.1.0.1‘} 1370420001 {'host':'1.1.0.1'} 1370420010 tbl1 tbl2 host 1.1.0.1 stage-1 : JOIN計算 計算時間 小 →右テーブルをメモリ上に展開 stage-1 : JOIN計算 計算時間 大 * 右テーブルのデータがメモリに 収まりきるサイズであること
  • 12. © SIOS Technology, Inc. All rights Reserved. 2.9. 全体集計と個別集計 12 V {‘user':‘taro‘, ‘cnt’:20’} {‘user':‘ichi‘, ‘cnt’:’5’} {‘user':‘ichi‘, ‘cnt’:’15’} tbl user count NULL 40 taro 20 ichi 20 SELECT v[‘user’] AS user, SUM(v[‘cnt’]) AS count FROM tbl GROUP BY v[‘host’] WITH ROLLUP SELECT u AS user, SUM(z) AS count FROM tbl LATERAL VIEW EXPLODE(ARRAY(v[‘user’], null)) e AS u group by u ROLLUPの利用(Hive0.10未満) ROLLUPの利用 (Hive0.10以上) *現在のTDでは利用不可*v[‘user’]は NOT NULL
  • 13. © SIOS Technology, Inc. All rights Reserved. 2.10. Treasure Dataが提供するUDF (User Defined Functoins)  TD_X_RANK(keys)  ユーザ毎に番号付  時系列に並び替えることでパスの作成が可能  TD_TIME_RANGE(time, start_time, end_time)  WHERE句での時間による範囲指定  TD_TIME_ADD(time, ‘期間’)  時間の様々な指定が可能  N日後:’1d’, ‘2d’, ‘3d’,... 13 V {‘user':‘taro‘, ‘ref’:’1.1.1.1’} {‘user':‘ichi‘, ‘ref’:’1.1.1.2’} {‘user':‘ichi‘, ‘ref’:’1.1.1.3’} Rank User Ref 1 Taro 1.1.1.1 1 Ichi 1.1.1.2 2 Ichi 1.1.1.3 SELECT ... WHERE TD_TIME_RANGE( Time, ‘2013-04-01’, TD_TIME_ADD(‘2013-04-01’, ‘1d’)
  • 14. © SIOS Technology, Inc. All rights Reserved. 2.11. その他のポイント(1/2)  テーブル結合について  UNION ALLのみ利用可能  重複を含む全レコードの結合  結合するテーブル全体を副問い合わせにすること  JOIN ONのONを記述漏れは、CROSS JOINになる  ON句では以下の二つは利用不可  不等号での結合  ORによる二つの条件を用いた結合  正規表現について  LIKE = SQLのLIKE  ワイルドカード:*,%,?,_,#,[文字リスト],...  RLIKEを用いると、Javaの正規表現を利用可能  ワイルドカード:LIKE + α 14
  • 15. © SIOS Technology, Inc. All rights Reserved. 2.11. その他のポイント(2/2)  関数情報  SHOW FUNCTIONS 関数の一覧を表示(UDFも含む)  DESC FUNCTION 関数名 DESC FUNCTION EXTENDED 関数名 関数の情報を表示、EXTENDEDで使用例も表示 15
  • 16. © SIOS Technology, Inc. All rights Reserved. 3. 発表のまとめ  ビッグデータ解析基盤に求められる機能:  各製品における各機能の詳細な比較が必要  HiveQLのTips  SQLと違いはあまりない  MapReduceを意識することでクエリの効率化  LEFT SEMI JOINの利用  /*+ MAPJOIN(tbl) */の利用  全体集計と個別集計  UDFについて 16 COLLECT STORE QUERY & VISUALIZE ANALYSIS