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
データリネージの組織導入事例と今後の戦略 / Introduction to an examp...
Search
Toshifumi Tsutsumi
December 12, 2022
Programming
0
900
データリネージの組織導入事例と今後の戦略 / Introduction to an example of data lineage in GMO Pepabo
datatech-jp Casual Talks #4 登壇資料
https://datatech-jp.connpass.com/event/264640/
Toshifumi Tsutsumi
December 12, 2022
Tweet
Share
More Decks by Toshifumi Tsutsumi
See All by Toshifumi Tsutsumi
ModuleNotFoundErrorの傾向と対策:仕組みから学ぶImport / Unpacking ModuleNotFoundError
tosh2230
3
4.5k
CDCデータパイプラインを止めないために / One Stream of the CDC
tosh2230
0
1.3k
ニアリアルタイム分析の実現に向けたChange Data Captureの導入 / Change data capture for near realtime analytics
tosh2230
3
1.7k
SQLクエリ解析によるE2Eデータリネージの実現 / E2E-data-lineage
tosh2230
0
3.4k
データ抽出基盤 Yeti をつくっている話 / Yeti - Yet another Extract-Transfer Infrastructure
tosh2230
1
4.6k
Loggingモジュールではじめるログ出力入門 / Introduction to Python Logging
tosh2230
32
13k
データ基盤チームの設立と直近の取り組み / the-establishment-of-pepabo-data-platform-team
tosh2230
5
4.3k
Other Decks in Programming
See All in Programming
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
760
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
930
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
290
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
130
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
260
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
3
700
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
770
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
MCP with Cloudflare Workers
yusukebe
2
220
fs2-io を試してたらバグを見つけて直した話
chencmd
0
230
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
470
Featured
See All Featured
A designer walks into a library…
pauljervisheath
204
24k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Code Reviewing Like a Champion
maltzj
520
39k
Transcript
データリネージの 組織導入事例と今後の戦略 堤 利史 / GMO PEPABO inc. 2022.12.12 datatech-jp
Casual Talks #4 1
2 自己紹介 技術部 データ基盤チーム シニアエンジニア 2020年 中途入社 堤 利史 TSUTSUMI Toshifumi
2020年12月にGMOペパボへ入社。 データエンジニアとしてデータ基盤の 開発・運用に従事。 Twitter: @tosh2230 先日、PS5の購入に成功しました
3 アジェンダ 1. データリネージをはじめた背景 2. Stairlight の紹介 3. GMOペパボでのデータリネージ導入事例 4.
今後の戦略と課題
4 1. データリネージを はじめた背景
データの系譜を明らかにすること - Lineage: 血統、家柄 - メタデータ(データを説明するためのデータ)の一種 データの可観測性(Data observability)の向上が目的 - このデータは何から生まれたのか?
- このデータはどこで使われているのか? 1. データリネージをはじめた背景 5 データリネージ(Data lineage)
- データ駆動のためのエコシステムの提供 - サービスの動的な改善と意思決定の自動化をサポート 詳細はこちらの資料を ご参照ください 👉 1. データリネージをはじめた背景 6
データ基盤 Bigfoot https://speakerdeck.com/zaimy/inside-story-of-data-infrastruc ture-supporting-gmo-pepabos-services-and-r-and-d
7 - 運営サービスが複数ある = データベースが複数ある - つまり Extract 対象がいっぱいある -
Extract したデータの種類が多いと Transform のパターン数も増えがち GMOペパボは、インターネットサービスを多数運営しています 1. データリネージをはじめた背景 * ほかにもたくさん! 詳しくは https://pepabo.com/services/ をご覧ください
8 困りごと 1: データ障害の原因や影響範囲を把握しにくい 1. データリネージをはじめた背景 誰か 「このテーブルが壊れたら、誰が、どういう風に困る?」 私 「」
過去には、データ障害発生から復旧までに要した時間の半分以上を “影響範囲の調査”と”復旧に必要なジョブ特定”に使っていたことも...
9 困りごと 2: 業務データの活用状況を把握しにくい 1. データリネージをはじめた背景 「誰が、どこにあるデータを、どのように活用しているのか?」 • 各事業では、複数のデータベースやデータウェアハウスに対して SQL
を用いてデータを取得し、施策の検討やビジネス的な判断を行っている • Bigfoot は、社内ユーザーから見るとデータソースのひとつに過ぎない • Bigfoot の活用状況のみならず、業務データ全体の活用状況を知りたい
10 業務データ全体に対するデータリネージがしたい 1. データリネージをはじめた背景 特定のアプリケーションやデータウェアハウス、ワークフローではなく、 業務データフロー全体におけるアウトプット同士の関係性を把握したい • テーブル • ダッシュボード
• Slack 通知 • 統計・機械学習モデル • …
11 2. Stairlight の紹介
12 2. Stairlight の紹介 An end-to-end data lineage tool, detects
table dependencies from SQL statements. $ pip install stairlight https://github.com/tosh2230/stairlight
13 2. Stairlight の紹介 特徴1: SQL からデータのつながりを見つける Jinja パラメータ
14 2. Stairlight の紹介 特徴2: コードベースにある SQL を探す 過去に実行されたクエリではなく いま・これから実行されうるクエリを
リネージ対象にする
15 2. Stairlight の紹介 特徴3: 独立性が高い - データリネージ機能(抽出・検索)のみを提供する - ETL/ELT,
BI などの機能を提供するツールとの結合度が低い - 複数のユースケース - ローカルなどから依存関係を検索 - 抽出用エージェント - Python ライブラリとしてアプリケーションに組み込み
16 2. Stairlight の紹介 開発背景や機能解説は PyCon JP 2022 のスライドをご覧ください https://speakerdeck.com/tosh2230/e2e-data-lineage
17 1. セクションタイトル 3. GMOペパボでの データリネージ導入事例
3. GMOペパボでのデータリネージ導入事例 18 logs metrics GitHub issues databases tbls datasets
BigQuery bigfoot/platform Cloud Storage - Permissions - Datasets - Buckets Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog Apply metadata Generate & Commit Generate schema.json & commit bigfoot/data-catalog Update metadata & commit Send analysis results Verne Vertex AI Bigfoot 概要図 18
3. GMOペパボでのデータリネージ導入事例 19 bigfoot/cloud-composer のリネージ情報を収集 Bigfoot のオーケストレーションに関するコードを 管理するリポジトリ 現時点で管理している SELECT
文: 約220 2022年10月から運用開始
3. GMOペパボでのデータリネージ導入事例 20 bigfoot/data-lineage で設定ファイルを管理 bigfoot/cloud-composer 1. コード追加・変更 2. Pull
Request 作成 3. マージ・デプロイ bigfoot/data-lineage 1. 未設定クエリの自動抽出* 2. 設定追加・変更 3. Pull Request 作成 4. マージ * “stairlight map” コマンドで抽出します
3. GMOペパボでのデータリネージ導入事例 21 情報伝達の質と展開速度↑ - データ障害が発生した際、影響調査に要する時間が減った - 業務影響の有無を、これまでよりも正確に・早い段階で周知できるようになった 俯瞰的な視点 -
アウトプット同士の依存関係を把握する手段を得たことで、 優先順位を決める判断材料が増えた - 障害復旧までに要する作業量の削減と作業時間の短縮を実現した 効果
22 4. 今後の戦略と課題
4. 今後の戦略と課題 23 View 層のデータリネージ Verne - Cloud Run ベースの
汎用アプリケーション基盤 - Streamlit を用いた ダッシュボードがメイン - ex. Four keys* BI ツール - Redash - Metabase * エンジニアの活動情報からFour Keysを集計、可視化した話 https://tech.pepabo.com/2022/01/06/four-keys-dashboard/
4. 今後の戦略と課題 24 設定ファイル更新 Pull Request 作成の自動化 bigfoot/cloud-composer 1. コード追加・変更
2. Pull Request 作成 3. マージ・デプロイ bigfoot/data-lineage 1. 未設定クエリの自動抽出 2. 設定追加・変更 3. Pull Request 作成 4. マージ
4. 今後の戦略と課題 25 リネージ情報を GUI で公開 bigfoot/cloud-composer 1. コード追加・変更 2.
Pull Request 作成 3. マージ・デプロイ bigfoot/data-lineage 1. 未設定クエリの自動抽出 2. 設定追加・変更 3. Pull Request 作成 4. マージ Verne
4. 今後の戦略と課題 26 遅延情報の開示と通知 Data Health Dashboard - データが期待した状態であるか、ヘルスチェック結果を常に開示 -
ETLジョブではなく アウトプットの状態とその関係性 を表示する 遅延通知 - データ遅延を都度報告するのではなく、即座に伝える - 通知登録をした人・グループ・Slack チャンネルに送る(列車遅延通知と同じ)
4. 今後の戦略と課題 27 Looker Studio と Connected Sheets - 設定を取り出す方法が
見つかっていない - 監査ログから事後的に クエリを検出する予定 検討中... アプリ・ジョブ ⇔ アウトプットの 相互検索 - Stairlight の Label 機能 で実現できる? - (要検証)
まとめ 28 - 人間やアプリケーション、統計・機械学習モデルなどが生み出す アウトプットの関係性を、データリネージによって継続的に捉える - データ基盤チームから積極的に施策を提案できる態勢にする - 社内データ活用の状況・状態が常に公開されていることを”ふつう”にする
29 Thank You! Thank You!