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

104 Views

March 15, 17

スライド概要

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

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 . 曾臻

2.

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 .

3.

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 .

4.

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

5.

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 .

6.

2.現在の課題  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 .

7.

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 .

8.

3.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 .

9.

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

10.

3.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 .

11.

3.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 .

12.

3.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 .

13.

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

14.

3.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

15.

3.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 .

16.

3.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 .

17.

3.Prestoログの保存:JMX JMX情報の保存: (1) JMX Connector(HTTP requests) select * from "java.lang:type=operatingsystem" 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

18.

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 .

19.

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

20.

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

21.

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

22.

4.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 .

23.

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 .

24.

5.アーキテクチャ 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

25.

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 .

26.

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

27.

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