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
ikeda-masashi
November 15, 2022
Technology
1
3.5k
「北欧、暮らしの道具店」のデータ基盤の変遷
https://kurashi.com/news/13050
11/15(火) 19:00 ~
「北欧、暮らしの道具店」データ分析チームのトークセッション vol.2
登壇資料。
ikeda-masashi
November 15, 2022
Tweet
Share
More Decks by ikeda-masashi
See All by ikeda-masashi
Redshiftを中心としたAWSでのデータ基盤
mashiike
0
250
運用の役立たないダッシュボードの作り方。
mashiike
3
1.1k
Amazon Aurora MySQL と Amazon Redshift の Zero-ETL Integration について使い所を考えてみた!
mashiike
0
930
Warningアラートを放置しない!アラート駆動でログやメトリックを自動収集する仕組みによる恩恵
mashiike
6
4.2k
Prepalert ~Mackerelアラートにログや集計値を貼り付けてくれるトイル削減ツール~
mashiike
0
2k
人狼ゲームで考えるデータ基盤 〜データとはいったい・・・〜
mashiike
0
380
『エンタープライズ』という言葉の重さ 〜Data Vault 2.0をやめた2022年冬〜
mashiike
2
5.3k
Redshift ServerlessとProvisioned Cluster のちょっとした違い
mashiike
0
6.6k
小規模ワークロードにおけるRedshift Serverlessのログの取り扱い
mashiike
0
650
Other Decks in Technology
See All in Technology
やる気のない自分との向き合い方/How to Deal with Your Unmotivated Self
sanogemaru
1
520
能登半島地震において デジタルができたこと・できなかったこと
ditccsugii
0
250
Digitization部 紹介資料
sansan33
PRO
1
5.6k
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
890
BI ツールはもういらない?Amazon RedShift & MCP Server で試みる新しいデータ分析アプローチ
cdataj
0
170
AgentCon Accra: Ctrl + Alt + Assist: AI Agents Edition
bethany
0
110
Claude Code Subagents 再入門 ~cc-sddの実装で学んだこと~
gotalab555
10
16k
Claude Codeを駆使した初めてのiOSアプリ開発 ~ゼロから3週間でグローバルハッカソンで入賞するまで~
oikon48
10
4.7k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
データ戦略部門 紹介資料
sansan33
PRO
1
3.8k
Wasmのエコシステムを使った ツール作成方法
askua
0
210
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
Featured
See All Featured
How GitHub (no longer) Works
holman
315
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Writing Fast Ruby
sferik
629
62k
GraphQLとの向き合い方2022年版
quramy
49
14k
How to Ace a Technical Interview
jacobian
280
24k
Why Our Code Smells
bkeepers
PRO
340
57k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Docker and Python
trallard
46
3.6k
Scaling GitHub
holman
463
140k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Transcript
「北欧、暮らしの道具店」のデータ 基盤の変遷 〜データ基盤の変遷は 意思決定のボトルネックとともに〜
自己紹介/会社紹介 池田 将士 (@mashiike) 面白法人カヤック その他事業部 SREチーム所属 データエンジニア/サーバーサイドエンジニア 出身: 千葉県
趣味: オンラインゲームと食べ比べ、飲み比べ 鎌倉が本拠地 Web技術が得意な会社 面白そうな事をやる エンジニアが多い
「北欧、暮らしの道具店」とカヤックの関係 伴走型支援 エンジニアリングリソース 採用ノウハウ etc… カヤックは技術が強みの会社 エンジニアの数がとても多い 「北欧、暮らしの道具店」に技術的に関わっていくパート ナーの立ち位置にいます。 +成功事例
アジェンダ • データ基盤の変遷は??? • 「北欧、暮らしの道具店」のデータ基盤の変遷 ◦ 創世記: ◦ 出MySQL記: ◦
Looker記: ◦ そして未来へ: …
データ基盤の変遷は??? ズバリ。「意思決定のパフォーマンスチューニング」
データ基盤の変遷は??? 何かしらの意思決定で必要な分析に関して • レスポンスタイム (分析が必要になったときに素早く結果を返せる能力 ) • スループット(一定期間に分析できる能力 ) •
安定性(必要なときに分析できる能力 ) • etc… これらに困ったことが起きるとき、データ基盤の変遷は起こる。 ズバリ。「意思決定のパフォーマンスチューニング」
データ基盤の変遷は??? 何かしらの意思決定で必要な分析に関して • レスポンスタイム (分析が必要になったときに素早く結果を返せる能力 ) • スループット(一定期間に分析できる能力 ) •
安定性(必要なときに分析できる能力 ) • etc… これらに困ったことが起きるとき、データ基盤の変遷は起こる。 ズバリ。「意思決定のパフォーマンスチューニング」 つまり、データ基盤の変遷は「分析に関するボトルネックの特定」とともにある そして、ボトルネックは移動する データ基盤の変遷は段階的に起きる
「北欧、暮らしの道具店」のデータ基盤の変遷 創世記: 出MySQL記: ボトルネック: 高度な集計クエリ & アプリデータと統合した分析
「北欧、暮らしの道具店」のデータ基盤: 創世記 Webのアクセスデータは Google Analytics 注文・会員情報 etc…は MySQL (Redash)
「北欧、暮らしの道具店」のデータ基盤: 創世記 Webのアクセスデータは Google Analytics 注文・会員情報 etc…は MySQL (Redash) 「北欧、暮らしの道具店」
アプリリリースにより状況が変わる 登場
「北欧、暮らしの道具店」のデータ基盤: 創世記 課題: • 基幹DBとFirebase&GA4のデータをか け合わせたアプリの分析が困難 • MySQLでの集計クエリの実行時間が長 い ボトルネックは分析用DB(MySQL)
そして、出MySQL記へ すべてのデータをBigQueryへ集約
そして、出MySQL記へ すべてのデータをBigQueryへ集約 [余談] 後日、同じことをする OSSツールも開発 https://github.com/kayac/mascaras Viewを使ってExportする方法もあるが、 開発目的でMaskされたSnapshotがほしいケースも あったのでこの方式にした。
そして、出MySQL記へ すべてのデータをBigQueryへ集約
そして、出MySQL記へ すべてのデータをBigQueryへ集約 本番で現在も稼働中 https://github.com/kayac/bqin
そして、出MySQL記へ すべてのデータをBigQueryへ集約
そして、出MySQL記へ すべてのデータをBigQueryへ集約 BigQueryで分析が完結するようになった結果 「SQLが書ける人」に分析のオーダーが集まった! クラシコムさんでは 「SQLを書ける人」が実は少ない。 ボトルネックが に移動した。
そして、出MySQL記へ ボトルネック
そして、出MySQL記へ ボトルネック FirebaseとGoogle Analyticsのデータを生で見るのは大変 Scheduled Queryで加工処理して分析しやすくしていた FirebaseとGoogle AnalyticsのExport 実は出力される時刻が不安定 ※最大で72時間遅れることがある
Scheduled Queryによるデータマート生成も 実は地味にボトルネック
そして、出MySQL記へ ボトルネック
「北欧、暮らしの道具店」のデータ基盤の変遷 出MySQL記: ボトルネック: 「SQLをかける人」およびRedash Scheduled Queryによるデータマート生成 Looker記:
Looker導入 出MySQL記のあるとき、海外で密かに噂になっていた がやってきた。 導入の決め手になったのは • LookMLによるSQL自動生成と使用感の良いUI • PDT(Persistent Derived Table)とDatagroup
Triggerを使ったデータマート生成
Looker導入 LookMLによるSQL自動生成と使用感の良いUI Business User自身はSQLを書く必要がない! 「SQLを書ける人」に依存するという 使用時のボトルネックを解決 データチームはLookMLを書きまくる。
Looker導入 PDT(Persistent Derived Table)とDatagroup Triggerを使ったデータマート生成 がLooker Forumで見つけてきたLookerのハック(裏技) Lookerによるデータマート生成:データ遅延にも対応可能
こうして、Looker記(現代)へ
こうして、Looker記(現代)へ 創世記から約2年、様々な分析の役に立ってきた? Looker記のデータ基盤 思えば、きっかけはアプリリリースだった。 https://prtimes.jp/main/html/rd/p/000000068.000024748.html
こうして、Looker記(現代)へ Looker記(現代)のボトルネックの生みの親は LookML複雑すぎ問題! PDT, Liquid, 多段Explore, 隠しExplore etc… LookMLの改変・メンテナンスコストが爆増 あのときは、イケてるツールに触れてテンション上がってたんですよね・・・
「北欧、暮らしの道具店」のデータ基盤の変遷(現在進行系) ボトルネック: が生み出した複雑過ぎるLookMLたち Looker記(現代): そして未来へ:
そして未来へ そもそも、LookerはBIツールなのでデータマート生成はある意味目的外利用 create_processのデータマート生成 ワークフローアプリケーション or ETL SaaS 餅は餅屋に!!!
そして未来へ データマートを作るコストが高いため、 LiquidやDerived Tableを多用して複雑化 データマートを2次加工してExploreを作る 1 Explore 1データマート が理想
そこで、出てくるのがETL SaaS
そこで、出てくるのがETL SaaS の複雑さ 餅は餅屋に移行して、管理しやすくする
そこで、出てくるのがETL SaaS の複雑さ 餅は餅屋に移行して、管理しやすくする それが「北欧、暮らしの道具店」のデータ基盤の Next Generation 今ならLookerと相性の良いと言われる dbtがtroccoで使える
まとめ • データ基盤の変遷は「意思決定のボトルネック」と共にある。 意思決定に必要な分析のパフォーマンスチューニング! • ボトルネックは常に移動する。 その時、その時の状況に合わせたデータ基盤の変遷は大事 • 最終的に、その時の分析の役に立っていればそれでよし! 常に、未来のことを考えよう。