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
1.9k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アジリティの高いデータ基盤を目指して
大規模データの負債解消への道のり Lunch LT での登壇資料
https://findy.connpass.com/event/325973/
Toshiki Tsuchikawa
August 19, 2024
More Decks by Toshiki Tsuchikawa
See All by Toshiki Tsuchikawa
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
8
4.3k
タイミーのデータ活用を支えるdbt Cloud導入とこれから
ttccddtoki
2
1.5k
タイミーにおけるデータ活用の未来
ttccddtoki
0
520
急成長する組織を支えるデータ基盤のこれまで、これから
ttccddtoki
6
930
DMBOKを参考にしたデータマネジメントの取り組み
ttccddtoki
6
3.4k
dbt_Cloudとdbt_Core併用の試み
ttccddtoki
3
1.7k
データ品質を重視したデータ基盤プロダクト開発
ttccddtoki
8
2.6k
タイミーの未来を支えるデータ基盤プロダクト
ttccddtoki
1
1.1k
datatech-jp Casual Talks #3
ttccddtoki
0
1.2k
Other Decks in Technology
See All in Technology
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
490
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
210
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
250
サイバー捜査員研修(後半)
nomizone
1
830
FDEの心得
noriakioji
0
500
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
180
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
240
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
240
TypeScript入門 2026
recruitengineers
PRO
3
530
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
8
2.4k
システム思考で問題に対処する
yussak
0
220
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.2k
How to build a perfect <img>
jonoalderson
1
5.9k
New Earth Scene 8
popppiees
3
2.5k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Darren the Foodie - Storyboard
khoart
PRO
3
3.6k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
450
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
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