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
j-chikushi
November 24, 2024
5
1.6k
ニアリアルタイムのデータ基盤を構築して得られたものと課題
j-chikushi
November 24, 2024
Tweet
Share
Featured
See All Featured
Building Adaptive Systems
keathley
38
2.3k
Navigating Team Friction
lara
183
15k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Raft: Consensus for Rubyists
vanstee
136
6.7k
Optimizing for Happiness
mojombo
376
70k
Practical Orchestrator
shlominoach
186
10k
Rails Girls Zürich Keynote
gr2m
94
13k
Scaling GitHub
holman
458
140k
How to train your dragon (web standard)
notwaldorf
88
5.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
270
GraphQLとの向き合い方2022年版
quramy
44
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Transcript
2024/11/21 chikushi ニアリアルタイムのデータ基盤を構築して 得られたものと課題
自己紹介 ❏ chikushi ❏ 略歴 ❏ 10年くらいフリーランス、前職AIベンチャー ❏ その後2023/4にタイミーにジョイン ❏
現在、タイミーのデータエンジニアリング部 DREチームで データ基盤構築をしてます。 ❏ 福岡在住。趣味は、お酒🍺とゲーム🎮と少し自転車な ど
タイミーの実績 スキマ バイト No.1 3 累計求人案件数 ・ダウンロード数 ※1 ※2 導入事業者数
136,000企業 ワーカー数 900万人 ※1 ※2 [調査方法]インターネット調査 [調査期間]2024 年 2 月 9 日~11 日 [調査概要]スキマバイトアプリサービスの実態調査 [調査委託先]株式会社マクロミル ※3 2024年9月時点 ※4 2024年9月時点 ※4 ※3
4
目次 1. 旧データ基盤と課題 2. ニアリアルタイムデータ基盤の構築 3. ニアリアルデータ基盤の課題 4. リアーキテクチャ
1 旧データ基盤と課題
データ基盤の品質を考えて運用できてますか
データ品質とは 出典:DAMA-DMBOK 完全性 ❏ 必要なデータが全て存在するかどうかを意味する ❏ データソースのデータが漏れなく連携されていること 適時性 ❏ データが使用したい時に使用できる性質
❏ タイミーではデータが生成されてから使用可能になるまでの時間として定義し ている 整合性 ❏ 参照整合性(両方のオブジェクトに含まれる参照キーを介した データオブジェクト間の一貫性) ・・・
旧データ基盤全体像(〜2023/09)
タイミーアプリのデータベースの連携プロセス
旧データ基盤の課題:データの適時性 適時性が低い原因となっている バッチ 処理 バッチ 処理 バッチ 処理
旧データ基盤の課題:データの整合性
データ基盤の課題:データの整合性 0:00時点の データが 連携される 3:50時点の データが 連携される 3時間50分の間に更新されたデータは整合性がとれなくなる
旧データ連携プロセスの品質は... 完全性 ❏ 作成・更新データの転送(4時間ごと)と全データ転送(日次) ❏ 常時完全性が満たされている状況ではなかった 適時性 ❏ 作成・更新データの転送が数時間、全データ転送は1日近 く、適時性は低かった
整合性 ❏ 直列にテーブルをバッチ転送をしていたので、テーブル間 の整合性が取れてなかった
2 ニアリアルタイムの データ基盤の構築
DatastreamとCDCについて 出典:https://cloud.google.com/datastream?hl=ja
❏ 基本的なDDL・DMLを追跡して、ニアリアルタイムで連 携してくれる ❏ truncateなど一部追跡してくれないものもあり ❏ at least onceを保証 ❏
DataSourceへのConnectionエラーが発生しても、自動修 復し、連携が途切れたところから再開してくれる ❏ バックフィルを実施することで、全データを連携しなおす ことができる Datastreamの機能説明
実際のアーキテクチャ
実際のアーキテクチャ ELのツールを embulkから Datastreamへ
実際のアーキテクチャ dbtで生成するテーブ ルを 実テーブルからview に変更
適時性がどうなったか 数時間~1日 15分前後
整合性がどうなったか 最大4h~1日のデータのずれ 数時間単位の 大きなずれはなくなった
結果ニアリアルタイムデータ基盤の品質は... 完全性 ❏ Datastreamがat least onceを保証 ❏ 後段で重複排除することで、データの完全性を保証 適時性 ❏
CDCによるデータ転送により15分前後まで短縮 整合性 ❏ 整合性がほぼ取れるようになった めでたし、めでたし☺
結果ニアリアルタイムデータ基盤の品質は... 完全性 ❏ Datastreamがat least onceを保証 ❏ 後段で重複排除することで、データの完全性を保証 適時性 ❏
CDCによるデータ転送により15分前後まで短縮 整合性 ❏ 整合性がほぼ取れるようになった と思っていたが...
3 ニアリアルデータ基盤の 課題
❏ 運用の中で、データが送られず欠損しているケースが発生 ❏ バックフィルで対応していたが、その間に連携されたデータが欠 損していたことが発覚 ❏ 原因は不明で、GoogleCloudに問い合わせ中... 課題1 Datastreamのat least
onceが保証されない 出典:https://cloud.google.com/datastream/docs/faq?hl=ja
課題2 Datastreamが不安定 ❏ 今年の後半ごろから、Datastreamが非常に不安定になる ❏ 最大で3時間以上の機能停止、その後自動で復旧 ❏ その後も数分から1h時間弱の間で頻繁に機能停止と復旧を繰り返 し非常に不安定な状況に...
長期間運用してきた結果 ニアリアルタイムデータ基盤の品質は... 完全性 ❏ Datastreamがat least onceを保証 ❏ 後段で重複排除することで、データの完全性を保証 ❏
保証してくれてませんでした ❏ 完全性が保証されてないかを確認することも難しい 適時性 ❏ CDCによるデータ転送により15分前後まで短縮 ❏ 非常に不安定で状況により数時間かかる 整合性 ❏ 整合性がほぼ取れるようになった ❏ ただ、不安定な中この品質も下がっている可能性あり 完全性に関しては、検知も難しくなり、 以前より悪化したとも言える状況となった ?
4 リアーキテクチャ
ユースケースの整理 ❏ DREチームで社内のユースケースの整理を実施 ❏ 結果適時性が求められる業務より、完全性が求められる業務の方が 多かった ❏ 分析目的以外の業務利用がいつの間にか増えていた
検証・議論した結果 ❏ CDCで完全性を保証できるか検証したが、結果難しいと判断
検証・議論した結果 ❏ 短期的には完全性を担保できる基盤を構築 ❏ 適時性のユースケースもサポート ❏ 長期的には適時性データ基盤の連携方法も再度検討していく
❏ データ基盤のユースケースをちゃんと定義することが大事 ❏ ユースケースによって、求められるデータの品質が決ま る ❏ それによって求められる技術も変わってくる ❏ 現時点のDatastreamは、完全性を保証しないユースケース のみしか利用できず、実用に耐えないという印象
まとめ
積極採用中です! https://hrmos.co/pages/timee/jobs/1682251404118319115 DREもアナリティクスエンジニアも募集中です! ぜひお力をお貸しください!