Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アジャイルで始める データ分析基盤構築

アジャイルで始める データ分析基盤構築

# 概要
Lookermeetup 第8回でトークした内容です。
https://looker-japan-user-group.connpass.com/event/253923/

glassmonenkey

July 22, 2022
Tweet

More Decks by glassmonenkey

Other Decks in Programming

Transcript

  1. © 2012-2022 BASE, Inc. 2 #lookermeetup @glassmonkey 自己紹介 所属 BASE

    株式会社 BASE BANKチーム Engineering Program Manager 資金調達プロダクト「YELL BANK」の開発責任者やってます。 Go, PHP, Pythonを書きつつ、片足データエンジニアも。 趣味 Flutterアプリ開発 hasura.ioやsupabaseがマイブーム SNS Twitter:@glassmonekey  Github: https://github.com/glassmonkey 永野 峻輔 (ながの しゅんすけ) 昨年寄稿させていただきました
  2. © 2012-2022 BASE, Inc. 4 #lookermeetup @glassmonkey 現在は、即座に資金調達ができる「YELL BANK」、ショップの売上がそのまま支払いに使える「BASEカード」、 最短翌営業日に売上金が振り込まれる「お急ぎ振込」を提供しています。

    3つのサービスで総合的に加盟店のお金周りのサポートをしています。 振込申請 BASEカード YELL BANK かんたん、即座に 1万円から資金調達が可能 売上をそのままお支払いに使える 「お急ぎ振込」では 最短翌営業日に売上を振込 弊チームの扱うプロダクト達
  3. © 2012-2022 BASE, Inc. 8 #lookermeetup @glassmonkey アジャイルソフトウェア宣言より • プロセスやツールよりも個人と対話を、

    • 包括的なドキュメントよりも動くソフトウェアを、 • 契約交渉よりも顧客との協調を、 • 計画に従うことよりも変化への対応
  4. © 2012-2022 BASE, Inc. 13 #lookermeetup @glassmonkey チーム体制 PdM デザイナー

    PMM etc… 振込申請 EPM Engineer EPM Engineer EPM Engineer TL Planing Sprint:1 … Release Planing Sprint:1 … Release Planing Sprint:1 … Release
  5. © 2012-2022 BASE, Inc. 14 #lookermeetup @glassmonkey フルサイクルエンジニアという文化 要件定義・設計 企画

    開発 テスト 問い合わせ対応 デプロイ 運用 Software Developers フルサイクル開発チーム • フルサイクルでプロダクト開発をするため、 アプリケーション設計・開発、デプロイの構築、 運用設計・インフラ構築まで担う職能横断チーム • 自分たちで開発したプロダクト・機能はグロース・サ ポートまで担当します • Netflixが提唱する「Full Cycle Developer」 職能横断チーム
  6. © 2012-2022 BASE, Inc. 18 #lookermeetup @glassmonkey ある日の一コマ BASE BANKチーム

    全社的なデータ基盤構築などを担当 データプラットフォームチーム なるほど ぼく Looker導入するで!!
  7. © 2012-2022 BASE, Inc. 19 #lookermeetup @glassmonkey 背景 • Redashをもともと使ってた

    ◦ 大量のメンテされてないダッシュボードが氾濫してた ◦ 分析用途の基盤は主にMySQL 5系が使われてた • DWHにBigQueryを使っていくぞという動きもあった ◦ チームの基盤は業務DB(MySQL)を直接使っていた
  8. © 2012-2022 BASE, Inc. 25 #lookermeetup @glassmonkey 必要なところ • Redashで見ていたデータから

    • データの同期は日時 • MySQL -> BigQueryはシンプルなCDCで ◦ embulkを使用 ◦ 更新日時にindexを貼る + マージクエリで実現 ◦ Fargate上でテーブル単位で並行で動くように ◦ いつでも捨てられるように
  9. © 2012-2022 BASE, Inc. 26 #lookermeetup @glassmonkey 最初の壁 • Redashでもよくないか?

    • 覚えること多い ◦ Lookerに忖度してる感覚がかなりあった ◦ なれると便利(primary key, demention group, etc…) • 設計で聞ける人がいなかった
  10. © 2012-2022 BASE, Inc. 28 #lookermeetup @glassmonkey Lookerの活用の開始 • 業務テーブルをそのまま使わないこと

    • 目的別にエクスプローラーを作成することに ◦ 現在データの分析 ◦ 日時データの分析
  11. © 2012-2022 BASE, Inc. 29 #lookermeetup @glassmonkey 現在データの分析とは • 最小単位をユーザー

    ◦ ユーザーの属性の分類に備えて ex) 現在のユニークユーザー数
  12. © 2012-2022 BASE, Inc. 30 #lookermeetup @glassmonkey 日時データの分析とは • 最小単位を「ユーザー」

    + 「日」 ◦ ユーザーの属性の分類に備えて • スパースなデータなのでカレンダーテーブルを規程に ◦ これにJOINしていく方式に ex) 日毎のユニークユーザー数
  13. © 2012-2022 BASE, Inc. 31 #lookermeetup @glassmonkey データ分析にも適応するFBループ 要件定義・設計 企画

    開発 テスト 問い合わせ対応 デプロイ 運用 Software Developers データ整備
  14. © 2012-2022 BASE, Inc. 33 © 2012-2022 BASE, Inc. 33

    大事なことはデータ基盤を 自分達で整備していくこと
  15. © 2012-2022 BASE, Inc. 34 #lookermeetup @glassmonkey まとめ • 文化ができる

    ◦ リリース後の速報が把握できる&するようになった。 ◦ データを見る習慣ができてきた。 • ユーザーへの解像度があがった。 ◦ 日にどれくらい使われる? ◦ このままの成長でシステムが耐えられるか? • アンラーン大事
  16. © 2012-2022 BASE, Inc. 35 #lookermeetup @glassmonkey +α(開発者視点) • テーブル設計レベルでビジネスメンバーを巻き込める点

    • システムの異常系検知に便利 ◦ ex) 資金調達可能ショップ数の前日比の異常現象検知など • 効果測定を加味したシステム設計
  17. © 2012-2022 BASE, Inc. 36 #lookermeetup @glassmonkey 今後 • dbtを使ったクエリ管理

    ◦ 1視聴者として今日の発表は楽しみ • PDTの活用 ◦ まだ複雑ではないので耐えられている • 機械学習システムとの連携