SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
Prestoで実現するインタラクティブクエリ 
Taro L. Saito, Treasure Data 
leo@treasure-data.com 
November 13, 2014 
@db tech showcase Tokyo 2014 秋葉原UDX 
Copyright ©2014 Treasure Data. All Rights Reserved.
自己紹介 @taroleo 
• 2002 東京大学 理学部 情報科学科卒 
• 2007 Ph.D. 
– XMLデータベース、トランザクション処理の研究 
– ACM SIGMODなどで研究発表 
• ~ 2014 東京大学 情報生命科学専攻 助教 
– ゲノムサイエンス研究 
• 大規模データ処理、並列・分散コンピューティング 
• 2014.3月~ Treasure Data 
– ソフトウェアエンジニア, MPP Team Leader 
Copyright ©2014 Treasure Data. All Rights Reserved. 
2
「データ」に関連するオープンソース活動 
• sqlite-jdbc 
– SQLite DBMS for Java 
– 1ファイル=1DB 
Copyright ©2014 Treasure Data. All Rights Reserved. 
• snappy-java 
– 高速圧縮ライブラリ 
– 月に10万回以上ダウンロード 
– Sparkでも採用 
• msgpack-java 
• UT Genome Browser (UTGB) 
– 大規模ゲノム情報の可視化 
3
Prestoとは? 
• Facebookが開発している分散SQLエンジン 
– ペタスケールのデータに対しインタラクティブ(対話的)な検索が必要に 
• それまではHive中心 
– 2013年11月にオープンソース化 
Copyright ©2014 Treasure Data. All Rights Reserved. 
• Prestoの特徴 
– CPU使用効率・スピード重視(アドホック検索) 
– インメモリ処理 
– Javaによる実装 
– 教科書的なRDBMSの実装 
– ANSI SQLベース 
4
Prestoの開発態勢 
• 主にFacebookチームの6人がGitHub 
上で開発 
– issue管理もGitHubのみ 
– Google group上のMLで議論 
• Treasure Dataの貢献数は現在第3位 
• 2014年11月現在 
– 39 contributors 
– 1949 pull requests! 
Copyright ©2014 Treasure Data. All Rights Reserved.
バッチクエリ(Hive) とアドホッククエリ (Presto) 
Copyright ©2014 Treasure Data. All Rights Reserved. 
TDでは独自にリトライ 
機構を導入 
6 
スループット重視 CPU使用効率、レスポンスタイム重視 
耐障害性
HDFS 
Hive 
PostgreSQL, etc. 
Daily/Hourly Batch 
Interactive query 
Dashboard 
Commercial 
BI Tools 
Batch analysis platform" Visualization platform"
HDFS 
Hive 
PostgreSQL, etc. 
Daily/Hourly Batch 
Interactive query 
✓ Less scalable 
✓ Extra cost 
Dashboard 
Commercial 
BI Tools 
✓ Can’t query against 
“live” data directly 
Batch analysis platform Visualization platform 
✓ More work to manage 
2 platforms
HDFS 
Hive Dashboard 
Presto 
PostgreSQL, etc. 
Daily/Hourly Batch 
HDFS 
Hive 
Dashboard 
Daily/Hourly Batch 
Interactive query 
Interactive query
PrestoはSQLレイヤー 
• Prestoのコア部分はSQLの実行レイヤーのみ 
– 各種ストレージ、DBMSへのアクセスはコネクター経由 
– 既存のコネクターや独自実装のコネクターを同時に使用できる 
Copyright ©2014 Treasure Data. All Rights Reserved. 
• コネクター 
– Hiveコネクター 
• HDFS上に保存されたデータにアクセス 
– Cassandraコネクター 
– MySQLコネクター 
– PostgreSQLコネクター 
10
Presto 
HDFS 
Hive 
Dashboard 
Daily/Hourly Batch 
Interactive query 
SQL on any data sets 
Cassandra MySQL Commercial DBMSs
Hive 
TD API / 
batch query 
Interactive query Web Console 
Presto 
Treasure Data 
PlazmaDB 
td-presto connector
トレジャーデータとは? 
• 米シリコンバレー発日本人創業のビッグデータ関連企業 
– 2011年12月、米Mountain Viewにて創業 
– 2012年11月、東京丸の内に日本支社設立 
• クラウド型データマネージメントサービス「Treasure Data Service」を提供 
Copyright ©2014 Treasure Data. All Rights Reserved. 
13 
芳川裕誠 – CEO 
Open source business veteran 
太田一樹 – CTO 
Founder of world’s largest Hadoop Group 
主要投資家 
Sierra Ventures – (Tim Guleri) 
企業向けソフト・データベース領域での有力VC 
Bill Tai 
Charles River Ventures, Twitterなどに投資 
まつもとゆきひろ 
Ruby言語開発者 
創業者 
Jerry Yang 
Yahoo! Inc. 創業者 
古橋貞之 – Software Engineer 
MessagePack, Fluentd開発者
Treasure Data Service 
ビッグデータのための「クラウド + マネジメント」一体型サービス 
データ収集~保存~分析までワンストップでサポート 
Copyright ©2014 Treasure Data. All Rights Reserved. 
14 
• 毎日数百億規模のレコードが取り込まれている 
– 2014年5月に5兆(trillion)レコードに到達 
• SQLベース(Hive, Presto, Pigなど)による検索サービスを提供
Over 100 customers, including: 
Copyright ©2014 Treasure Data. All Rights Reserved. 
15
Customer: Pioneer, #1 Auto Electronics Provider 
Copyright ©2014 Treasure Data. All Rights Reserved. 
16
車載センサーデータ × M2M 
競争で先んじたいが、大量のストリーミングデータを 
経済的に溜めて分析する仕組みを持っていない 
• 車載センサーデータ等を収集 
• ブレーキを踏んだ、等 
• 自動車内のセンサーデータを分析 
新規事業へのフィードバック 
Copyright ©2014 Treasure Data. All Rights Reserved. 17
O2O(online-to-offline)活用事例 
• 購買や行動の履歴を統合し横断的に分析 
– なぜ買ってくれたかを理解 
– 店舗の顧客をネットストアへ、ネットストアの顧客を店舗へと相互に送客可能に 
Copyright ©2014 Treasure Data. All Rights Reserved. 
スマホアプリ 
ネットストア 
リアル店舗 
クーポン発行 
coupon 
レコメンド最適化 
メール配信最適化 
ID 
アクションログ 
アクションログ 
購入データ 
データ統合 
+ Amazon Redshift 
18
ゲームソリューション導入事例 
• 20タイトル、2000台以上のサーバからのログを収集・保管 
– 分析、ゲームの改善に活用 
– 各デバイスからのアクセスログ, ユーザーの行動を可視化 
Copyright ©2014 Treasure Data. All Rights Reserved. 
Game1 Game2 Game3 
KPI A 
KPI B 
KPI C 
横断分析 
縦断分析 
19
TD + Metric Insights 
Copyright ©2014 Treasure Data. All Rights Reserved. 
20
Pebble: Wearable Tech 
Copyright ©2014 Treasure Data. All Rights Reserved. 
21
ウェアラブルデバイス センサーデータ × M2M 
heroku 
競争で先んじたいが、大量のストリーミングデータを 
経済的に溜めて分析する仕組みを持っていない 
• 機器情報を収集・分析 
• バッテリー残量等 
• ユーザーの操作情報を収集・分析 
新規事業へのフィードバック 
Copyright ©2014 Treasure Data. All Rights Reserved. 22
TD + Presto 
• トレジャーデータ 
– 日々大量のデータを収集 
• インタラクティブクエリ 
– 大量のデータからすばやく知見を得たい 
– システムの状態をすばやく知りたい 
– データ解析の支援 
– 日に数千個のクエリを実行するケースも(バッチ的にも使える) 
Copyright ©2014 Treasure Data. All Rights Reserved. 
• Presto 
– 低レイテンシで結果が得られる 
– Hiveの穴を埋めるインタラクティブクエリエンジン 
23
Presto + BI ツール 
Copyright ©2014 Treasure Data. All Rights Reserved. 
24
Presto 
HDFS 
Hive 
Dashboard 
Daily/Hourly Batch 
Interactive query 
SQL on any data sets Commercial 
Cassandra MySQL Commertial DBs 
BI Tools 
✓ Tableau 
✓ ChartIO 
✓ ... 
Data analysis platform"
Prestogres: Presto + PostgreSQL 
• ODBCドライバの実装は大変 
– 仕様が巨大で複雑 
• PostgreSQL界隈の成熟した実装を活用できないだろうか? 
• そうして誕生したのが… 
https://github.com/treasure-data/prestogres 
Copyright ©2014 Treasure Data. All Rights Reserved.
Prestogresの仕組み 
• PostgreSQLを経由してPrestoにクエリを送信 
– pgpool-II(PostgreSQL用のコネクションプール実装)がベース 
– PostgreSQLにアクセスできるツール(JDBC, ODBCなど)は全て利用可能に 
1. SELECT COUNT(1) FROM tbl1 
client pgpool-II + patch 
2. select run_presto_as_temp_table( 
‘presto_result’, 
‘SELECT COUNT(1) FROM tbl1’ 
); 
Copyright ©2014 Treasure Data. All Rights Reserved. 
4. SELECT * FROM presto_result; 
PostgreSQL 
Presto 
Coordinator 
3. “run_persto_as_temp_table” function 
Prestoでクエリを実行
Tableau Desktop 
Copyright ©2014 Treasure Data. All Rights Reserved. 
28
TD + chartio.com 
Copyright ©2014 Treasure Data. All Rights Reserved. 29
データの収集 
Copyright ©2014 Treasure Data. All Rights Reserved. 
30
Fluentd: データを正しく集めるための入り口 
Copyright ©2014 Treasure Data. All Rights Reserved. 
31 
fluentd.org
Fluentd is Ubuiquitous 
• Kubernetes 
– GoogleのDocker(コンテナ型ソ 
フトウェア)管理ツール 
• Fluentdが標準ログコレクタに 
Copyright ©2014 Treasure Data. All Rights Reserved. 
32
PlazmaDB: スキーマレス・列志向ストレージ 
Copyright ©2014 Treasure Data. All Rights Reserved. 
33
Treasure Data: Javascript SDK 
• Webサイトのビジター情報を簡単にトラッキング 
– td_version – td-js-sdk’s version 
– td_client_id – client’s uuid 
– td_charset – character set 
– td_language – browser language 
– td_color – screen color depth 
– td_screen – screen resolution 
– td_viewport – viewport size 
– td_title – document title 
– td_url – document url 
– td_host – document host 
– td_path – document pathname 
– td_referrer – document referrer 
– td_ip – request IP (server) 
– td_browser – client browser (server) 
– td_browser_version – client browser version (server) 
– td_os – client operating system (server) 
– td_os_version – client operating system version (server) 
• スキーマの変更なしにパラメータを追加できる 
Copyright ©2014 Treasure Data. All Rights Reserved. 
34
MessagePack: スキーマレスでも型はある 
Copyright ©2014 Treasure Data. All Rights Reserved. 
35 
• レコードはMessagePack形式 
• 入力時のデータ型はそのまま保存 
– intやstring型のデータが列中に混在した状況でも使える 
PlazmaDBがスキーマに合わせて自動型変換を行う
Presto:列志向のクエリプランによる最適化 
• s 
Copyright ©2014 Treasure Data. All Rights Reserved. 
36 データ読み出しの最適化
Prestoのアーキテクチャ 
Copyright ©2014 Treasure Data. All Rights Reserved. 
37
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service 
1. find servers in a cluster
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service 
2. Client sends a query 
using HTTP
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service 
3. Coordinator builds 
a query plan 
Connector plugin 
provides metadata 
(table schema, etc.)
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service 
4. Coordinator sends 
tasks to workers
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service 
5. Workers read data 
through connector plugin
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service 
6. Workers run tasks 
in memory
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service 
Client 
7. Client gets the result 
from a worker
Client 
Coordinator Connector 
Plugin 
Worker 
Worker 
Worker 
Storage / Metadata 
Discovery Service
Query Planner 
SELECT 
name, 
count(*) AS c 
FROM impressions 
GROUP BY name 
Output 
(name, c) 
GROUP BY 
(name, count(*)) 
Copyright ©2014 Treasure Data. All Rights Reserved. 
SQL 
Table schema 
impressions ( 
name varchar 
time bigint 
) 
Table scan 
(name:varchar) 
+ 
Output 
Exchange 
Sink 
Final aggregation 
Exchange 
Sink 
Partial aggregation 
Table scan 
Logical query plan 
Distributed query plan
Query Planner - Stages 
inter-worker 
data transfer 
pipelined 
aggregation 
Copyright ©2014 Treasure Data. All Rights Reserved. 
Output 
Exchange 
Sink 
Final aggregation 
Exchange 
Sink 
Partial aggregation 
Table scan 
inter-worker 
data transfer 
Stage-0 
Stage-1 
Stage-2
Copyright ©2014 Treasure Data. All Rights Reserved. 
Output 
Exchange 
Sink 
Partial aggregation 
Table scan 
Sink 
Partial aggregation 
Table scan 
Execution Planner 
• StageをTaskに分割して並列度を上げる 
+ Node list 
✓ 2 workers 
Sink 
Final aggregation 
Exchange 
Sink 
Final aggregation 
Exchange 
Output 
Exchange 
Sink 
Final aggregation 
Exchange 
Sink 
Partial aggregation 
Table scan 
Worker 1 Worker 2
Execution Planner - Split 
• 各TaskにはSplitが割り当てられ、並列に実行される 
1 split / task 
= 1 thread / worker 
Copyright ©2014 Treasure Data. All Rights Reserved. 
Sink 
Final aggregation 
Exchange 
Sink 
Partial aggregation 
Table scan 
Sink 
Final aggregation 
Exchange 
Sink 
Partial aggregation 
Table scan 
Output 
Exchange 
Split 
many splits / task 
= many threads / worker 
(table scan) 
Worker 1 Worker 2 
1 split / worker 
= 1 thread / worker
Presto: Web Monitor 
• TPC-H Q5 
Copyright ©2014 Treasure Data. All Rights Reserved. 
51 
1053
Prestoの運用 
• クエリの実行履歴 
– TDに保存してPrestoで利用状況を管理 
• Presto coordinator/worker 
– JMX Beanやクエリの状態をJSON形式で取得できる 
• Presto-metrics 
– Rubyからprestoの各種パラメータを取得するライブラリ 
– https://github.com/xerial/presto-metrics 
– メモリ使用量、タスク実行量、エラーコード取得など 
– presto-metrics + Fluentdで常にPrestoの状態を監視 
• Librato Metricsで集約+可視化 
Copyright ©2014 Treasure Data. All Rights Reserved. 
52
Fluentdによるサービスのモニタリング 
Copyright ©2014 Treasure Data. All Rights Reserved. 
53 
Hive 
Presto
Librato MetricsによるPrestoサービスの監視 
Copyright ©2014 Treasure Data. All Rights Reserved. 
54
TD: Scheduled Query 
• 定期的にTDでクエリを実 
行 
• Prestoクエリの集計にも 
Prestoを使っている 
Copyright ©2014 Treasure Data. All Rights Reserved. 
55
td-prestoコネクタ 
• Storage 
– PlazmaDB 
– S3, Riak CS (S3とAPI互換)へのアクセス 
• TableScan operator 
– バックグラウンドで先にI/Oリクエストを発行(プリフェッチ) 
– msgpack-java v07 
• v06に比べて2倍以上高速化 
– レコード単位ではなく、ページ単位での処理 
• Presto 0.69より 
Copyright ©2014 Treasure Data. All Rights Reserved. 
56
トレジャーデータが目指すもの 
• 「世の中の誰もが手軽にデータベースを使える」ようにする 
• まずは誰もが「データを手軽に正しく集められる」ように 
– Fluentd+msgpackで柔軟にデータを取り込む 
– plazmadbによる圧縮、スキャンの最適化 
Copyright ©2014 Treasure Data. All Rights Reserved. 
• 「Presto」 
– Hiveの穴を埋める分散SQLエンジン 
– データを手軽にすばやく解析 
WE ARE HIRING! 
57

