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.2k
データ基盤チームの設立と直近の取り組み / 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
4.2k
CDCデータパイプラインを止めないために / One Stream of the CDC
tosh2230
0
1.2k
ニアリアルタイム分析の実現に向けたChange Data Captureの導入 / Change data capture for near realtime analytics
tosh2230
3
1.6k
データリネージの組織導入事例と今後の戦略 / Introduction to an example of data lineage in GMO Pepabo
tosh2230
0
860
SQLクエリ解析によるE2Eデータリネージの実現 / E2E-data-lineage
tosh2230
0
3.3k
データ抽出基盤 Yeti をつくっている話 / Yeti - Yet another Extract-Transfer Infrastructure
tosh2230
1
4.4k
Loggingモジュールではじめるログ出力入門 / Introduction to Python Logging
tosh2230
32
13k
Other Decks in Technology
See All in Technology
WINTICKETアプリで実現した高可用性と高速リリースを支えるエコシステム / winticket-eco-system
cyberagentdevelopers
PRO
1
190
AIを駆使したゲーム開発戦略: 新設AI組織の取り組み / sge-ai-strategy
cyberagentdevelopers
PRO
1
130
Autify Company Deck
autifyhq
1
39k
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
340
生成AIとAWS CDKで実現! 自社ブログレビューの効率化
ymae
2
330
一休.comレストランにおけるRustの活用
kymmt90
3
580
Apple/Google/Amazonの決済システムの違いを踏まえた定期購読課金システムの構築 / abema-billing-system
cyberagentdevelopers
PRO
1
220
AWSコンテナ本出版から3年経った今、もし改めて執筆し直すなら / If I revise our container book
iselegant
15
4k
グローバル展開を見据えたサービスにおける機械翻訳プラクティス / dp-ai-translating
cyberagentdevelopers
PRO
1
150
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
1
620
顧客が本当に必要だったもの - パフォーマンス改善編 / Make what is needed
soudai
24
6.7k
カメラを用いた店内計測におけるオプトインの仕組みの実現 / ai-optin-camera
cyberagentdevelopers
PRO
1
120
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Music & Morning Musume
bryan
46
6.1k
4 Signs Your Business is Dying
shpigford
180
21k
Ruby is Unlike a Banana
tanoku
96
11k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
The Power of CSS Pseudo Elements
geoffreycrofte
72
5.3k
Designing Experiences People Love
moore
138
23k
Visualization
eitanlees
144
15k
Automating Front-end Workflow
addyosmani
1365
200k
Documentation Writing (for coders)
carmenintech
65
4.4k
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 を知っていても、データ基盤チームは知られていない - どんなひとがいるのか、なにをしているのか → 相談のしやすさ⏫ - 社内・社外への情報発信 - 至高のデータ基盤を目指して - 技術的なチャレンジも忘れない やっていくこと