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
不動産情報サイトにおけるリアルタイムデータ分析基盤の活用
Search
Red Frasco
December 07, 2023
Technology
1
160
不動産情報サイトにおけるリアルタイムデータ分析基盤の活用
2023/12/07 に開催された Jagu'e'r(Japan Google Cloud Usergroup for Enterprise)データ利活用分科会 LT 大会の登壇資料です。
Red Frasco
December 07, 2023
Tweet
Share
More Decks by Red Frasco
See All by Red Frasco
バッチ処理が終わらない!? -処理時間を90%削減した話-
red_frasco
1
140
不動産情報サイトにおけるデータ収集で頑張ったこと
red_frasco
0
170
コストに関するヒヤリハットのお話 ~コスト超過で手遅れにならないためにすべきこと~
red_frasco
0
260
Spring Boot 2 から 3 へバージョンアップしてみた
red_frasco
4
13k
チーム一丸となって信頼性向上! 多種多様な監視でサイトを守る取り組みの紹介
red_frasco
1
1.2k
Red Frasco 会社紹介
red_frasco
3
11k
AWS環境におけるSpring BootアプリケーションのCI/CDをCircleCIで構築した話
red_frasco
2
520
Feature 環境の自動生成と Blue Green Deployment で効率的かつ安全なリリースプロセスを構築
red_frasco
1
290
AWS Batch × Spring Batch でクラウド最適なバッチを構築した話
red_frasco
1
1.2k
Other Decks in Technology
See All in Technology
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
kenichirokimura
0
140
夏休みの(最後の)宿題 for JuliaTokyo #12
antimon2
0
130
Staff Engineer / 20240827 Yuichiro Masui
shift_evolve
0
150
歴史と背景から改めて振り返るVPC
shotashiratori
2
220
AI でアップデートする既存テクノロジーと、クラウドエンジニアの生きる道
soracom
PRO
1
190
「名前解決」から振り返るAmazon VPC
yuki_ink
0
320
HolidayJp.jl を作りました
mrkn
0
110
RAGHack: Building RAG apps in Python
pamelafox
0
110
標準最高!標準はださくないぞ! at fukuoka.ts #1
yoiwamoto
0
150
データウェアハウス製品のSnowflakeでPythonが動くって知ってました?
foursue
1
150
Namespace, Now and Then
tagomoris
0
170
エンジニアリングマネージャーが紐解く、事業視点から組織文化まで、包括的アプローチの探求 / READYFOR
9ma3r
14
2.2k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Mobile First: as difficult as doing things right
swwweet
220
8.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
47k
Happy Clients
brianwarren
96
6.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
22
580
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
27
8.9k
Designing the Hi-DPI Web
ddemaree
278
34k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
Documentation Writing (for coders)
carmenintech
65
4.3k
Making Projects Easy
brettharned
113
5.8k
How to Think Like a Performance Engineer
csswizardry
15
920
Transcript
ෆಈ࢈ใαΠτʹ͓͚Δ ϦΞϧλΠϜσʔλੳج൫ͷ׆༻ Jagu'e'r データ利活⽤分科会 LT⼤会 2023.12.07
⽬次 1. ⾃⼰紹介/弊社紹介 2. 本⽇話すこと/話さないこと 3. なぜリアルタイムデータが必要なのか 4. 分析基盤のシステム構成 5.
リアルタイムデータの活⽤⽅法 6. その他
⾃⼰紹介 杉⼭ 隆(Takashi Sugiyama) 3 • 所属 • 株式会社Red Frasco
• 職種 • データエンジニア/MLエンジニア • 技術 • Google Cloud, Python, Golang • よく使うGCPサービス • Cloud Composer, Dataflow, Dataproc, BigQuery, ...
株式会社Red Frasco • https://www.red-frasco.com/ • 不動産業界に特化したプロダクト開発・集客⽀援を実施 • 今回はとある 賃貸不動産情報サイトのデータ分析基盤 のお話
4
本⽇話すこと/話さないこと • 話すこと • データ分析基盤内のリアルタイムデータについて • ⽬的、取得⽅法、活⽤⽅法・・・等 • 話さないこと •
データ分析基盤のその他の仕組み • データパイプライン、DWH、BI・・・等 5
なぜリアルタイムデータが必要なのか(1/2) • 賃貸不動産情報サイトにおけるユーザーの⾏動パターン • ほとんどのユーザは初回訪問でコンバージョン(Web での問い合わせ 等)する • そのためセッション内での訴求が重要となり、⾏動ログ等のユーザ データをリアルタイムで取得、さらにセッション内の⾏動を計測でき
るようにすることが望まれる 6
なぜリアルタイムデータが必要なのか(2/2) • Google アナリティクスでは要件を満たせなかった • BigQuery Export 機能 • エクスポートされるタイミングが遅い(要件定義時は翌⽇午後)
• 最近早くなってきた(翌⽇早朝)が、それでも要件を満たしていない • ストリーミングエクスポート機能 • 翌⽇以降にエクスポートされたレコードと⽐較すると、2〜3割程度のレコード⽋ 損がある︖(※今回の対象サイトだけかもしれません。ご参考まで。) • 将来的には GA からリアルタイムデータへの移⾏を検討 • UA → GA4 の移⾏に伴う作業が⼤変だった・・・ 7
分析基盤のシステム構成(1/6) 全体構成 8
分析基盤のシステム構成(2/6) 本⽇話す内容はここ︕ 9
分析基盤のシステム構成(3/6) 拡⼤ + 開発中の機能も表⽰ 10
分析基盤のシステム構成(4/6) • ログを取得する仕組みは API で提供 • アプリケーション側に極⼒⼿が⼊らないように • 開発チームとの分離 •
バックエンドは Cloud Run で構築 • 運⽤が楽︕ 11
分析基盤のシステム構成(5/6) • ログの保存先は2つ • Cloud Run → Bigtable • ログをすぐに利⽤したい場合の保存先
• 過去2⽇分を保存 • Cloud Run → Pub/Sub → Dataflow → BigQuery • 通常利⽤の保存先 • 過去分全てを保存 12
分析基盤のシステム構成(6/6) • 当初は Bigtable ではなく Firestore を利⽤していたが 書き込みエラーが多く出たため変更 • エラー原因は結局分からず・・・
• 「500/50/5」ルールはきちんと守っていた・・・はず・・・ 13
リアルタイムデータの活⽤⽅法 • レコメンド機能 • ユーザーの⾏動ログを基にした User-to-Item レコメンド • 直近(同⼀セッション内)の⾏動ログを特徴量として使⽤ •
鋭意開発中︕ 14
その他 • その他の機能も機会があれば話させてください︕ もしくは懇親会で︕ • Embedding を使⽤した Item-to-Item レコメンド •
Cloud Composer のノウハウ • Redash on GKE・・・等 15
Thanks for listening!