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
Toshiki Tsuchikawa
August 19, 2024
Technology
4
1.3k
アジリティの高いデータ基盤を目指して
大規模データの負債解消への道のり Lunch LT での登壇資料
https://findy.connpass.com/event/325973/
Toshiki Tsuchikawa
August 19, 2024
Tweet
Share
More Decks by Toshiki Tsuchikawa
See All by Toshiki Tsuchikawa
DMBOKを参考にしたデータマネジメントの取り組み
ttccddtoki
6
2.1k
dbt_Cloudとdbt_Core併用の試み
ttccddtoki
3
1.1k
データ品質を重視したデータ基盤プロダクト開発
ttccddtoki
8
2.1k
タイミーの未来を支えるデータ基盤プロダクト
ttccddtoki
1
580
datatech-jp Casual Talks #3
ttccddtoki
0
970
Lookerとdbtの共存
ttccddtoki
1
1.3k
[輪読会]実践的データ基盤への処方箋
ttccddtoki
0
240
データ基盤品質向上のための一年
ttccddtoki
0
7.6k
embulk, digdagによるデータ基盤構築
ttccddtoki
5
2k
Other Decks in Technology
See All in Technology
セキュリティ監視の内製化 効率とリスク
mixi_engineers
PRO
7
870
Mocking in Rust Applications
taiki45
1
240
LandingZoneAccelerator と学ぶ 「スケーラブルで安全なマルチアカウントAWS環境」と 私たちにもできるベストプラクティス
maimyyym
1
120
実践的なバグバウンティ入門
scgajge12
4
2.4k
PDF Viewer作成の今までとこれから
hunachi
0
140
React Aria で実現する次世代のアクセシビリティ
ryo_manba
4
990
Estrategias de escalabilidade para projetos web
jessilyneh
2
200
脆弱星に導かれて
nishimunea
1
1.6k
PdMはどのように全てのスピードを上げられるか ~ 非連続進化のための具体的な取り組み ~
sansantech
PRO
1
130
Namespace, Now and Then
tagomoris
0
190
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
4
110
MySQLのあらたしいリリースモデル LTSとIR
sakaik
1
150
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.8k
How GitHub (no longer) Works
holman
310
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
52k
Building Adaptive Systems
keathley
36
2.1k
The Pragmatic Product Professional
lauravandoore
31
6.2k
Optimising Largest Contentful Paint
csswizardry
29
2.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
25
2k
Debugging Ruby Performance
tmm1
72
12k
The Illustrated Children's Guide to Kubernetes
chrisshort
47
48k
Being A Developer After 40
akosma
83
580k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Transcript
2024/08/20 土川稔生 アジリティの高いデータ基盤を目指して @tvtg_24 大規模データの負債解消への道のり Lunch LT
目次 • データ基盤におけるアジリティ • タイミーの事例紹介
自己紹介 土川 稔生 (Tsuchikawa Toshiki) 株式会社タイミーに2020年入社 DRE (Data Reliability Engineering)
チーム 1人目データエンジニアとしてデータ基盤を構築し始める 現在はプロダクトオーナーとして、データ基盤プロダクト作りに 励む
4
5
6
データ基盤におけるアジリティ
アジリティが高いとは ? アジリティは、ユーザーニーズや、ビジネス環境の変更に素早く適応できる柔軟性のことを指す。 アジリティの定義 アジリティ(Agility)は「敏捷性」「素早さ」「機敏さ」を意味する英単語です。IT業界では、シス テムが顧客ニーズやビジネス環境の変化に柔軟且つ迅速に対応できることを指す。 データ基盤におけるアジリティ データ基盤においてアジリティが高いと、DWHのカラム追加・変更や、基盤を構成するツール変更 や導入がしやすくなる。 逆にアジリティが低いと、これらの変更を行うために大きなコストがかかり、日々増加するユー
ザーニーズに対応することが難しくなる。
データ基盤のアジリティを高める難しさ データ基盤は、データ間の複雑な依存関係や、幅広いユースケースのためアジリティが低くなりがち。 これはデータ基盤が大規模になればなるほど、その傾向がある。 複雑な依存関係 データ基盤は、複数データソースの収集、それらを組み合わせた加工 (モデリングなど)をした上で ユーザーに提供されます。これらは複雑になりがちで開発の難易度を向上させる。 ユースケースの認識しづらさ データ基盤はBI・AIなどの活用が想定されるが、ユースケースは様々で幅広く、データ基盤管理 チームで全て把握しておくことは難しい。
大規模データにおいて データ基盤が大規模になればなるほど、データの複雑度、ユースケースは増加するため、アジリ ティを高める難しさは指数関数的に増加する。
タイミーの事例紹介
データ基盤全体図
タイミーの従業員数の増加 タイミーでは、2019年から2023年時点で、従業員数が86人→1000人規模まで増加した。データ基 盤も2019年から構築を始め、この増加に合わせてアジリティを高めるための様々な開発を行った。
負債解消に使っている工数 直近2ヶ月くらいのタスク分類。 負債解消や、依頼、障害対応を50%以下に抑え、ロードマップなどの新規開発に開発工数が使えている
アジリティ向上の大まかなロードマップ 2019 アプリ リリース DWH (BigQuery)へ データ集約 2020 BIツール移行 (Redash
→ Looker) & dbt導入 2021 2022 2023 2024 データモデリング をLookerからdbt へ移行 dbt exposureに よるデータアウ トプットの自動 登録・管理 データコントラクト など
BIツール移行 (Redash → Looker) データ利用者が、正しいデータを素早く利用できるようになることで、 データ活用サイクルを向上させると同時に、データチームのSQL修正コストを下げる アジリティへの課題 BIツールとして、Redashを本番データベースから繋ぐことで、可視化をおこなっていた。しかし、データ利用者がRedash上にク エリを書くため、指標の定義ずれや、SQLのミスによるデータアウトプットの間違いが増加した。そのためデータ利用者は正し いデータを出すために時間がかかり、データを修正する人のコストもかなり高まっていた。
(RedashでAPIログなどの扱いが難しく、セキュリティを担保することも難しかった。) 取り組み内容 RedashをLookerに移行することで、データ利用者がSQLを書かずにデータを扱えるようにした。 アジリティへの効果と振り返り 全社の従業員数が増え、データ利用業務は拡大しているにも関わらず、それらのデータ活用を支えることができてい る。 そのため、データチームが単純なSQL修正業務に仕事が圧迫されることが減り、ビジネスチーム側に入り込みながら データ活用を一緒に取り組めている。 詳細はこちら → タイミーのデータ基盤品質。これまでとこれから。
データ加工・モデリングを Looker, Embulkからdbtへ移行 Looker, Embulkで行っていたデータ加工・モデリングをdbtに統一することで、 データ加工・モデリングの開発生産性を向上させ、データ利用者に利便性の高いデータを提供する アジリティへの課題 データ利用者の利便性のために、データ同士を掛け合わせることであらかじめ分析に使うためのデータをembulkで加 工し、ビジネス指標をLooker上で定義していた。 しかし、複数回に分けてデータの加工を行なったり、複雑なデータモデリングを行なったりするにはEmbulkや
Lookerだと実装が複雑になってしまう。故に、発展的なデータ加工・モデリングをする際のボトルネックになってし まっていた。 取り組み内容 データモデリングの定義をLookerからdbtへ集中させた。 アジリティへの効果と振り返り dbtでデータ加工・モデリングをまとめて管理できることで、コード記述が一覧化され、開発・管理の効率 がかなり向上した。 また、dbt上でデータのリネージュ可視化などでも開発効率が向上することができた。 詳細はこちら → 株式会社タイミーのdbt導入事例
dbt exposureによるデータアウトプットの自動登録・管理 各種BIツールでのデータアウトプットを自動的に登録・管理できるようにすることによって、 データ基盤への修正や、追加開発の生産性を向上させる アジリティへの課題 BIツールで可視化されているダッシュボードや、グラフがどこのデータウェアハウス、データマートを経由して可視化されて いるかわからないため、データウェアハウスや、データマートに対しての開発を行う際の、影響度や変更の工数を測ることが 難しい。 (また、障害などが起こった際に、どこに影響があるのかわからないことで、障害対応で対応漏れが発生したり、適切にデータ 利用ユーザーに報告ができなかった。)
取り組み内容 BIツールで利用されているダッシュボードの参照テーブル情報や、作成者などのメタデータをexposuresを通して、 dbtで自動的に登録、管理できるようにした。 アジリティへの効果と振り返り データ加工・モデリングに対して、変更がある際にどのダッシュボードに影響があるのかを測れることで、変更コス トを見積もることができるようになった。また、実際にダッシュボードを変更する際も作成者に変更を依頼しやすく なり、変更の容易性が向上した。 詳細はこちら → dbt exposureによるデータ基盤アウトプットの登録を自動化しました
これからについて それでも、技術的負債は定期的に溜まっていき、すぐデータチームのアジリティは低下しがちである。 直近のアジリティへの課題 現在、データ基盤を通して、様々な組織・チームで、様々なデータ活用がされている。その中には、データの品質が求められるもの や、リアルタイムであることが求められるものや、逆にそこまで求めないものもある。 これらのデータ利用の要件はデータ基盤の入力データの制約に依存するものである。入力データに意図しないデータ型変更などがあ ると、後段のデータ利用には大きな影響が出てしまう。 このデータを生成する側、利用する側を挟んで、データチームは品質などにおける取り決めをしながら、データ利用を支える必要が ある。データニーズが増えると、取り決めも増えていくためデータチームのスイッチングコスト含め様々なコストを浪費する。 取り組み内容
データコントラクトの実践。 データコントラクトとは、データを生成する側と、データ消費者で利用できるデータに関するAPI定義みたいなも の。これを定義することにより、データの品質の期待値や、管理レベルを擦り合わせることができる。 タイミーでは、データオーナー (データに最も詳しい人) 、データ提供者、データ基盤のリソース、品質のサービスレ ベル、スキーマ構成 などを契約としてステークホルダーと取り決めることで、上の課題の解決を目指している。
その他のアジリティに関する取り組み dbt testの徹底 https://tech.timee.co.jp/entry/2024/06/25/141634 詳細はこちら → dbt exposureによるデータ基盤アウトプットの登録を自動化しました SLI, SLO, SLA運用
https://speakerdeck.com/ttccddtoki/detapin-zhi-wozhong-shi-sitadetaji-pan-purodakut okai-fa スクラムによるアジャイル開発 https://speakerdeck.com/ttccddtoki/datatech-jp-casual-talks-number-3
まとめ
まとめ データ基盤開発のアジリティを高めることが重要 データ基盤におけるアジリティは、ユーザーニーズやビジネス環境の変化に柔軟且つ迅速に対応できる能力を指し、これを高め ることは非常に難しい。 アジリティが低いと、これらの変更を行うために大きなコストがかかり、日々増加するユーザーニーズに対応することが難しく なる。 タイミーでの取り組み事例の一部 • BIツール移行 (Redash
→ Looker) • データ加工・モデリングをLooker, Embulkからdbtへ移行 • dbt exposureによるデータアウトプットの自動登録・管理 など 今後の展望 データニーズが多くなればなるほど、技術的負債は溜まっていき、すぐデータチームのアジリティは低下しがちである。 データコントラクトなどの、アジリティを高めるための取り組みをどんどん行っていきながら、データ基盤開発をスケールさせ ていきたい。
積極的に採用中です! まだまだ道半ばなのでお力を貸してください!!! https://hrmos.co/pages/timee/jobs/1682251404118319115