Weitere ähnliche Inhalte

Was ist angesagt?

トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
Takahiro Inoue
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータ
Takahiro Inoue
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
Toru Takizawa
 
20140708 オンラインゲームソリューション
20140708 オンラインゲームソリューション20140708 オンラインゲームソリューション
20140708 オンラインゲームソリューション
Takahiro Inoue
 
For blog hive_ql_on_treasuredata
For blog hive_ql_on_treasuredataFor blog hive_ql_on_treasuredata
For blog hive_ql_on_treasuredata
BigData Sios
 

Was ist angesagt? (20)

OSSを活用したダッシュボード の紹介
OSSを活用したダッシュボード の紹介OSSを活用したダッシュボード の紹介
OSSを活用したダッシュボード の紹介
 
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
 
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
 
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
 
スケールアウト・インメモリ分析の標準フォーマットを目指す 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...
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータ
 
Hadoopカンファレンス2013
Hadoopカンファレンス2013Hadoopカンファレンス2013
Hadoopカンファレンス2013
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
 
Data x AI x API で考えるビジネスインフラ
Data x AI x API で考えるビジネスインフラData x AI x API で考えるビジネスインフラ
Data x AI x API で考えるビジネスインフラ
 
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなすMapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
 
MapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォームMapR Streams & MapR コンバージド・データ・プラットフォーム
MapR Streams & MapR コンバージド・データ・プラットフォーム
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
 
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
 
