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
1
9.2k
Cloud-Nativeなデータ分析基盤におけるPrestoの活用 / Cloud-Native Data Infrastructure with Presto
Hadoop / Spark Conference Japan 2019で話した資料です。
http://hadoop.apache.jp/hcj2019-program/
satoshihirose
March 14, 2019
Tweet
Share
More Decks by satoshihirose
See All by satoshihirose
生成AIで実現するText-to-SQL入門
satoshihirose
5
860
メタデータ管理と生成AI ~ COMETAのこれまでとこれから ~
satoshihirose
0
130
顧客に価値を届け続けられる プロダクトであるために ~B2B SaaSにおいてプロダクトビジョン・戦略を改めて 策定するまでの道のり~
satoshihirose
2
920
Data Product Manager? / データプロダクトマネージャーとは?
satoshihirose
3
29k
Overview of The Modern Data Stack / モダンデータスタック概論
satoshihirose
12
8.6k
Data Engineering at SmartNews
satoshihirose
4
3.2k
Other Decks in Programming
See All in Programming
CSC305 Lecture 04
javiergs
PRO
0
230
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.5k
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
190
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
450
Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
giginet
PRO
0
1.6k
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
880
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
2.8k
CSC305 Lecture 02
javiergs
PRO
1
260
Serena MCPのすすめ
wadakatu
4
860
ソフトウェア設計の実践的な考え方
masuda220
PRO
3
380
実践AIチャットボットUI実装入門
syumai
7
2.4k
2025年版 サーバーレス Web アプリケーションの作り方
hayatow
23
25k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Gamification - CAS2011
davidbonilla
81
5.5k
Being A Developer After 40
akosma
91
590k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
How to train your dragon (web standard)
notwaldorf
96
6.3k
Automating Front-end Workflow
addyosmani
1371
200k
Designing for Performance
lara
610
69k
The Language of Interfaces
destraynor
162
25k
Statistics for Hackers
jakevdp
799
220k
The Invisible Side of Design
smashingmag
301
51k
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!