---
title: Prestoクエリログの保存/分析機能の構築 #yjdsnight
tags:  #yjdsnight  
author: [Yahoo!デベロッパーネットワーク](https://www.docswell.com/user/ydnjp)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/27VMMDQ97Q.jpg?width=480
description: Prestoクエリログの保存/分析機能の構築 #yjdsnight by Yahoo!デベロッパーネットワーク
published: March 15, 17
canonical: https://www.docswell.com/s/ydnjp/K19JVZ-2017-03-15-123448
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/27VMMDQ97Q.jpg)

Prestoクエリログの保存／
分析機能の構築
2017年3月15日
ヤフー株式会社 クエリエンジンチーム
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
曾臻


# Page. 2

![Page Image](https://bcdn.docswell.com/page/5JGGGYW4JL.jpg)

Agenda
1.
2.
3.
4.
5.
6.
2
自己紹介
現在の課題
Prestoログの保存
Prestoログの分析
アーキテクチャ
まとめ
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 3

![Page Image](https://bcdn.docswell.com/page/47QXXM3RJP.jpg)

Agenda
1.
2.
3.
4.
5.
6.
3
自己紹介
現在の課題
Prestoログの保存
Prestoログの分析
アーキテクチャ
まとめ
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 4

![Page Image](https://bcdn.docswell.com/page/KE466V1QJ1.jpg)

１．自己紹介
名前 ： 曾
臻
所属 ：ヤフー株式会社 D&amp;Sソリューション
統括本部 クエリエンジン
経歴 :
Presto開発・運用
広告システム開発
4
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 5

![Page Image](https://bcdn.docswell.com/page/L71VV3GLJG.jpg)

Agenda
1.
2.
3.
4.
5.
6.
5
自己紹介
現在の課題
Prestoログの保存
Prestoログの分析
アーキテクチャ
まとめ
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 6

![Page Image](https://bcdn.docswell.com/page/G7WLLPKQJ2.jpg)

２．現在の課題
 Prestoを再起動したらクエリログが消える
 クエリ情報の保存は上限がある
 JVMのMetrics分析が難しい
6
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JZMMKZ373.jpg)

Agenda
1.
2.
3.
4.
5.
6.
7
自己紹介
現在の課題
Prestoログの保存
Prestoログの分析
アーキテクチャ
まとめ
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YE6NNQZZEV.jpg)

３．Prestoログの保存：クエリログ
最初の試み
• SYSTEMコネクターでクエリの履歴を取得
• 定期的にクエリ情報をほかのデータベースに保存
SELECT
*
FROM
system.runtime.queries;
8
参考：https://prestodb.io/docs/current/connector/system.html
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GE555RW9E4.jpg)

３．Prestoログの保存：クエリログ
データの保存はまだ課題：
• 保存前にクラスターを再起動したら、クエリログが消える
• 頻繁すぎると、クラスターの負担になる
解決方法：
• クエリ実行でトリガーする
9
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 10

![Page Image](https://bcdn.docswell.com/page/972NNDQ5JR.jpg)

３．Prestoログの保存：クエリログ
去年からTeradata、日本テラデータとCoDevを行っている
アメリカ出張でBootcampを実施
Prestoの内部構成、開発手法等を教えてもらった
ハーバード大学も見学（頭が少し良くなった気がする）
日本に戻った後でも活発的に交流している
10
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 11

![Page Image](https://bcdn.docswell.com/page/DJYPP2W6JM.jpg)

３．Prestoログの保存：クエリログ
コミュニティのエンジニアと意見を交換
1. EventListenerでクエリログ保存
EventListener: https://prestodb.io/docs/current/develop/event-listener.html
2. JMXコネクターでJVMのMetrics保存
JMX:
11
https://prestodb.io/docs/current/connector/jmx.html
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 12

![Page Image](https://bcdn.docswell.com/page/V7N558P1E8.jpg)

３．Prestoログの保存：クエリログ
PrestoのPluginを開発し、
クエリ情報をJSONファイルに保存
12
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 13

![Page Image](https://bcdn.docswell.com/page/YJ9YYK3Y73.jpg)

３．Prestoログの保存：クエリログ
13
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 14

![Page Image](https://bcdn.docswell.com/page/GJ866RMKED.jpg)

３．Prestoログの保存：クエリログ
クエリログの保存：
Frontend
UI
(1) HTTP requests
Presto
Coordinator
(3)Use Fluentd plugin
to send logs
(2) Run queries and write logs
Presto
Presto
Presto
Worker
Worker
Worker
14
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Object
storage


# Page. 15

![Page Image](https://bcdn.docswell.com/page/LJL99K3P7R.jpg)

３．Prestoログの保存：JMX
JVM情報もPresto JMXコネクターを
利用して、簡単に取れた。
参考：https://prestodb.io/docs/current/connector/jmx.html
しかしどうやって保存？
15
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 16

![Page Image](https://bcdn.docswell.com/page/47MZZ2D2JW.jpg)

３．Prestoログの保存：JMX
JMX情報保存の流れ：
JVM Metrics
→Fluentd plugin + Presto JMX Connector
→ Fluentd s3 plugin
→ 社内Object Storage
16
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 17

![Page Image](https://bcdn.docswell.com/page/P7R66M45E9.jpg)

３．Prestoログの保存：JMX
JMX情報の保存：
(1) JMX Connector（HTTP requests）
select * from &quot;java.lang:type=operatingsystem&quot;
Presto
Coordinator
(3)Use Fluentd plugin
to send logs
(2) Run queries and write logs
Presto
Presto
Presto
Worker
Worker
Worker
17
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Object
storage


# Page. 18

![Page Image](https://bcdn.docswell.com/page/PJXMMV2XEX.jpg)

Agenda
1.
2.
3.
4.
5.
6.
18
自己紹介
現在の課題
Prestoログの保存
Prestoログの分析
アーキテクチャ
まとめ
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 19

![Page Image](https://bcdn.docswell.com/page/3JKGGQM97D.jpg)

４．Prestoログの分析
19
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 20

![Page Image](https://bcdn.docswell.com/page/LE3NNPY9E5.jpg)

４．Prestoログの分析
20
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 21

![Page Image](https://bcdn.docswell.com/page/8EDWWL587G.jpg)

４．Prestoログの分析
分析
21
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 22

![Page Image](https://bcdn.docswell.com/page/V7P992GWJ8.jpg)

４．Prestoログの分析
• JSONをObject Storageに保存
• Hive MetastoreでTableを作成
• SQL文で、Slow Query／リソース利
用の分析
22
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 23

![Page Image](https://bcdn.docswell.com/page/2JVMMD69JQ.jpg)

Agenda
1.
2.
3.
4.
5.
6.
23
自己紹介
自己紹介現在の課題
Prestoログの保存
Prestoログの分析
アーキテクチャ
まとめ
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 24

![Page Image](https://bcdn.docswell.com/page/5EGGGYN4EL.jpg)

５．アーキテクチャ
Hive
metastore
(1-2)SQL with JMX Connector （HTTP requests）
Frontend
UI
(1-1) SQL Query(HTTP requests)
Presto
Coordinator
(3)Use Fluentd plugin
to send logs
(2) Run queries and write logs
Presto
Presto
Presto
Worker
Worker
Worker
24
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Object
storage


# Page. 25

![Page Image](https://bcdn.docswell.com/page/4JQXXMQREP.jpg)

Agenda
1.
2.
3.
4.
5.
6.
25
自己紹介
現在の課題
Prestoログの保存
Prestoログの分析
アーキテクチャ
まとめ
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 26

![Page Image](https://bcdn.docswell.com/page/K7466VNQE1.jpg)

６．まとめ
１）課題解決
• クエリ保存:Presto plugin 開発
• JMX情報保存:
JMX connector + fluentd plugin活用
２）OSSコミュニティとの交流
• 機能追加が順調にできた
• コミュニティへの還元もしていきたい
26
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 27

![Page Image](https://bcdn.docswell.com/page/LJ1VV35LEG.jpg)

EOP
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


