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
chanyou0311
November 20, 2024
Technology
3
890
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
datatech-jp の「Data Contract事例共有会」での登壇資料です。
https://datatech-jp.connpass.com/event/331984
chanyou0311
November 20, 2024
Tweet
Share
More Decks by chanyou0311
See All by chanyou0311
5分でわかるDuckDB
chanyou0311
10
3.2k
データの信頼性を支える仕組みと技術
chanyou0311
6
2k
Pulumi に入門してみた
chanyou0311
1
180
What is DRE? - Road to SRE NEXT@広島
chanyou0311
3
950
release-please で実現する手軽で不変な Docker イメージタグ付け方法
chanyou0311
0
300
データ基盤を支える技術
chanyou0311
8
4k
おうちk8s入門 - すごい広島 IT初心者の会 [84]
chanyou0311
1
280
オンラインコミュニケーションの課題と、その乗り越え方
chanyou0311
0
480
データ分析基盤のはじめかた
chanyou0311
1
1.3k
Other Decks in Technology
See All in Technology
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
150
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
100
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
390
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
AIのコンプラは何故しんどい?
shujisado
1
190
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
0
150
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
26
11k
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
110
C++26 エラー性動作
faithandbrave
2
700
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
430
Qiita埋め込み用スライド
naoki_0531
0
860
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
240
Featured
See All Featured
Side Projects
sachag
452
42k
Designing for Performance
lara
604
68k
Why Our Code Smells
bkeepers
PRO
335
57k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Being A Developer After 40
akosma
87
590k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Faster Mobile Websites
deanohume
305
30k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Transcript
2024/11/20 Yu Nakamura - chanyou データプロダクトの定義からはじめる データコントラクト駆動なデータ基盤 @chanyou0311
Yu Nakamura - chanyou • スタートアップでデータエンジニアとして交通データ分析基盤 の構築‧運⽤を経験 • その後、株式会社タイミーの DRE
チームにジョイン • タイミーのデータ基盤の開発‧運⽤を担当 • 最近はデータ基盤領域におけるPlatform Engineeringに興味が あります • 広島在住。趣味はおうち Kubernetes クラスタ • YAPC::Hiroshima 2024 のスタッフなど
タイミーとは 3 「働きたい時間」と「働いてほしい時間」を マッチングするスキマバイトサービス 従来の「求⼈サイト」でも「派遣」でもない
タイミーの特徴 4
タイミーの実績 スキマ バイト No.1 ※1 ※2 [調査⽅法]インターネット調査 [調査期間]2024 年 2
⽉ 9 ⽇~11 ⽇ [調査概要]スキマバイトアプリサービスの実態調査 [調査委託先]株式会社マクロミル ※3 2024年9⽉時点 ※4 2024年9⽉時点 利⽤率 ‧リピート率 ※1 ※2 導⼊事業者数 136,000企業 ワーカー数 900万⼈ ※4 ※3
目次 • タイミーのデータ基盤の現状と課題 • ソリューションの模索 • 実践していることとこれから
1 タイミーのデータ基盤の 現状と課題
タイミーのデータ基盤の歴史 2018 アプリ リリース DWH (BigQuery)へ データ集約 2020 Looker導入 &
dbt導入 2021 2022 2023 2024 データモデリング をLookerからdbt へ移行 Datastreamに よるCDC導入 / exposureによる アウトプットの 管理 ガバナンスの強化 DREの数 (正社員ベース) 1 1 1 -> 2 2 -> 4 4 -> 6 AEの数 (正社員ベース) 1 -> 2 2 1
アーキテクチャ(2022年頃)
アーキテクチャ(いま)
アーキテクチャ(いま) 利⽤ユースケースの 増加 データの増加と アーキテクチャの複雑化
現状と課題 • データソース側の課題 ◦ 新規対応データソースへの対応が継続的に求められる ◦ 既存のデータソースの仕様変更への対応でかかり切りに • ユースケース側の課題 ◦
各部署の多様なニーズへの対応が継続的に求められる ◦ dbtのマート層の改修でかかり切りに ◦ データ品質とサービスレベルを誤って理解してデータを利活⽤してし まったり
中央データチームのボトルネックを解消しながら、 データガバナンスをうまく実践できないものか🤔
2 ソリューションの模索
輪読会の開催 『Driving Data Quality with Data Contracts』 Andrew Jones Packt
Publishing, 2023年 https://data-contracts.com 『データスチュワードシップ - データマネジメント&ガバナンスの実践ガイド』 David Plotkin, Metafindコンサルティング株式会社 ⽇経BP社, 2024年 https://book.impress.co.jp/books/1118101029
‧データ基盤のプラットフォーム化により、ボトルネックを技術的に解決していく ‧データコントラクトを通してあらゆるパイプラインやドキュメントの⾃動⽣成を ⾏う事例を紹介 中央データチームがボトルネックになる課題にフォーカス 『Driving Data Quality with Data Contracts』
Andrew Jones Packt Publishing, 2023年 https://data-contracts.com
データにまつわる仕様を定義したファイル 引⽤元: https://data-contracts.com
スキーマはもちろん PII に該当するかも定義 引⽤元: https://data-contracts.com
データの配置場所や利⽤規約も表現 引⽤元: https://data-contracts.com
サービスレベルも表現する 引⽤元: https://data-contracts.com
データコントラクト駆動なデータ基盤 データコントラクトから、様々な成果物を⾃動的に⽣成できる ‧宛先のデータセット ‧データ転送処理 ‧データ品質の監視 ‧ドキュメント ‧… これにより中央データチームのボトルネックが解消されるという考え
タイミーにおけるデータコントラクト駆動なデータ基盤 ✅ データコントラクトからリソースを⽣成するのは、ボトルネックを解消できそう ‧PoCとしてデータコントラクト(YAML)からPulumiでリソース⽣成など難なくできた ‧現状のTerraformベースのリソース管理とコンフリクトするので要調整 🌀 ⼀⽅で、データコントラクトを中央データチームであるDREが書き続けていては、 ボトルネックは解消できない ‧中央データチームではない、データアナリストやデータサイエンティストがデータ コントラクトを記述していく世界が理想
データガバナンスの実践⽅法にフォーカス 『データスチュワードシップ - データマネジメント&ガバナンスの実践ガイド』 David Plotkin, Metafindコンサルティング株式会社 ⽇経BP社, 2024年 https://book.impress.co.jp/books/1118101029
‧ロールと会議体を厳密に設計して、Opsで解決していく ‧データが⽣成されてから活⽤されるまでの⼀連の流れを「インフォメーションチェーン」と呼ぶ ‧インフォメーションチェーンごとに必要なロールや会議体を設定して、適切にデータが蓄積‧活⽤さ れる状態を維持するという考え
インフォメーションチェーン インフォメーションチェーン ビジネスデータスチュワード テクニカルデータスチュワード テクニカルデータスチュワード
タイミーにおけるデータスチュワードシップ 🌀 データスチュワードシップで紹介されていた厳格なプロセス は、今のタイミーにとっては少し重厚すぎた ✅ データスチュワードという役割は重要そう ‧データ品質とサービスレベルを理解した上でデータ活⽤を推進 するには、インフォメーションチェーン全体に関わるスチュワー ドの存在は重要
輪読会の学びをまとめると ‧データコントラクト駆動なデータ基盤を実装することで、中央データチームの ボトルネックが解消できそう ‧ただ、どういう単位で誰がデータコントラクトを記述して、メンテナンスする と良いんだろう?
Data Mesh Manager のデモ体験会 Data Mesh Manager のデモを体験してコンセプト を理解した ‧データプロダクトの
I/F としてデータコントラク トが宣⾔されている ‧データプロダクトの運⽤を担うドメインチーム の存在 引⽤元: https://www.datamesh-manager.com
Data Mesh Manager のデモ体験会 引⽤元: https://demo.datamesh-manager.com/demo544726604823/teams/products Data Mesh Manager のデモを体験してコンセプト
を理解した ‧データプロダクトの I/F としてデータコントラク トが宣⾔されている ‧データプロダクトの運⽤を担うドメインチーム の存在
Data Mesh Manager のデモ体験会 引⽤元: https://demo.datamesh-manager.com/demo544726604823/teams/products Data Mesh Manager のデモを体験してコンセプト
を理解した ‧データプロダクトの I/F としてデータコントラク トが宣⾔されている ‧データプロダクトの運⽤を担うドメインチーム の存在 どう解釈したらいいんだろう🤔
datamesh-architecture.com で整理されている 引⽤元: https://www.datamesh-architecture.com
データ基盤をデータプロダクトの集合と捉えて、 ドメインチームが主体となって開発‧運⽤を推進する 引⽤元: https://www.datamesh-architecture.com
データプロダクトはデータと周辺のリソースのこと 引⽤元: https://www.datamesh-architecture.com
引⽤元: https://www.datamesh-architecture.com データプロダクトの開発‧運⽤をドメインチームが担う
引⽤元: https://www.datamesh-architecture.com ドメインチームを⽀える Platformチーム、Enablingチーム、Gorvernanceチーム
これまでの学び ‧今まではデータコントラクトを基軸にデータ基盤を捉えていた ‧データプロダクトとその開発チームを基軸にデータ基盤を捉え直すべきでは? ‧インターフェイスとしてデータコントラクトが機能するのでは? ‧タイミーにおいては、BigQuery のデータセットをひとつの⽬安としてデータプ ロダクトとして区切り、ドメインチームの詳細やデータコントラクトを取りまと めることができそう
3 データ基盤の課題解決に向けて 実践していることと これから
ボトムアップで、⼩さくはじめる
直近でMAツールでのデータ活⽤のために、マート層と ReverseETLの実装シーンがあった ‧同期するデータの内容を継続的に拡充していく予定 ‧全て中央のデータチームが受け取るのは難しい ‧データプロダクトとデータコントラクトの事始めとして良さそう! ディメンション モデリング (dbt Model) MAツール⽤
マート層 (dbt Model) MAツール
確かめたいこと ‧中央データチームから分離された、ドメインチームという体制でうまく開発を 推進できるか ‧BigQuery のデータセット単位でデータプロダクトを定義するのでよさそうか
ドメインチームと役割分担 名称 役割 MOps(プロダクトオーナー) MAツールへの同期内容やスケジュール間隔の判断など アナリティクスエンジニア dbtモデルの実装のリード データアナリスト dbtモデルの実装(アナリティクスエンジニアと協働) DRE
MAツール接続部分の設定 データコントラクト、データプロダクトの定義 Platform, Enable, Governance チーム的に振る舞う
キックオフミーティングの開催 ‧開発内容‧スコープのすり合わせ ‧データ基盤の課題と解決案の共有 ‧データプロダクトキャンバスの作成
データプロダクトキャンバス 引⽤元: https://www.datamesh-architecture.com/data-product-canvas
キャンバスの公式例 引⽤元: https://www.datamesh-architecture.com/data-product-canvas
Miroテンプレートを活⽤ 引⽤元: https://www.datamesh-architecture.com/data-product-canvas
やらなかったこと データコントラクト駆動によるリソースの払い出し ‧既存のIaC環境とコンフリクトしてしまう ‧現時点で有⽤か判断するのが難しい ドメインチームによるスクラムの実践 ‧今回においてはオーバーヘッドが⼤きいため
実践する中でわかってきたこと ✅ データ基盤の課題と、取り組む意義について理解してもらえた ‧アナリストと⼀緒にデータプロダクトの開発を推進できそう ✅ 認識のすり合わせに、データプロダクトキャンバスがうまく機能した ‧特にデータのユースケースやステークホルダーを把握する役割を果たした
実践する中でわかってきたこと 🌀 ドメインチームだけで継続的な運⽤まですぐにカバーするのは難しそう ‧特にアナリストはショットで分析を⾏う普段の業務とのギャップも⼤きい ‧モニタリング環境の提供など、仕組みで解決できる余地がありそう
これから 💪 草の根活動として、引き続きデータプロダクト開発体制の検証を進めていく ‧データプロダクト、データコントラクトの定義をドメインチームが⾏えるように 💪 いずれは横展開できるように型化する必要がある ‧国内事例がほとんどなく、なかなか組織全体を巻き込みにくい ‧社内で⼩さく検証を重ねながら、⾃信を持って横展開できる⽅法を確⽴したい ‧ぜひ⼀緒に知⾒交換させてください!
4 まとめ
まとめ 中央データチームのボトルネックの解消には2つのアプローチがありそう ‧技術: データコントラクト駆動なデータ基盤 ‧組織: ドメインチームによるデータプロダクトの開発‧運⽤体制の構築 ビッグバン的な変化は成功確度が低くハレーションも起きやすいので、⼩さく検 証を積み重ねていこう
https://hrmos.co/pages/timee/jobs/1682251404118319115 データ基盤を通して、プロダクトと組織の成⻑を⼀緒に⽀えましょう! We're hiring!