SlideShare a Scribd company logo
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 
• 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

More Related Content

What's hot

平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、Databricksでもやってみましょうか平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、Databricksでもやってみましょうか
Ryuichi Tokugami
 
S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話
Noritaka Sekiyama
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
Yuki Gonda
 
Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)
NTT DATA OSS Professional Services
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
NTT DATA Technology & Innovation
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
NTT DATA Technology & Innovation
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
Seiya Mizuno
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
日本ヒューレット・パッカード株式会社
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
Ken SASAKI
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
Yahoo!デベロッパーネットワーク
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
 
Yahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo! JAPANにおけるApache Cassandraへの取り組みYahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo!デベロッパーネットワーク
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法
Amazon Web Services Japan
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
 

What's hot (20)

平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、Databricksでもやってみましょうか平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、Databricksでもやってみましょうか
 
S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 
Yahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo! JAPANにおけるApache Cassandraへの取り組みYahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo! JAPANにおけるApache Cassandraへの取り組み
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 

Similar to Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo

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
MapR Technologies Japan
 
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
Taro L. Saito
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
Treasure Data Intro for Data Enthusiast!!
Treasure Data Intro for Data Enthusiast!!Treasure Data Intro for Data Enthusiast!!
Treasure Data Intro for Data Enthusiast!!Takahiro Inoue
 
トレジャーデータ新サービス発表 2013/12/9
トレジャーデータ新サービス発表 2013/12/9トレジャーデータ新サービス発表 2013/12/9
トレジャーデータ新サービス発表 2013/12/9
Treasure Data, Inc.
 
クラウド概要 by Engine Yard
クラウド概要 by Engine Yardクラウド概要 by Engine Yard
クラウド概要 by Engine Yard
Yu Kitazume
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
 
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
Amazon Web Services Japan
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
トレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解するトレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解する
Takahiro Inoue
 
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
DataWorks Summit
 
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
DataWorks Summit
 
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)Takahiro Inoue
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
Ryoma Nagata
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
充博 大崎
 
クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートクラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタート
Yukihito Kataoka
 
[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform
Naoki (Neo) SATO
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
Dai Utsui
 

Similar to Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo (20)

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
 
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
Treasure Data Intro for Data Enthusiast!!
Treasure Data Intro for Data Enthusiast!!Treasure Data Intro for Data Enthusiast!!
Treasure Data Intro for Data Enthusiast!!
 
トレジャーデータ新サービス発表 2013/12/9
トレジャーデータ新サービス発表 2013/12/9トレジャーデータ新サービス発表 2013/12/9
トレジャーデータ新サービス発表 2013/12/9
 
クラウド概要 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
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
トレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解するトレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解する
 
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
 
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
 
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)トレジャーデータ株式会社について(for all Data_Enthusiast!!)
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
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
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 

More from Treasure Data, Inc.

GDPR: A Practical Guide for Marketers
GDPR: A Practical Guide for MarketersGDPR: A Practical Guide for Marketers
GDPR: A Practical Guide for Marketers
Treasure Data, Inc.
 
AR and VR by the Numbers: A Data First Approach to the Technology and Market
AR and VR by the Numbers: A Data First Approach to the Technology and MarketAR and VR by the Numbers: A Data First Approach to the Technology and Market
AR and VR by the Numbers: A Data First Approach to the Technology and Market
Treasure Data, Inc.
 
Introduction to Customer Data Platforms
Introduction to Customer Data PlatformsIntroduction to Customer Data Platforms
Introduction to Customer Data Platforms
Treasure Data, Inc.
 
Hands On: Javascript SDK
Hands On: Javascript SDKHands On: Javascript SDK
Hands On: Javascript SDK
Treasure Data, Inc.
 
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD WorkflowHands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Treasure Data, Inc.
 
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Brand Analytics Management: Measuring CLV Across Platforms, Devices and AppsBrand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Treasure Data, Inc.
 
How to Power Your Customer Experience with Data
How to Power Your Customer Experience with DataHow to Power Your Customer Experience with Data
How to Power Your Customer Experience with Data
Treasure Data, Inc.
 
Why Your VR Game is Virtually Useless Without Data
Why Your VR Game is Virtually Useless Without DataWhy Your VR Game is Virtually Useless Without Data
Why Your VR Game is Virtually Useless Without Data
Treasure Data, Inc.
 
