Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
6
660
DMBOKを参考にしたデータマネジメントの取り組み
ttccddtoki
6
2.4k
dbt_Cloudとdbt_Core併用の試み
ttccddtoki
3
1.2k
データ品質を重視したデータ基盤プロダクト開発
ttccddtoki
8
2.3k
タイミーの未来を支えるデータ基盤プロダクト
ttccddtoki
1
700
datatech-jp Casual Talks #3
ttccddtoki
0
1k
Lookerとdbtの共存
ttccddtoki
1
1.4k
[輪読会]実践的データ基盤への処方箋
ttccddtoki
0
260
データ基盤品質向上のための一年
ttccddtoki
0
7.8k
Other Decks in Technology
See All in Technology
イノベーショントークから見るクラウド運用の未来を振り返ってみた
nyankotaro
0
350
知らない景色を見に行こう チャンスを掴んだら道が開けたマネジメントの旅 / Into the unknown~My management journey~
kakehashi
10
1.2k
Kubernetesトラフィックルーティング徹底解説/Kubernetes-traffic-deep-dive
oracle4engineer
PRO
3
350
re:Invent2024のIaC周りのアップデート&セッションの共有/around-re-invent-2024-iac-updates
tomoki10
0
620
EthernetベースのGPUクラスタ導入による学びと展望
lycorptech_jp
PRO
0
590
突き破って学ぶコンテナセキュリティ/container-breakout-cncj-lt
mochizuki875
6
1.1k
2000年てづくりキーボードの旅
tagomoris
1
170
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
3.8k
データパイプラインをなんとかした話 / Improving the Data Pipeline in IVRy
mirakui
0
110
「品質とスピードはトレード・オンできる」に向き合い続けた2年半を振り返る / Quality and speed can be traded on.
mii3king
0
730
Kubernetesを知る
logica0419
18
5.3k
最近のUplift Modeling手法にRでトライ
hskksk
0
130
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
110
49k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Visualization
eitanlees
145
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Adopting Sorbet at Scale
ufuk
73
9.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
A better future with KSS
kneath
238
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
410
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