Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Creating a New Stream Data Pipeline on Google C...
Search
Shu Suzuki
July 19, 2019
Programming
4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Creating a New Stream Data Pipeline on Google Cloud Platform 20190719
大量のログデータを、より効率的に、より柔軟に扱うためのパイプラインをGCP使って作った話
Shu Suzuki
July 19, 2019
More Decks by Shu Suzuki
See All by Shu Suzuki
バフェットコード開発チームの心得(v1.1)
shoe116
0
150
SaaSがこの先生きのこるには #1 オープニング資料
shoe116
0
120
AI時代にデータを売る SaaSの生存戦略を語る
shoe116
2
910
バフェットコード株式会社 開発チームカルチャーデック
shoe116
1
2.3k
Data & Analytics 井戸端会議 #02
shoe116
0
680
Data & Analytics 井戸端会議 #01
shoe116
1
93
財務データを題材に、 ETLとは何であるかを考える
shoe116
9
4.2k
Ruby on Railsで作る銘柄スクリーニング
shoe116
0
1.2k
Creating Stream DataPipeline on GCP Using Apache Beam
shoe116
3
3.1k
Other Decks in Programming
See All in Programming
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
290
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
230
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
370
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
340
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
170
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.8k
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
160
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.6k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Leo the Paperboy
mayatellez
10
2.4k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
620
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Optimising Largest Contentful Paint
csswizardry
37
4k
The Invisible Side of Design
smashingmag
301
52k
Transcript
1 GCPでStreamなデータパイプライン作った {“id”: “@shoe116”, “team”: “Data Platform”}
2 mercariのlog収集の歴史とマイクロサービス化 GCPでStreamなデータパイプライン作った GCPで作ったStreamなデータパイプラインの概要 AvroとDataFlowを使ったETL処理 今日のまとめ 02 03 04 01
3 - Mercari Data Platform - Stream/Batch Pipeline Developer -
Scala, Python, Java, Go, etc - Apache Beam, Kafka, Storm, Hive, Hadoop… Shu Suzuki @shoe116
4 指定された区間(data sources - data sinks)で データパイプライン? 信頼性のあるデータ処理やデータ転送を 安定的に提供する仕組み 2.
3. 1. 今回は「本番環境のlogを、DWH等の分析環境に届ける」ことを 主眼にしたデータパイプラインについて話します。
5 Mercariのlog収集の歴史と マイクロサービス化
6 既存のlog収集の仕組み モノリスのWebアプリケーションのlogをfluentdで伝搬しbatch処理
7 マイクロサービスのアーキテクチャ データパイプライン的に言うと、data-sourceが不特定多数になる ??
8 GCPで作った Streamなデータパイプラインの概要
9 メッセージ志向ミドルウェア(G製Kafka) 使っているGCPのサービス Beamで記述できる処理エンジン(G製Flink) Cloud Dataflow Cloud Pub/Sub Cloud Storage
マルチリージョナルなオブジェクトストレージ BigQuery 大量データ向けのG製DWH、GCSからも読める。
10 新しい Stream データパイプライン 各MSのRamp TopicからDataHubへ集約、GCSとBigQueryへStore
11 各MSごとに設けられたデータの投入口 各Cloud Pub/SubのTopicの役割 Rampsのデータを1つのTopicに集約したTopic Raw DataHub Ramps 構造化されたSchema付きAvroが流れるTopic Structured
DataHub
12 Raw DataHubのデータを出力するGCS bucket 各データストアの役割 Structurd Datahubのデータを出力するGCS bucket Structured DataLake
Raw DataLake Structured DataHubのデータを出力するBig Query DWH
13 AvroとDataflowを使ったETL処理
14 DataHub Avro format {"type": "record", "name": "DataHubAvro", "namespace": "com.mercari.data.model.v3",
"fields": [{ {"name": "uuid", "type": "string"}, {"name": "timestamp", "type": { "type": "long", "logicalType": "timestamp-micros" }}, {"name": "topic_name", "type": "string"}, {"name": "service_name", "type": "string"}, {"name": "log_name", "type": "string"}, {"name": "content_type", "type": ["null", "string"], "default": null}, {"name": "user_agent", "type": ["null", "string"], "default": null}, {"name": "payload","type": "bytes"} ]} } パイプラインの共通フォーマット Avroを採用した理由 - AvroはそのままGCSに書ける - AvroはそのままBQに書ける - Avro fileはBQから直接読める DataHub Avro に含まれるもの - パイプラインのdestination - Schemaの引き当て情報 - データ本体
15 Map処理でRampsからデータを読む Ramps -> Raw DataHubのETL 共通のDataHub Avro formatに変換 全レコードをRaw
DataHubにwrite T L E
16 Raw DataHubからデータを読む Raw DataHub -> Structured DataHub のETL DataHub
Avroのpayloadのbyte[]を、 構造化されたAvroに変換する T L E 全レコードをStructured DataHubにwrite
17 サービスのMS化に伴いパイプラインも進化が求められる 今日のまとめ 不特定多数のdata sourceを想定して設計、開発中 Google Cloud Pratformの各サービスとAvroを利用 We are
hiring! 02 03 04 01 https://mercari.workable.com/jobs/765272