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
2k
ニアリアルタイムのデータ基盤を構築して得られたものと課題
j-chikushi
November 24, 2024
Tweet
Share
Featured
See All Featured
A Tale of Four Properties
chriscoyier
157
23k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Building Your Own Lightsaber
phodgson
104
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Practical Orchestrator
shlominoach
186
10k
Producing Creativity
orderedlist
PRO
343
39k
What's in a price? How to price your products and services
michaelherold
244
12k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Building an army of robots
kneath
302
45k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
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もアナリティクスエンジニアも募集中です! ぜひお力をお貸しください!