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もアナリティクスエンジニアも募集中です! ぜひお力をお貸しください!