20140708 オンラインゲームソリューション
20140708 オンラインゲームソリューション20140708 オンラインゲームソリューション
20140708 オンラインゲームソリューション
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
 
Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmer
 
For blog hive_ql_on_treasuredata
For blog hive_ql_on_treasuredataFor blog hive_ql_on_treasuredata
For blog hive_ql_on_treasuredata
 
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
 

Ähnlich wie [db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎

ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
Recruit Technologies
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
 
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
Insight Technology, Inc.
 

Ähnlich wie [db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎 (20)

ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
クラウド概要 by Engine Yard
クラウド概要 by Engine Yardクラウド概要 by Engine Yard
クラウド概要 by Engine Yard
 
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ  AWS Data PipelineAWS Black Belt Techシリーズ  AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
 
Beginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning HadoopBeginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning Hadoop
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
Smart data integration to hybrid data analysis infrastructure
Smart data integration to hybrid data analysis infrastructureSmart data integration to hybrid data analysis infrastructure
Smart data integration to hybrid data analysis infrastructure
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
Apache Drill を利用した実データの分析
Apache Drill を利用した実データの分析Apache Drill を利用した実データの分析
Apache Drill を利用した実データの分析
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
 
クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートクラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタート
 
[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Apache spark 2.3 and beyond
Apache spark 2.3 and beyondApache spark 2.3 and beyond
Apache spark 2.3 and beyond
 
Data platformdesign
Data platformdesignData platformdesign
Data platformdesign
 
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
 

Mehr von Insight Technology, Inc.

コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
Insight Technology, Inc.
 

Mehr von Insight Technology, Inc. (20)

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL ServicesLunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
 

[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎

  • 1. Prestoで実現するインタラクティブクエリ Taro L. Saito, Treasure Data leo@treasure-data.com November 13, 2014 @db tech showcase Tokyo 2014 秋葉原UDX Copyright ©2014 Treasure Data. All Rights Reserved.
  • 2. 自己紹介 @taroleo • 2002 東京大学 理学部 情報科学科卒 • 2007 Ph.D. – XMLデータベース、トランザクション処理の研究 – ACM SIGMODなどで研究発表 • ~ 2014 東京大学 情報生命科学専攻 助教 – ゲノムサイエンス研究 • 大規模データ処理、並列・分散コンピューティング • 2014.3月~ Treasure Data – ソフトウェアエンジニア, MPP Team Leader Copyright ©2014 Treasure Data. All Rights Reserved. 2
  • 3. 「データ」に関連するオープンソース活動 • sqlite-jdbc – SQLite DBMS for Java – 1ファイル=1DB Copyright ©2014 Treasure Data. All Rights Reserved. • snappy-java – 高速圧縮ライブラリ – 月に10万回以上ダウンロード – Sparkでも採用 • msgpack-java • UT Genome Browser (UTGB) – 大規模ゲノム情報の可視化 3
  • 4. Prestoとは? • Facebookが開発している分散SQLエンジン – ペタスケールのデータに対しインタラクティブ(対話的)な検索が必要に • それまではHive中心 – 2013年11月にオープンソース化 Copyright ©2014 Treasure Data. All Rights Reserved. • Prestoの特徴 – CPU使用効率・スピード重視(アドホック検索) – インメモリ処理 – Javaによる実装 – 教科書的なRDBMSの実装 – ANSI SQLベース 4
  • 5. Prestoの開発態勢 • 主にFacebookチームの6人がGitHub 上で開発 – issue管理もGitHubのみ – Google group上のMLで議論 • Treasure Dataの貢献数は現在第3位 • 2014年11月現在 – 39 contributors – 1949 pull requests! Copyright ©2014 Treasure Data. All Rights Reserved.
  • 6. バッチクエリ(Hive) とアドホッククエリ (Presto) Copyright ©2014 Treasure Data. All Rights Reserved. TDでは独自にリトライ 機構を導入 6 スループット重視 CPU使用効率、レスポンスタイム重視 耐障害性
  • 7. HDFS Hive PostgreSQL, etc. Daily/Hourly Batch Interactive query Dashboard Commercial BI Tools Batch analysis platform" Visualization platform"
  • 8. HDFS Hive PostgreSQL, etc. Daily/Hourly Batch Interactive query ✓ Less scalable ✓ Extra cost Dashboard Commercial BI Tools ✓ Can’t query against “live” data directly Batch analysis platform Visualization platform ✓ More work to manage 2 platforms
  • 9. HDFS Hive Dashboard Presto PostgreSQL, etc. Daily/Hourly Batch HDFS Hive Dashboard Daily/Hourly Batch Interactive query Interactive query
  • 10. PrestoはSQLレイヤー • Prestoのコア部分はSQLの実行レイヤーのみ – 各種ストレージ、DBMSへのアクセスはコネクター経由 – 既存のコネクターや独自実装のコネクターを同時に使用できる Copyright ©2014 Treasure Data. All Rights Reserved. • コネクター – Hiveコネクター • HDFS上に保存されたデータにアクセス – Cassandraコネクター – MySQLコネクター – PostgreSQLコネクター 10
  • 11. Presto HDFS Hive Dashboard Daily/Hourly Batch Interactive query SQL on any data sets Cassandra MySQL Commercial DBMSs
  • 12. Hive TD API / batch query Interactive query Web Console Presto Treasure Data PlazmaDB td-presto connector
  • 13. トレジャーデータとは? • 米シリコンバレー発日本人創業のビッグデータ関連企業 – 2011年12月、米Mountain Viewにて創業 – 2012年11月、東京丸の内に日本支社設立 • クラウド型データマネージメントサービス「Treasure Data Service」を提供 Copyright ©2014 Treasure Data. All Rights Reserved. 13 芳川裕誠 – CEO Open source business veteran 太田一樹 – CTO Founder of world’s largest Hadoop Group 主要投資家 Sierra Ventures – (Tim Guleri) 企業向けソフト・データベース領域での有力VC Bill Tai Charles River Ventures, Twitterなどに投資 まつもとゆきひろ Ruby言語開発者 創業者 Jerry Yang Yahoo! Inc. 創業者 古橋貞之 – Software Engineer MessagePack, Fluentd開発者
  • 14. Treasure Data Service ビッグデータのための「クラウド + マネジメント」一体型サービス データ収集~保存~分析までワンストップでサポート Copyright ©2014 Treasure Data. All Rights Reserved. 14 • 毎日数百億規模のレコードが取り込まれている – 2014年5月に5兆(trillion)レコードに到達 • SQLベース(Hive, Presto, Pigなど)による検索サービスを提供
  • 15. Over 100 customers, including: Copyright ©2014 Treasure Data. All Rights Reserved. 15
  • 16. Customer: Pioneer, #1 Auto Electronics Provider Copyright ©2014 Treasure Data. All Rights Reserved. 16
  • 17. 車載センサーデータ × M2M 競争で先んじたいが、大量のストリーミングデータを 経済的に溜めて分析する仕組みを持っていない • 車載センサーデータ等を収集 • ブレーキを踏んだ、等 • 自動車内のセンサーデータを分析 新規事業へのフィードバック Copyright ©2014 Treasure Data. All Rights Reserved. 17
  • 18. O2O(online-to-offline)活用事例 • 購買や行動の履歴を統合し横断的に分析 – なぜ買ってくれたかを理解 – 店舗の顧客をネットストアへ、ネットストアの顧客を店舗へと相互に送客可能に Copyright ©2014 Treasure Data. All Rights Reserved. スマホアプリ ネットストア リアル店舗 クーポン発行 coupon レコメンド最適化 メール配信最適化 ID アクションログ アクションログ 購入データ データ統合 + Amazon Redshift 18
  • 19. ゲームソリューション導入事例 • 20タイトル、2000台以上のサーバからのログを収集・保管 – 分析、ゲームの改善に活用 – 各デバイスからのアクセスログ, ユーザーの行動を可視化 Copyright ©2014 Treasure Data. All Rights Reserved. Game1 Game2 Game3 KPI A KPI B KPI C 横断分析 縦断分析 19
  • 20. TD + Metric Insights Copyright ©2014 Treasure Data. All Rights Reserved. 20
  • 21. Pebble: Wearable Tech Copyright ©2014 Treasure Data. All Rights Reserved. 21
  • 22. ウェアラブルデバイス センサーデータ × M2M heroku 競争で先んじたいが、大量のストリーミングデータを 経済的に溜めて分析する仕組みを持っていない • 機器情報を収集・分析 • バッテリー残量等 • ユーザーの操作情報を収集・分析 新規事業へのフィードバック Copyright ©2014 Treasure Data. All Rights Reserved. 22
  • 23. TD + Presto • トレジャーデータ – 日々大量のデータを収集 • インタラクティブクエリ – 大量のデータからすばやく知見を得たい – システムの状態をすばやく知りたい – データ解析の支援 – 日に数千個のクエリを実行するケースも(バッチ的にも使える) Copyright ©2014 Treasure Data. All Rights Reserved. • Presto – 低レイテンシで結果が得られる – Hiveの穴を埋めるインタラクティブクエリエンジン 23
  • 24. Presto + BI ツール Copyright ©2014 Treasure Data. All Rights Reserved. 24
  • 25. Presto HDFS Hive Dashboard Daily/Hourly Batch Interactive query SQL on any data sets Commercial Cassandra MySQL Commertial DBs BI Tools ✓ Tableau ✓ ChartIO ✓ ... Data analysis platform"
  • 26. Prestogres: Presto + PostgreSQL • ODBCドライバの実装は大変 – 仕様が巨大で複雑 • PostgreSQL界隈の成熟した実装を活用できないだろうか? • そうして誕生したのが… https://github.com/treasure-data/prestogres Copyright ©2014 Treasure Data. All Rights Reserved.
  • 27. Prestogresの仕組み • PostgreSQLを経由してPrestoにクエリを送信 – pgpool-II(PostgreSQL用のコネクションプール実装)がベース – PostgreSQLにアクセスできるツール(JDBC, ODBCなど)は全て利用可能に 1. SELECT COUNT(1) FROM tbl1 client pgpool-II + patch 2. select run_presto_as_temp_table( ‘presto_result’, ‘SELECT COUNT(1) FROM tbl1’ ); Copyright ©2014 Treasure Data. All Rights Reserved. 4. SELECT * FROM presto_result; PostgreSQL Presto Coordinator 3. “run_persto_as_temp_table” function Prestoでクエリを実行
  • 28. Tableau Desktop Copyright ©2014 Treasure Data. All Rights Reserved. 28
  • 29. TD + chartio.com Copyright ©2014 Treasure Data. All Rights Reserved. 29
  • 30. データの収集 Copyright ©2014 Treasure Data. All Rights Reserved. 30
  • 31. Fluentd: データを正しく集めるための入り口 Copyright ©2014 Treasure Data. All Rights Reserved. 31 fluentd.org
  • 32. Fluentd is Ubuiquitous • Kubernetes – GoogleのDocker(コンテナ型ソ フトウェア)管理ツール • Fluentdが標準ログコレクタに Copyright ©2014 Treasure Data. All Rights Reserved. 32
  • 33. PlazmaDB: スキーマレス・列志向ストレージ Copyright ©2014 Treasure Data. All Rights Reserved. 33
  • 34. Treasure Data: Javascript SDK • Webサイトのビジター情報を簡単にトラッキング – td_version – td-js-sdk’s version – td_client_id – client’s uuid – td_charset – character set – td_language – browser language – td_color – screen color depth – td_screen – screen resolution – td_viewport – viewport size – td_title – document title – td_url – document url – td_host – document host – td_path – document pathname – td_referrer – document referrer – td_ip – request IP (server) – td_browser – client browser (server) – td_browser_version – client browser version (server) – td_os – client operating system (server) – td_os_version – client operating system version (server) • スキーマの変更なしにパラメータを追加できる Copyright ©2014 Treasure Data. All Rights Reserved. 34
  • 35. MessagePack: スキーマレスでも型はある Copyright ©2014 Treasure Data. All Rights Reserved. 35 • レコードはMessagePack形式 • 入力時のデータ型はそのまま保存 – intやstring型のデータが列中に混在した状況でも使える PlazmaDBがスキーマに合わせて自動型変換を行う
  • 36. Presto:列志向のクエリプランによる最適化 • s Copyright ©2014 Treasure Data. All Rights Reserved. 36 データ読み出しの最適化
  • 37. Prestoのアーキテクチャ Copyright ©2014 Treasure Data. All Rights Reserved. 37
  • 38. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service
  • 39. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service 1. find servers in a cluster
  • 40. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service 2. Client sends a query using HTTP
  • 41. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service 3. Coordinator builds a query plan Connector plugin provides metadata (table schema, etc.)
  • 42. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service 4. Coordinator sends tasks to workers
  • 43. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service 5. Workers read data through connector plugin
  • 44. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service 6. Workers run tasks in memory
  • 45. Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service Client 7. Client gets the result from a worker
  • 46. Client Coordinator Connector Plugin Worker Worker Worker Storage / Metadata Discovery Service
  • 47. Query Planner SELECT name, count(*) AS c FROM impressions GROUP BY name Output (name, c) GROUP BY (name, count(*)) Copyright ©2014 Treasure Data. All Rights Reserved. SQL Table schema impressions ( name varchar time bigint ) Table scan (name:varchar) + Output Exchange Sink Final aggregation Exchange Sink Partial aggregation Table scan Logical query plan Distributed query plan
  • 48. Query Planner - Stages inter-worker data transfer pipelined aggregation Copyright ©2014 Treasure Data. All Rights Reserved. Output Exchange Sink Final aggregation Exchange Sink Partial aggregation Table scan inter-worker data transfer Stage-0 Stage-1 Stage-2
  • 49. Copyright ©2014 Treasure Data. All Rights Reserved. Output Exchange Sink Partial aggregation Table scan Sink Partial aggregation Table scan Execution Planner • StageをTaskに分割して並列度を上げる + Node list ✓ 2 workers Sink Final aggregation Exchange Sink Final aggregation Exchange Output Exchange Sink Final aggregation Exchange Sink Partial aggregation Table scan Worker 1 Worker 2
  • 50. Execution Planner - Split • 各TaskにはSplitが割り当てられ、並列に実行される 1 split / task = 1 thread / worker Copyright ©2014 Treasure Data. All Rights Reserved. Sink Final aggregation Exchange Sink Partial aggregation Table scan Sink Final aggregation Exchange Sink Partial aggregation Table scan Output Exchange Split many splits / task = many threads / worker (table scan) Worker 1 Worker 2 1 split / worker = 1 thread / worker
  • 51. Presto: Web Monitor • TPC-H Q5 Copyright ©2014 Treasure Data. All Rights Reserved. 51 1053
  • 52. Prestoの運用 • クエリの実行履歴 – TDに保存してPrestoで利用状況を管理 • Presto coordinator/worker – JMX Beanやクエリの状態をJSON形式で取得できる • Presto-metrics – Rubyからprestoの各種パラメータを取得するライブラリ – https://github.com/xerial/presto-metrics – メモリ使用量、タスク実行量、エラーコード取得など – presto-metrics + Fluentdで常にPrestoの状態を監視 • Librato Metricsで集約+可視化 Copyright ©2014 Treasure Data. All Rights Reserved. 52
  • 53. Fluentdによるサービスのモニタリング Copyright ©2014 Treasure Data. All Rights Reserved. 53 Hive Presto
  • 54. Librato MetricsによるPrestoサービスの監視 Copyright ©2014 Treasure Data. All Rights Reserved. 54
  • 55. TD: Scheduled Query • 定期的にTDでクエリを実 行 • Prestoクエリの集計にも Prestoを使っている Copyright ©2014 Treasure Data. All Rights Reserved. 55
  • 56. td-prestoコネクタ • Storage – PlazmaDB – S3, Riak CS (S3とAPI互換)へのアクセス • TableScan operator – バックグラウンドで先にI/Oリクエストを発行(プリフェッチ) – msgpack-java v07 • v06に比べて2倍以上高速化 – レコード単位ではなく、ページ単位での処理 • Presto 0.69より Copyright ©2014 Treasure Data. All Rights Reserved. 56
  • 57. トレジャーデータが目指すもの • 「世の中の誰もが手軽にデータベースを使える」ようにする • まずは誰もが「データを手軽に正しく集められる」ように – Fluentd+msgpackで柔軟にデータを取り込む – plazmadbによる圧縮、スキャンの最適化 Copyright ©2014 Treasure Data. All Rights Reserved. • 「Presto」 – Hiveの穴を埋める分散SQLエンジン – データを手軽にすばやく解析 WE ARE HIRING! 57