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
データ基盤チームの設立と直近の取り組み / the-establishment-of-pepa...
Search
Toshifumi Tsutsumi
February 25, 2021
Technology
5
4.4k
データ基盤チームの設立と直近の取り組み / the-establishment-of-pepabo-data-platform-team
Pepabo Tech Conference #14 登壇資料
https://pepabo.connpass.com/event/204392/
Toshifumi Tsutsumi
February 25, 2021
Tweet
Share
More Decks by Toshifumi Tsutsumi
See All by Toshifumi Tsutsumi
ModuleNotFoundErrorの傾向と対策:仕組みから学ぶImport / Unpacking ModuleNotFoundError
tosh2230
3
5.2k
CDCデータパイプラインを止めないために / One Stream of the CDC
tosh2230
0
1.4k
ニアリアルタイム分析の実現に向けたChange Data Captureの導入 / Change data capture for near realtime analytics
tosh2230
3
2k
データリネージの組織導入事例と今後の戦略 / Introduction to an example of data lineage in GMO Pepabo
tosh2230
0
1k
SQLクエリ解析によるE2Eデータリネージの実現 / E2E-data-lineage
tosh2230
0
3.6k
データ抽出基盤 Yeti をつくっている話 / Yeti - Yet another Extract-Transfer Infrastructure
tosh2230
1
4.9k
Loggingモジュールではじめるログ出力入門 / Introduction to Python Logging
tosh2230
32
14k
Other Decks in Technology
See All in Technology
転職したらMCPサーバーだった件
nwiizo
9
6.9k
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
130
木を見て森も見る-モジュールが織りなすプロダクトの森
kworkdev
PRO
0
210
Global Azure2025(GitHub Copilot ハンズオン)
tomokusaba
2
790
ソフトウェアテスト 最初の一歩 〜テスト設計技法をワークで体験しながら学ぶ〜 #JaSSTTokyo / SoftwareTestingFirstStep
nihonbuson
PRO
2
160
UIパフォーマンス最適化: AIを活用して100倍の速度向上を実現した事例
kinocoboy2
1
300
クラウドネイティブ環境の脅威モデリング
kyohmizu
2
420
LangfuseではじめるAIアプリのLLMトレーシング
codenote
0
180
猫でもわかるS3 Tables【Apache Iceberg編】
kentapapa
2
210
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
6.7k
Part2 GitHub Copilotってなんだろう
tomokusaba
2
820
製造業向けIoTソリューション提案資料.pdf
haruki_uiru
0
270
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing for humans not robots
tammielis
253
25k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Code Review Best Practice
trishagee
68
18k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
The Cult of Friendly URLs
andyhume
78
6.4k
Agile that works and the tools we love
rasmusluckow
329
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
1 堤 利史 / GMO Pepabo, inc. Date: 2021-02-25 Event:
Pepabo Tech Conference #14 データ基盤チームの設立と 直近の取り組み
2 堤 利史 Twitter: @tosh2230 データエンジニア GMO Pepabo, inc. 技術部
データ基盤チーム (2020/12~) 2
3 3 本日お話しすること Section 1: データ基盤チームの設立 Section 2: 直近の取り組み -
チーム運営・基盤改善 - SUZURI KPIダッシュボード Section 3: データ基盤チームのこれから
4 データ基盤チームの設立 Section 1 4 ログ活用基盤 “Bigfoot” と実現するデータ駆動
5 5 ログ活用基盤 “Bigfoot” - ウェブサービスに関する様々なデータを扱う基盤 - ペパボ研究所 と 技術部
技術基盤チーム が中心となって開発 - 2020年に Google Cloud Platform をベースに再構成 - BigQuery, Cloud Composer が中心 https://rand.pepabo.com/article/2020/06/16/bigfoot-migration/
6 6 ログ活用基盤 “Bigfoot” datasource datasets logs metrics GitHub issues
databases BigQuery Data Studio tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls kura.gem data catalog Update metadata & commit Collect datasets Apply metadata Generate & commit Collect data tbls Generate schema.json & commit lint bigfoot/data-catalog bigfoot/platform Cloud Storage - permissions - datasets - buckets bigfoot/cloud-composer Cloud Composer dags/
7 7 - 日本CTO協会が監修・編纂している企業のデジタル化と ソフトウェア活用のためのガイドライン - テーマのひとつである ”データ駆動” を全社的に注力 -
Bigfoot にデータを集積し、活用していく機運の高まり DX Criteriaの実践 https://tech.pepabo.com/2020/02/19/dx-criteria/
8 8 最近の事例 1 https://speakerdeck.com/osamtimizer/suzuri-data-driven-2020 https://tech.pepabo.com/2021/01/21/pepabo-tech-conference-13/
9 9 最近の事例 2 https://tech.pepabo.com/2021/02/10/zendesk-data-visualization-with-bigfoot/
10 需要 > 供給 10
11 11 2021-01-21 データ基盤チーム 設立 🎉 Vision “データ駆動” の実現を担う 事業部横断組織
Mission 1. 社内のあらゆるデータへの意味付け 2. データによる意思決定を支援するプラットフォームの構築・ 全てのパートナーへの提供
12 直近の取り組み Section 2 12 一部を抜粋してご紹介
13 1. チーム運営・基盤の改善 13
14 14 チーム始動!と同時に発生した課題 - 開発者の増加 → 手数増える → CI渋滞 -
連携元システム・サービスの増加 - データやETL処理の依存関係の複雑化 - 新規 / 既存メンバーのナレッジギャップ チーム運営&基盤の改善が急務に ...!
15 15 2021年の2ヶ月間でやったこと - CI環境の移行 (Drone * → GitHub Actions)
- Cloud Composer テスト環境増設 (1→3) - マルチクラウド化 (AWSのチーム利用開始) - Sentry によるエラーマネジメント開始 - エラー通知 → エラー情報確認 → Issue起票 がスムーズに - アーキテクチャ共有会 の定期開催 - ドキュメント拡充 - Airflow DAG 依存関係の整理 - ソースコードコメントや Metadataの追加 * OSS CIプラットフォーム。 https://www.drone.io/
16 16 各種対応によって状況は改善へ💪 - 開発者の増加 → 手数増える → CI渋滞 -
解消 - 連携元システム・サービスの増加 - チームとして対応できる状態に - データやETL処理の依存関係の複雑化 - 現状把握・注意喚起する仕組みを構築中 - 新規 / 既存メンバーのナレッジギャップ - 技術的・歴史的なナレッジ共有の継続実施 (共有会, GHE, Notion など) - 対応手順をGitHub Issueに残して資産化
17 2. KPIダッシュボード 17
18 18 画像を1枚アップ するだけ 自動的に商品が できます 販売まで行えます 自分買いも可能 画 像
をアップすると、 Tシャツやトートバッグ、マ グカップなど、あらゆるグッズを作ることができま す。グッズは41種類。 好きな価格で販売できます。注文を受けてか ら作成するので在庫を気にする必要もありま せん。 自分で作ったイラストや写真を 1枚アップロード します。 (ファイル形式はJPGまたはPNG) オリジナルアイテムが作れる、売れる、買える。
19 19 ダッシュボードの目的 データによってサービスの状態を把握して、施策のPDCAに貢献 - 複数のデータソースを収集 - 多量・多種のデータを加工・蓄積 - KPI
* を即座に抽出して可視化 - サマリーを定期的に通知 * Key Performance Indicator: 重要業績評価指標
20 Google BigQuery Cloud Composer Data Lake 20 今回のデータパイプラインの全体像 Data
Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Bigfoot
21 どのように構築したか 21
22 Bigfoot Google BigQuery Cloud Composer Data Lake 22 Data
Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Step1: SUZURIを理解(しようと努力)する 後ろは、ぼんやり考える程度に
23 23 Step1: SUZURIを理解(しようと努力)する - 事業そのものを知る - ビジネスモデルを学ぶ - サービスのユーザーになる
- KPIへの理解を深める - 使われている用語の定義を確認 - 用語に紐づくデータの整理 - Google Colabでざっくり加工して、認識齟齬が無いか確認 - サービスのデータ構造を学ぶ - テーブルやER図を眺める - ひたすらSELECTを投げてデータ構造を感じる
24 Bigfoot Google BigQuery Cloud Composer Data Lake 24 Data
Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Step2: Data Studioでドラフト版を作成する カスタムクエリで直接参照!
25 25 Step2: Data Studioでドラフト版を作成する - Data Studio(データポータル) - Googleが提供するBIツール
- BigQueryと簡単にデータ連携ができる - “実際に動くもの”を見ながら、ビジネス要件を再確認 - カスタムクエリ(データソースをSQLで直接指定するモード )にハードコード - DataMartが完成したら接続先を切り替える - アウトプットが固まってきたら、プロセスの最適化を検討
26 Bigfoot Google BigQuery Cloud Composer Data Lake 26 Data
Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users 通知は最後 Step3: Cloud Composer でワークフローを構築する
27 27 Step3: Cloud Composer でワークフローを構築する - Cloud Composer -
Google が提供するフルマネージド Airflow - 多様なOperator* を駆使してワークフローを構築 - (独特なスケジューリングの概念に苦戦 ...) - Airflow を初めてさわった - execution_date, start_date, end_date, schedule_interval… - ELT(Extract/Load/Transform) 処理の実施 - DataLake → DataWarehouse → DataMart の方向にデータを加工 * ワークフロータスクのテンプレート。これを組み合わせてワークフローを定義する。
28 Bigfoot Google BigQuery Cloud Composer Data Lake 28 Data
Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Step3でリリース済 Step4: Slackにサマリーを通知する
29 29 - DataMart 作成完了に合わせて、Slackへサマリーを通知 - Slack App の Incomming
Webhook を使用 - ”SELECT 結果を加工して Slack に通知” をしてくれる Operator はない - そこで Custom Operator を実装 - 渡すパラメータは、Airflow Connection と mention, header, body の4つ - Base Operator を継承して、BigQueryHook を内部で実行 Step4: Slackにサマリーを通知する
30 30 - サマリーやダッシュボードを 見ながらSlackで議論できる - 社内共有も簡単! - ダッシュボードはユーザ編集可 このあたりにKPIのサマリーを
列挙して通知しています Step4: Slackにサマリーを通知する
31 データ基盤チームの これから Section 3 31
32 32 再掲: データ基盤チームのVision & Mission Vision “データ駆動” の実現を担う 事業部横断組織
Mission 1. 社内のあらゆるデータへの意味付け 2. データによる意思決定を支援するプラットフォームの構築・ 全てのパートナーへの提供
33 33 - Bigfoot をもっと活用してもらう - データや基盤は活用するためにある - 活用するにはどのような方法があるのか、選択肢を提示する -
チームの認知度を上げる - Bigfoot を知っていても、データ基盤チームは知られていない - どんなひとがいるのか、なにをしているのか → 相談のしやすさ⏫ - 社内・社外への情報発信 - 至高のデータ基盤を目指して - 技術的なチャレンジも忘れない やっていくこと