Connecting the Customer Data Dots
Connecting the Customer Data DotsConnecting the Customer Data Dots
Connecting the Customer Data Dots
Treasure Data, Inc.
 
Harnessing Data for Better Customer Experience and Company Success
Harnessing Data for Better Customer Experience and Company SuccessHarnessing Data for Better Customer Experience and Company Success
Harnessing Data for Better Customer Experience and Company Success
Treasure Data, Inc.
 
Packaging Ecosystems -Monki Gras 2017
Packaging Ecosystems -Monki Gras 2017Packaging Ecosystems -Monki Gras 2017
Packaging Ecosystems -Monki Gras 2017
Treasure Data, Inc.
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
Treasure Data, Inc.
 
Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14
Treasure Data, Inc.
 
Introduction to New features and Use cases of Hivemall
Introduction to New features and Use cases of HivemallIntroduction to New features and Use cases of Hivemall
Introduction to New features and Use cases of Hivemall
Treasure Data, Inc.
 
Scalable Hadoop in the cloud
Scalable Hadoop in the cloudScalable Hadoop in the cloud
Scalable Hadoop in the cloud
Treasure Data, Inc.
 
Using Embulk at Treasure Data
Using Embulk at Treasure DataUsing Embulk at Treasure Data
Using Embulk at Treasure Data
Treasure Data, Inc.
 
