Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloud-Nativeなデータ分析基盤におけるPrestoの活用 / Cloud-Nati...
Search
satoshihirose
March 14, 2019
Programming
9.5k
1
Share
Cloud-Nativeなデータ分析基盤におけるPrestoの活用 / Cloud-Native Data Infrastructure with Presto
Hadoop / Spark Conference Japan 2019で話した資料です。
http://hadoop.apache.jp/hcj2019-program/
satoshihirose
March 14, 2019
More Decks by satoshihirose
See All by satoshihirose
生成AIで実現するText-to-SQL入門
satoshihirose
5
1.2k
メタデータ管理と生成AI ~ COMETAのこれまでとこれから ~
satoshihirose
0
160
顧客に価値を届け続けられる プロダクトであるために ~B2B SaaSにおいてプロダクトビジョン・戦略を改めて 策定するまでの道のり~
satoshihirose
2
990
Data Product Manager? / データプロダクトマネージャーとは?
satoshihirose
4
31k
Overview of The Modern Data Stack / モダンデータスタック概論
satoshihirose
12
9k
Data Engineering at SmartNews
satoshihirose
4
3.3k
Other Decks in Programming
See All in Programming
Feature Toggle は捨てやすく使おう
gennei
0
390
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
260
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
110
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
450
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
250
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
290
Coding as Prompting Since 2025
ragingwind
0
580
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
730
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
490
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
130
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2.2k
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
260
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
500
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
190
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The Spectacular Lies of Maps
axbom
PRO
1
670
Transcript
2019-03-14 Data Engineer, SmartNews Inc 廣瀬 智史 Cloud-Nativeなデータ分析基盤 におけるPrestoの活用 Hadoop
/ Spark Conference Japan 2019
None
None
None
データの活用(データ分析、機械学習) 例: ニュース(記事+動画)配信 • 記事+動画のカテゴライズ • フィードにおけるレコメンド 例: 広告配信 •
様々な配信最適化 例: データサイエンス • 経営指標の計算や予測
• 当時の構成 ◦ MapReduce(mrjob) + MongoDB • 課題 ◦ 集計処理が必要になるたびに
MapReduce処理を追加する必要が あった ◦ 見たいデータを追加するたびに可視 化のためのウェブアプリを修正する必 要があった ◦ データを気軽に分析できる環境では なかった 2014年当時のSmartNewsデータ基盤の構成と課題 in-house visualization web application
Hadoop Conference in Japan 2014 • Facebookが公開したSQL Query Engine •
大規模データセットに対してもイ ンタラクティブなレスポンスを返 す • Presto自身はデータストレージ を持っていない • 複数のデータソース(Hive, Cassandra, MySQL, etc…)に 対して一度に集計を実行するこ とができる https://tug.red/entry/2014/07/10/150250/
Presto/Hiveの導入 • 変更後の構成 ◦ S3 + Presto + Hive •
コンセプト ◦ ETLバッチ処理はHive, リアルタイム データ集計はPresto ◦ ストレージとコンピューテーションリソー スを分離 ◦ SQLを書ければ誰でもデータ分析がで きるようにする BI Tools, CLI, Data Application
EMR+S3によるCloud-Nativeなデータ分析基盤 [メリット] • Less Maintenance: マネージドサービスを 活用することで運用を少なく • Elasticity: long
runningなHadoopクラスタ の他にも、必要に応じてtransientなHadoop クラスタを活用できる。ワークロードに応じて クラスターの規模を増減できる • DevOps: 用途やチームに応じてクラスター を使い分けることで、依存性が局所化され、 チームがownershipを持てる 広告配信 チーム Hive MetaStore multi EMR clusters S3 Buckets ニュース配信 チーム multi EMR clusters S3 Buckets Hive MetaStore
EMR+S3によるCloud-Nativeなデータ分析基盤 [デメリット] • マルチクラスター化によって複数のHive MetaStore Databaseにデータが分散してし まい、それらを跨いだ集計処理が難しくなる 広告配信 チーム Hive
MetaStore multi EMR clusters S3 Buckets ニュース配信 チーム multi EMR clusters S3 Buckets Hive MetaStore
• データが分散して存在しまう状況への 対応 ◦ Prestoをインターフェイスにするこ とで複数のデータソースにまた がった集計が可能に other Applications CLI
Hive(Ads) Hive(News) other databases PrestoによるData Aggregation BI Tool
• EMRを使うのではなく、EC2上にクラス ターを構築している • 負荷状況によりworkerをオートスケール させ、利用状況の増減に対応している • 利用用途により、複数のクラスターが存 在する ◦
一部では今年2月にリリースされた version 302を使い始めている Prestoの活用(1)
• defaultのPrestoには存在しないコネクターの追加や、独自のファンクション の追加を行なっている ◦ 例: Kinesis connector ◦ 例: fast
JSON extraction function ◦ 例: AWS function ▪ ddb_get() Prestoの活用(2) Table Name
• PrestoやHiveのバージョンアップに追従する仕組みの整備 ◦ 検証環境の整備など • 監視の強化 ◦ 問題のあるクエリの実行検知 ◦ ETL処理結果のvalidation
◦ SLI/SLOの設定 • データフォーマットや設定の最適化 ◦ RCFile から ORC への移行など • Streaming Processingの拡充 SmartNewsデータ分析基盤の課題と今後
Presto Software Foundationの設立 • 2019年1月にPrestoの開発コミュニ ティをサポートするためStarburst Data, Arm Treasure Data,
Qubole などのengineerにより設立 • 今後はこれまでのprestodb/presto (2019/3時点最新バージョンが 0.217)がprestosql/presto(2019/3時 点最新バージョンが305)に分岐し、開 発が進んでいく
まとめ • SmartNewsでは、EMRとS3を使用したCloud-Nativeなデータ処理基盤を、 Hive/Prestoを活用することで実現している • Hiveを中心としたETL処理により、エンジニア以外もロジックの実装に参加で きるようになった • Prestoを活用することで、社内の様々なデータをSQLによって集計し、分析 できるようになった
• transientなクラスターを活用するなど、メンテナンスコストを下げることを意識 し、それぞれのチームごとのOwnershipを持って開発を進めることができる
Thank you!