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.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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.3k
メタデータ管理と生成AI ~ COMETAのこれまでとこれから ~
satoshihirose
0
180
顧客に価値を届け続けられる プロダクトであるために ~B2B SaaSにおいてプロダクトビジョン・戦略を改めて 策定するまでの道のり~
satoshihirose
2
1k
Data Product Manager? / データプロダクトマネージャーとは?
satoshihirose
4
32k
Overview of The Modern Data Stack / モダンデータスタック概論
satoshihirose
12
9.1k
Data Engineering at SmartNews
satoshihirose
4
3.3k
Other Decks in Programming
See All in Programming
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
460
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.9k
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
210
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
530
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
220
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
130
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.7k
1B+ /day規模のログを管理する技術
broadleaf
0
140
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
650
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
310
Facilitating Awesome Meetings
lara
57
7k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
190
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
290
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Side Projects
sachag
455
43k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Curious Case for Waylosing
cassininazir
1
430
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
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!