Scaling to Infinity - Open Source meets Big Data
Scaling to Infinity - Open Source meets Big DataScaling to Infinity - Open Source meets Big Data
Scaling to Infinity - Open Source meets Big Data
Treasure Data, Inc.
 
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
Treasure Data:  Move your data from MySQL to Redshift with (not much more tha...Treasure Data:  Move your data from MySQL to Redshift with (not much more tha...
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
Treasure Data, Inc.
 
Treasure Data From MySQL to Redshift
Treasure Data  From MySQL to RedshiftTreasure Data  From MySQL to Redshift
Treasure Data From MySQL to Redshift
Treasure Data, Inc.
 
Unifying Events and Logs into the Cloud
Unifying Events and Logs into the CloudUnifying Events and Logs into the Cloud
Unifying Events and Logs into the Cloud
Treasure Data, Inc.
 

More from Treasure Data, Inc. (20)

GDPR: A Practical Guide for Marketers
GDPR: A Practical Guide for MarketersGDPR: A Practical Guide for Marketers
GDPR: A Practical Guide for Marketers
 
AR and VR by the Numbers: A Data First Approach to the Technology and Market
AR and VR by the Numbers: A Data First Approach to the Technology and MarketAR and VR by the Numbers: A Data First Approach to the Technology and Market
AR and VR by the Numbers: A Data First Approach to the Technology and Market
 
Introduction to Customer Data Platforms
Introduction to Customer Data PlatformsIntroduction to Customer Data Platforms
Introduction to Customer Data Platforms
 
Hands On: Javascript SDK
Hands On: Javascript SDKHands On: Javascript SDK
Hands On: Javascript SDK
 
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD WorkflowHands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
 
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Brand Analytics Management: Measuring CLV Across Platforms, Devices and AppsBrand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
 
How to Power Your Customer Experience with Data
How to Power Your Customer Experience with DataHow to Power Your Customer Experience with Data
How to Power Your Customer Experience with Data
 
Why Your VR Game is Virtually Useless Without Data
Why Your VR Game is Virtually Useless Without DataWhy Your VR Game is Virtually Useless Without Data
Why Your VR Game is Virtually Useless Without Data
 
Connecting the Customer Data Dots
Connecting the Customer Data DotsConnecting the Customer Data Dots
Connecting the Customer Data Dots
 
Harnessing Data for Better Customer Experience and Company Success
Harnessing Data for Better Customer Experience and Company SuccessHarnessing Data for Better Customer Experience and Company Success
Harnessing Data for Better Customer Experience and Company Success
 
Packaging Ecosystems -Monki Gras 2017
Packaging Ecosystems -Monki Gras 2017Packaging Ecosystems -Monki Gras 2017
Packaging Ecosystems -Monki Gras 2017
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
 
Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14
 
Introduction to New features and Use cases of Hivemall
Introduction to New features and Use cases of HivemallIntroduction to New features and Use cases of Hivemall
Introduction to New features and Use cases of Hivemall
 
Scalable Hadoop in the cloud
Scalable Hadoop in the cloudScalable Hadoop in the cloud
Scalable Hadoop in the cloud
 
Using Embulk at Treasure Data
Using Embulk at Treasure DataUsing Embulk at Treasure Data
Using Embulk at Treasure Data
 
Scaling to Infinity - Open Source meets Big Data
Scaling to Infinity - Open Source meets Big DataScaling to Infinity - Open Source meets Big Data
Scaling to Infinity - Open Source meets Big Data
 
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
Treasure Data:  Move your data from MySQL to Redshift with (not much more tha...Treasure Data:  Move your data from MySQL to Redshift with (not much more tha...
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
 
Treasure Data From MySQL to Redshift
Treasure Data  From MySQL to RedshiftTreasure Data  From MySQL to Redshift
Treasure Data From MySQL to Redshift
 
Unifying Events and Logs into the Cloud
Unifying Events and Logs into the CloudUnifying Events and Logs into the Cloud
Unifying Events and Logs into the Cloud
 

Recently uploaded

人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
Kurata Takeshi
 
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
Yuuitirou528 default
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Toru Miyahara
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
K Kinzal
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
Masatsugu Matsushita
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
Toru Miyahara
 

Recently uploaded (8)

人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 

Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo

  • 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 • 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

Editor's Notes

  1. トレジャーデータがデータベースの企業として成長するお手伝いをしています
  2. 3~4週間に1回 新しいversionがリリースされるくらい開発速度が速い。 TDのcontributionは現在Facebookに次いで2位 UDF機能の追加、TD_TIME_FORMAT, TD_TIME_RANGEなど
  3. Treasure Dataでは2種類のSQL Engineを提供 Hive バッチクエリ:スループット重視 日に数千~数万件以上のクエリを処理するなど 時間はかかるが大量データ処理を確実に処理する 耐障害性 CPU使用効率が悪い(1 map/reduce task = 1 core) Presto アドホッククエリ:レスポンスタイム重視 数秒〜数分でクエリの結果を知りたい場合 耐障害性なし TDでは独自にリトライ機構を導入 CPU使用効率が良い 相互に補完しあう関係
  4. ではHadoopを使った良くあるデータ解析システムの問題を、図を使って具体的に見てみます。 可視化ツールが直接Hiveクエリを投げる使い方は、遅すぎてストレスフルなので、Hiveが定期的にクエリを実行し、中間的なDBに結果を書き出し、BIツールなどから可視化する。この中間DBはデータマートと呼ばれたりします。しかし…
  5. そこがスケールしない。あるいは余計にコストがかかる。 BIツールやDashboardが生のデータに直接投げられないとなると、こっちの解析チームからすると、インフラチームに頼んで、必要なデータをデータマート上に作るバッチジョブを実行しておいてね、みたいな話が起きてきます。インフラチームはさらに、実はOracleに入っているで他をHDFSに定期的にコピーするスケジュールを作ったりしないと行けない。 インフラ側の問題としても、性格の異なる2つのプラットフォームを維持し続けるには、異なる知識が必要です。このプラットフォームを維持すること自体のコストが高い。
  6. これが、Prestoがあると解決します。 DashboardやBIツールは、Prestoを使ってHDFS上にあるデータにクエリを実行できるようになります。このため、中間的なデータマートをHDFSに作れます。従って、中間データベースに割くコストは削減できます。 さらに、すべてHDFSという単一のプラットフォームに載っているので、インフラの維持が大幅に楽になります。
  7. さらに、PrestoはHDFS以外のデータストアからデータを読み出すことができます。データをHDFS上に持ってこなくても、データをJOINして可視化したりできます。そもそも、HDFSを使わないという選択肢も出てきますね。例えばCassandraをデータ解析のプライマリストレージに使う選択肢もアリです。 実はプラグイン構造なので、商用DBや、自社専用のストレージエンジンにもクエリを実行できます。
  8. さらに、PrestoはHDFS以外のデータストアからデータを読み出すことができます。データをHDFS上に持ってこなくても、データをJOINして可視化したりできます。そもそも、HDFSを使わないという選択肢も出てきますね。例えばCassandraをデータ解析のプライマリストレージに使う選択肢もアリです。 実はプラグイン構造なので、商用DBや、自社専用のストレージエンジンにもクエリを実行できます。
  9. 毎日200億レコード、数TB
  10. online to offline
  11. さらに、Prestoは商用BIツールと安定して接続が可能です。これがなぜ可能かと言う秘密は後ほど紹介します。 以上のデータ解析プラットフォームを、Prestoをハブとして構築できる。これがPrestoの大きな導入メリットです。
  12. で、考えた方法ですが、PostgreSQLプロトコルを使えばいいじゃない。 PostgreSQLのプロトコルを話すのだけど、裏側ではPrestoのクエリを実行する。これなら、PostgreSQLの安定した実績のあるODBCドライバを使えますね。 そこで、これ僕が作ったんですが、Prestogresというゲートウェイサーバを作りました。
  13. どういう仕組みで動いているかというと、pgpool-IIという既存のミドルウェアを改造しました。 pgpool-IIは、元々はPostgreSQL用のロードバランサ兼コネクションプールの実装です。そこにクエリを書き換える機能を入れたんですね。どいう書き換えるかというと、受け取ったSELECT文を、関数の引数の中に入れます。それをPostgreSQLで実行すると、PostgreSQL的には普通の関数を実行しているのと同じように見えます。 その関数は、僕が自作した関数で、Prestoにクエリを投げて結果を返す関数なんです。
  14. これがPrestoのアーキテクチャ図です。1つずつ解説していきます。
  15. まずPrestoには、3種類のサーバがあります:Coordinator、Worker、Discovery Service。 Discover Serviceは、このネットワークにどんなサーバがいるか、という情報を持っていて、coordinatorやworkerはDiscovery Serviceを経由して他のノードを見つけ出します。
  16. クエリを実行するときは、まずクライアントがCoordinatorにSQLクエリを発行します。 ここのプロトコルはHTTPです。POSTで送ります。
  17. それから、Coordinatorがクエリの実行計画を立てます。 このときに、CoordinatorがConnector pluginというライブラリを経由して、テーブル一覧やスキーマを取得してきます。
  18. 実行計画ができたら、Coordinatorはその実行タスクをWorkerに割り振ります。これで分散実行が始まります。
  19. クエリが始まったら、WorkerはConnector pluginというライブラリを経由して、ストレージから行をどんどん読み出していきます。
  20. Workerはデータを読み出しつつ相互に通信して、クエリを実行していきます。この実行は全部メモリ上で行われます。途中結果をディスクに書き出したりはしません。全部パイプライン化されています。
  21. 結果ができあがってきたら、クライアントがworkerから結果を取得します。
  22. 全体図です。Discovery serviceがサーバの発見を行います。Coordinatorがクライアントからクエリを受け取り、実行計画を立てて、Workerにタスクを割り当てます。Workerはクエリを実行します。 テーブル一覧の取得や、データの読み出しは、Connector pluginと呼ばれるライブラリを経由して行われます。
  23. まずQuery Plannerです。Query Plannerは、クライアントから受け取ったSQL文と、Hiveメタストア、つまりコネクタから取得したテーブルスキーマを元に、論理クエリプランを組み立てます。さらにそこから分散クエリプランを組み立てます。 例えば、このselect文では、partial aggregation、final aggregation、outputの3つのステージからなる分散クエリプランが出来上がります。
  24. ここで重要なのは、SinkとExchangeです。 Exchangeは、他のworkerからデータをもらってきます。Sinkは、他のworkerにデータを受け渡します。このクエリだと、2回のデータ通信が発生します。 SinkとExchangeのペアで区切られた部分をStageと呼びます。つまりこのクエリは、3ステージからなる分散クエリになっています。 アグリゲーションは、複数のステージに分けて実行されます。
  25. こうして作られたクエリプランは、Execution Plannerに渡されます。 Execution Plannerは、Node Managerからworkerの一覧を受け取り、実行計画を立てます。 分散実行可能なステージをworkerの台数分、または設定された数だけ分割して、タスクとします。 例えば2台のworkerが存在するとすれば、1ステージ2タスクになります。
  26. タスクは、1つか複数のsplitを持っています。 テーブルスキャンを含むタスクは複数のsplit、その他のタスクは1つのsplitです。このsplitが、スレッドに割り当てられて実際に実行されます。つまり、1ステージごとに、1workerごとに1タスクずつ割り当てられ、そのworkerの中ではsplitがworkerの上で並列実行されるわけです。だいたい掴んでいただけたでしょうか?