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
870
メタデータ管理と生成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
株式会社 Sun terras カンパニーデック
sunterras
0
260
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
24
12k
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
450
CSC509 Lecture 05
javiergs
PRO
0
300
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
390
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
480
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1.1k
複雑化したリポジトリをなんとかした話 pipenvからuvによるモノレポ構成への移行
satoshi256kbyte
1
980
ポスターセッション: 「まっすぐ行って、右!」って言ってラズパイカーを動かしたい 〜生成AI × Raspberry Pi Pico × Gradioの試作メモ〜
komofr
0
1.2k
CSC305 Lecture 02
javiergs
PRO
1
260
チームの境界をブチ抜いていけ
tokai235
0
140
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
170
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Agile that works and the tools we love
rasmusluckow
331
21k
Navigating Team Friction
lara
189
15k
Raft: Consensus for Rubyists
vanstee
139
7.1k
How to Think Like a Performance Engineer
csswizardry
27
2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Scaling GitHub
holman
463
140k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
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!