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.3k
「北欧、暮らしの道具店」のデータ基盤の変遷
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
運用の役立たないダッシュボードの作り方。
mashiike
3
880
Amazon Aurora MySQL と Amazon Redshift の Zero-ETL Integration について使い所を考えてみた!
mashiike
0
700
Warningアラートを放置しない!アラート駆動でログやメトリックを自動収集する仕組みによる恩恵
mashiike
5
3.8k
Prepalert ~Mackerelアラートにログや集計値を貼り付けてくれるトイル削減ツール~
mashiike
0
1.8k
人狼ゲームで考えるデータ基盤 〜データとはいったい・・・〜
mashiike
0
270
『エンタープライズ』という言葉の重さ 〜Data Vault 2.0をやめた2022年冬〜
mashiike
2
4k
Redshift ServerlessとProvisioned Cluster のちょっとした違い
mashiike
0
4.7k
小規模ワークロードにおけるRedshift Serverlessのログの取り扱い
mashiike
0
580
完全に理解した incremetal 〜そして、何もわからないへ〜
mashiike
2
4.7k
Other Decks in Technology
See All in Technology
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
120
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
200
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
170
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
280
事業貢献を考えるための技術改善の目標設計と改善実績 / Targeted design of technical improvements to consider business contribution and improvement performance
oomatomo
0
100
ハイテク休憩
sat
PRO
2
170
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
470
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
130
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Designing for Performance
lara
604
68k
Producing Creativity
orderedlist
PRO
341
39k
Optimising Largest Contentful Paint
csswizardry
33
3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
4 Signs Your Business is Dying
shpigford
181
21k
Typedesign – Prime Four
hannesfritz
40
2.4k
BBQ
matthewcrist
85
9.4k
Unsuck your backbone
ammeep
669
57k
A Tale of Four Properties
chriscoyier
157
23k
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で使える
まとめ • データ基盤の変遷は「意思決定のボトルネック」と共にある。 意思決定に必要な分析のパフォーマンスチューニング! • ボトルネックは常に移動する。 その時、その時の状況に合わせたデータ基盤の変遷は大事 • 最終的に、その時の分析の役に立っていればそれでよし! 常に、未来のことを考えよう。