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.5k
アジリティの高いデータ基盤を目指して
大規模データの負債解消への道のり 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
タイミーにおけるデータ活用の未来
ttccddtoki
0
33
急成長する組織を支えるデータ基盤のこれまで、これから
ttccddtoki
6
710
DMBOKを参考にしたデータマネジメントの取り組み
ttccddtoki
6
2.5k
dbt_Cloudとdbt_Core併用の試み
ttccddtoki
3
1.3k
データ品質を重視したデータ基盤プロダクト開発
ttccddtoki
8
2.3k
タイミーの未来を支えるデータ基盤プロダクト
ttccddtoki
1
750
datatech-jp Casual Talks #3
ttccddtoki
0
1k
Lookerとdbtの共存
ttccddtoki
1
1.4k
[輪読会]実践的データ基盤への処方箋
ttccddtoki
0
270
Other Decks in Technology
See All in Technology
エンジニアリングマネージャー視点での、自律的なスケーリングを実現するFASTという選択肢 / RSGT2025
yoshikiiida
4
3.3k
能動的ドメイン名ライフサイクル管理のすゝめ / Practice on Active Domain Name Lifecycle Management
nttcom
0
340
MasterMemory v3 最速確認会
yucchiy
0
340
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
2
260
コロプラのオンボーディングを採用から語りたい
colopl
5
690
🌏丸い地球を効率的に平たくする 〜🗺️地図の幾何学とWeb地図技術〜
syotasasaki593876
0
120
アジャイルチームが変化し続けるための組織文化とマネジメント・アプローチ / Agile management that enables ever-changing teams
kakehashi
3
3k
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
Building Scalable Backend Services with Firebase
wisdommatt
0
110
Amazon Q Developerで.NET Frameworkプロジェクトをモダナイズしてみた
kenichirokimura
1
180
デジタルアイデンティティ技術 認可・ID連携・認証 応用 / 20250114-OIDF-J-EduWG-TechSWG
oidfj
2
490
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Navigating Team Friction
lara
183
15k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
950
Scaling GitHub
holman
459
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
The Invisible Side of Design
smashingmag
299
50k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
2
160
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