prestoクエリログの保存/分析機能の構築 #yjdsnight

27
Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. 2017年3月15日 ヤフー株式会社 クエリエンジンチーム 曾臻 Prestoクエリログの保存/ 分析機能の構築

Upload: yahoo

Post on 21-Mar-2017

272 views

Category:

Technology


1 download

TRANSCRIPT

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

2017年3月15日

ヤフー株式会社 クエリエンジンチーム 曾臻

Prestoクエリログの保存/

分析機能の構築

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

Agenda

2

1. 自己紹介

2. 現在の課題

3. Prestoログの保存

4. Prestoログの分析

5. アーキテクチャ

6. まとめ

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

Agenda

3

1. 自己紹介

2. 現在の課題

3. Prestoログの保存

4. Prestoログの分析

5. アーキテクチャ

6. まとめ

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

1.自己紹介

4

名前 : 曾 臻

所属 :ヤフー株式会社 D&Sソリューション統括本部 クエリエンジン

経歴 : Presto開発・運用広告システム開発

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

Agenda

5

1. 自己紹介

2. 現在の課題

3. Prestoログの保存

4. Prestoログの分析

5. アーキテクチャ

6. まとめ

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

2.現在の課題

6

Prestoを再起動したらクエリログが消える

クエリ情報の保存は上限がある

JVMのMetrics分析が難しい

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

Agenda

7

1. 自己紹介

2. 現在の課題

3. Prestoログの保存

4. Prestoログの分析

5. アーキテクチャ

6. まとめ

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:クエリログ

8

最初の試み

• SYSTEMコネクターでクエリの履歴を取得

• 定期的にクエリ情報をほかのデータベースに保存

参考:https://prestodb.io/docs/current/connector/system.html

SELECT*

FROMsystem.runtime.queries;

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:クエリログ

9

データの保存はまだ課題:

• 保存前にクラスターを再起動したら、クエリログが消える

• 頻繁すぎると、クラスターの負担になる

解決方法:

• クエリ実行でトリガーする

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:クエリログ

10

去年からTeradata、日本テラデータとCoDevを行っている

アメリカ出張でBootcampを実施

Prestoの内部構成、開発手法等を教えてもらった

ハーバード大学も見学(頭が少し良くなった気がする)

日本に戻った後でも活発的に交流している

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:クエリログ

11

コミュニティのエンジニアと意見を交換

1. EventListenerでクエリログ保存

2. JMXコネクターでJVMのMetrics保存

EventListener: https://prestodb.io/docs/current/develop/event-listener.html

JMX: https://prestodb.io/docs/current/connector/jmx.html

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:クエリログ

12

PrestoのPluginを開発し、

クエリ情報をJSONファイルに保存

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:クエリログ

13

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:クエリログ

14

クエリログの保存:

Frontend

UI

Presto

Coordinator

Presto

WorkerPresto

WorkerPresto

Worker

Object

storage

(2) Run queries and write logs

(3)Use Fluentd plugin to send logs(1) HTTP requests

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:JMX

15

JVM情報もPresto JMXコネクターを

利用して、簡単に取れた。

しかしどうやって保存?

参考:https://prestodb.io/docs/current/connector/jmx.html

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:JMX

16

JMX情報保存の流れ:

JVM Metrics

→Fluentd plugin + Presto JMX Connector

→ Fluentd s3 plugin

→ 社内Object Storage

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

3.Prestoログの保存:JMX

17

JMX情報の保存:

Presto

Coordinator

Presto

WorkerPresto

WorkerPresto

Worker

Object

storage

(2) Run queries and write logs

(3)Use Fluentd plugin to send logs

(1) JMX Connector(HTTP requests)

select * from "java.lang:type=operatingsystem"

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

Agenda

18

1. 自己紹介

2. 現在の課題

3. Prestoログの保存

4. Prestoログの分析

5. アーキテクチャ

6. まとめ

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

4.Prestoログの分析

19

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

4.Prestoログの分析

20

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

4.Prestoログの分析

21

分析

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

4.Prestoログの分析

22

• JSONをObject Storageに保存

• Hive MetastoreでTableを作成

• SQL文で、Slow Query/リソース利用の分析

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

Agenda

23

1. 自己紹介

2. 自己紹介現在の課題

3. Prestoログの保存

4. Prestoログの分析

5. アーキテクチャ

6. まとめ

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

5.アーキテクチャ

24

Frontend

UI

Presto

Coordinator

Presto

WorkerPresto

WorkerPresto

Worker

Object

storage

(2) Run queries and write logs

(3)Use Fluentd plugin to send logs

(1-1) SQL Query(HTTP requests)

(1-2)SQL with JMX Connector (HTTP requests)

Hive

metastore

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

Agenda

25

1. 自己紹介

2. 現在の課題

3. Prestoログの保存

4. Prestoログの分析

5. アーキテクチャ

6. まとめ

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

6.まとめ

26

1)課題解決• クエリ保存:Presto plugin 開発• JMX情報保存:

JMX connector + fluentd plugin活用2)OSSコミュニティとの交流• 機能追加が順調にできた• コミュニティへの還元もしていきたい

Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .

EOP