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
アジリティの高いデータ基盤を目指して
大規模データの負債解消への道のり 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.2k
タイミーのデータ活用を支えるdbt Cloud導入とこれから
ttccddtoki
2
1.4k
タイミーにおけるデータ活用の未来
ttccddtoki
0
450
急成長する組織を支えるデータ基盤のこれまで、これから
ttccddtoki
6
900
DMBOKを参考にしたデータマネジメントの取り組み
ttccddtoki
6
3.2k
dbt_Cloudとdbt_Core併用の試み
ttccddtoki
3
1.6k
データ品質を重視したデータ基盤プロダクト開発
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
VespaのParent Childを用いたフィードパフォーマンスの改善
taking
0
170
[Oracle TechNight#99] 生成AI時代のAI/ML入門 ~ AIとオラクルデータベースの関係 (後半)
oracle4engineer
PRO
1
160
AI活用時代の事業判断高度化を導くエンジニアリング基盤 / 20260424 Atsushi Funahashi
shift_evolve
PRO
2
120
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
360
サービスの信頼性を高めるため、形骸化した「プロダクションミーティング」を立て直すまでの取り組み
stefafafan
0
140
AndroidアプリとCopilot Studioの統合
nakasho
0
190
COBOL婆さんの伝説
poropinai1966
0
130
AI와 협업하는 조직으로의 여정
arawn
0
570
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
160
MySQL 9.7がやってきた ~これまでのあらすじと基本情報~ @ 日本MySQLユーザ会会2026年04月 / mysql97-yattekita
sakaik
0
150
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
270
アクセシビリティはすべての人のもの
tomokusaba
0
210
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
150
Testing 201, or: Great Expectations
jmmastey
46
8.1k
A Tale of Four Properties
chriscoyier
163
24k
The Curse of the Amulet
leimatthew05
1
12k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
360
Speed Design
sergeychernyshev
33
1.6k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Skip the Path - Find Your Career Trail
mkilby
1
110
The SEO identity crisis: Don't let AI make you average
varn
0
450
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Design in an AI World
tapps
1
200
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