Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
2024/11/21 chikushi ニアリアルタイムのデータ基盤を構築して 得られたものと課題
Slide 2
Slide 2 text
自己紹介 ❏ chikushi ❏ 略歴 ❏ 10年くらいフリーランス、前職AIベンチャー ❏ その後2023/4にタイミーにジョイン ❏ 現在、タイミーのデータエンジニアリング部 DREチームで データ基盤構築をしてます。 ❏ 福岡在住。趣味は、お酒🍺とゲーム🎮と少し自転車な ど
Slide 3
Slide 3 text
タイミーの実績 スキマ バイト No.1 3 累計求人案件数 ・ダウンロード数 ※1 ※2 導入事業者数 136,000企業 ワーカー数 900万人 ※1 ※2 [調査方法]インターネット調査 [調査期間]2024 年 2 月 9 日~11 日 [調査概要]スキマバイトアプリサービスの実態調査 [調査委託先]株式会社マクロミル ※3 2024年9月時点 ※4 2024年9月時点 ※4 ※3
Slide 4
Slide 4 text
4
Slide 5
Slide 5 text
目次 1. 旧データ基盤と課題 2. ニアリアルタイムデータ基盤の構築 3. ニアリアルデータ基盤の課題 4. リアーキテクチャ
Slide 6
Slide 6 text
1 旧データ基盤と課題
Slide 7
Slide 7 text
データ基盤の品質を考えて運用できてますか
Slide 8
Slide 8 text
データ品質とは 出典:DAMA-DMBOK 完全性 ❏ 必要なデータが全て存在するかどうかを意味する ❏ データソースのデータが漏れなく連携されていること 適時性 ❏ データが使用したい時に使用できる性質 ❏ タイミーではデータが生成されてから使用可能になるまでの時間として定義し ている 整合性 ❏ 参照整合性(両方のオブジェクトに含まれる参照キーを介した データオブジェクト間の一貫性) ・・・
Slide 9
Slide 9 text
旧データ基盤全体像(〜2023/09)
Slide 10
Slide 10 text
タイミーアプリのデータベースの連携プロセス
Slide 11
Slide 11 text
旧データ基盤の課題:データの適時性 適時性が低い原因となっている バッチ 処理 バッチ 処理 バッチ 処理
Slide 12
Slide 12 text
旧データ基盤の課題:データの整合性
Slide 13
Slide 13 text
データ基盤の課題:データの整合性 0:00時点の データが 連携される 3:50時点の データが 連携される 3時間50分の間に更新されたデータは整合性がとれなくなる
Slide 14
Slide 14 text
旧データ連携プロセスの品質は... 完全性 ❏ 作成・更新データの転送(4時間ごと)と全データ転送(日次) ❏ 常時完全性が満たされている状況ではなかった 適時性 ❏ 作成・更新データの転送が数時間、全データ転送は1日近 く、適時性は低かった 整合性 ❏ 直列にテーブルをバッチ転送をしていたので、テーブル間 の整合性が取れてなかった
Slide 15
Slide 15 text
2 ニアリアルタイムの データ基盤の構築
Slide 16
Slide 16 text
DatastreamとCDCについて 出典:https://cloud.google.com/datastream?hl=ja
Slide 17
Slide 17 text
❏ 基本的なDDL・DMLを追跡して、ニアリアルタイムで連 携してくれる ❏ truncateなど一部追跡してくれないものもあり ❏ at least onceを保証 ❏ DataSourceへのConnectionエラーが発生しても、自動修 復し、連携が途切れたところから再開してくれる ❏ バックフィルを実施することで、全データを連携しなおす ことができる Datastreamの機能説明
Slide 18
Slide 18 text
実際のアーキテクチャ
Slide 19
Slide 19 text
実際のアーキテクチャ ELのツールを embulkから Datastreamへ
Slide 20
Slide 20 text
実際のアーキテクチャ dbtで生成するテーブ ルを 実テーブルからview に変更
Slide 21
Slide 21 text
適時性がどうなったか 数時間~1日 15分前後
Slide 22
Slide 22 text
整合性がどうなったか 最大4h~1日のデータのずれ 数時間単位の 大きなずれはなくなった
Slide 23
Slide 23 text
結果ニアリアルタイムデータ基盤の品質は... 完全性 ❏ Datastreamがat least onceを保証 ❏ 後段で重複排除することで、データの完全性を保証 適時性 ❏ CDCによるデータ転送により15分前後まで短縮 整合性 ❏ 整合性がほぼ取れるようになった めでたし、めでたし☺
Slide 24
Slide 24 text
結果ニアリアルタイムデータ基盤の品質は... 完全性 ❏ Datastreamがat least onceを保証 ❏ 後段で重複排除することで、データの完全性を保証 適時性 ❏ CDCによるデータ転送により15分前後まで短縮 整合性 ❏ 整合性がほぼ取れるようになった と思っていたが...
Slide 25
Slide 25 text
3 ニアリアルデータ基盤の 課題
Slide 26
Slide 26 text
❏ 運用の中で、データが送られず欠損しているケースが発生 ❏ バックフィルで対応していたが、その間に連携されたデータが欠 損していたことが発覚 ❏ 原因は不明で、GoogleCloudに問い合わせ中... 課題1 Datastreamのat least onceが保証されない 出典:https://cloud.google.com/datastream/docs/faq?hl=ja
Slide 27
Slide 27 text
課題2 Datastreamが不安定 ❏ 今年の後半ごろから、Datastreamが非常に不安定になる ❏ 最大で3時間以上の機能停止、その後自動で復旧 ❏ その後も数分から1h時間弱の間で頻繁に機能停止と復旧を繰り返 し非常に不安定な状況に...
Slide 28
Slide 28 text
長期間運用してきた結果 ニアリアルタイムデータ基盤の品質は... 完全性 ❏ Datastreamがat least onceを保証 ❏ 後段で重複排除することで、データの完全性を保証 ❏ 保証してくれてませんでした ❏ 完全性が保証されてないかを確認することも難しい 適時性 ❏ CDCによるデータ転送により15分前後まで短縮 ❏ 非常に不安定で状況により数時間かかる 整合性 ❏ 整合性がほぼ取れるようになった ❏ ただ、不安定な中この品質も下がっている可能性あり 完全性に関しては、検知も難しくなり、 以前より悪化したとも言える状況となった ?
Slide 29
Slide 29 text
4 リアーキテクチャ
Slide 30
Slide 30 text
ユースケースの整理 ❏ DREチームで社内のユースケースの整理を実施 ❏ 結果適時性が求められる業務より、完全性が求められる業務の方が 多かった ❏ 分析目的以外の業務利用がいつの間にか増えていた
Slide 31
Slide 31 text
検証・議論した結果 ❏ CDCで完全性を保証できるか検証したが、結果難しいと判断
Slide 32
Slide 32 text
検証・議論した結果 ❏ 短期的には完全性を担保できる基盤を構築 ❏ 適時性のユースケースもサポート ❏ 長期的には適時性データ基盤の連携方法も再度検討していく
Slide 33
Slide 33 text
❏ データ基盤のユースケースをちゃんと定義することが大事 ❏ ユースケースによって、求められるデータの品質が決ま る ❏ それによって求められる技術も変わってくる ❏ 現時点のDatastreamは、完全性を保証しないユースケース のみしか利用できず、実用に耐えないという印象 まとめ
Slide 34
Slide 34 text
積極採用中です! https://hrmos.co/pages/timee/jobs/1682251404118319115 DREもアナリティクスエンジニアも募集中です! ぜひお力をお貸しください!