Slide 1

Slide 1 text

2024/05/08 chikushi ニアリアルタイムのデータ基盤を構築して 適時性を向上させた話

Slide 2

Slide 2 text

自己紹介 ❏ chikushi ❏ 略歴 ❏ 10年くらいフリーランス、前職AIベンチャー、 ❏ その後2023/4にタイミーにジョイン。 ❏ 現在、タイミーのDRE グループでエンジニアをしてます。 ❏ 福岡在住。趣味は、お酒🍺とゲーム🎮と少し自転車󰣤な ど

Slide 3

Slide 3 text

タイミーの実績 スキマ バイト No.1 ※2024年2月時点 ※1 [調査方法]デスクリサーチ及びヒアリング調査 [調査期間]2021年2月8日~22日 [調査概要]スキマバイトアプリ サービスの実態調査 [調査対象]2020年12月までにサービスを開始しているスキマバイトアプリ10サービス [調査実施]株式会社ショッ パーズアイ ※2 [出典]AppStoreライフスタイルカテゴリーランキング(2021年5月時点) 3 累計求人案件数 ・ダウンロード数 ※1 ※2 導入事業者数 98,000企業 ワーカー数 700万人

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

データ基盤全体像

Slide 9

Slide 9 text

タイミーアプリのデータベースの連携プロセス

Slide 10

Slide 10 text

データの適時性の定義 ここまでの期間(データが生成されデータが 利用可能になるまで) を最短にしたい

Slide 11

Slide 11 text

データ基盤の課題:データの適時性 適時性が低い原因となっている バッチ 処理 バッチ 処理 バッチ 処理

Slide 12

Slide 12 text

適時性が上がることによるメリット 連携がニアリアルタイムになることにより、業務適用できるケースが増える ❏ ユーザの投稿データの監視 ❏ 条件を満たさないマッチングのチェック・キャンセル業務 ❏ 機械学習に適用することにより精度向上 などなど

Slide 13

Slide 13 text

他にもこんな課題が...

Slide 14

Slide 14 text

データ基盤の課題:データの正確性

Slide 15

Slide 15 text

データ基盤の課題:データの正確性 0:00時点の データが 連携される 3:50時点の データが 連携される 3時間50分の間に更新されたデータは整合性がとれなくなる

Slide 16

Slide 16 text

embulkの運用保守作業 ❏ embulkのインフラの監視 ❏ embulkのインフラのspec調整・メンテナンス ❏ embulkのコードの保守 ❏ 起動間隔の調整 など データ基盤の課題:運用保守面 地味に大変...可能なら減らしていきたい...

Slide 17

Slide 17 text

2 ソリューション

Slide 18

Slide 18 text

ソリューション 初期案 決定案

Slide 19

Slide 19 text

DatastreamとCDCについて 出典:https://cloud.google.com/datastream?hl=ja

Slide 20

Slide 20 text

❏ 基本的なDDL・DMLを追跡して、ニアリアルタイムで連 携してくれる ❏ truncateなど一部追跡してくれないものもあり ❏ at least onceを保証 ❏ DataSourceへのConnectionエラーが発生しても、自動修 復し、連携が途切れたところから再開してくれる ❏ バックフィルを実施することで、全データを連携しなおす ことができる Datastreamの機能説明

Slide 21

Slide 21 text

3 実際のアーキテクチャ

Slide 22

Slide 22 text

実際のアーキテクチャ

Slide 23

Slide 23 text

実際のアーキテクチャ extractionの ツールを embulkから Datastreamへ

Slide 24

Slide 24 text

実際のアーキテクチャ dbtの実テーブ ルをviewに 変更

Slide 25

Slide 25 text

4 実際に運用してみて

Slide 26

Slide 26 text

運用してみて:適時性 数時間~1日 15分前後

Slide 27

Slide 27 text

運用してみて:正確性 最大4~1日のデータのずれ 数時間単位の 大きなずれはなくなった

Slide 28

Slide 28 text

運用してみて:運用保守面 ❏ embulkのインフラの監視 ❏ embulkのインフラのspec調整 ・メンテナンス ❏ embulkのコードの保守 ❏ 起動間隔の調整 など ❏ Datastreamのインフラの監視 など

Slide 29

Slide 29 text

❏ Datastream自体がブラックボックス ❏ 何かトラブルが発生してもGoogleが対応してくれる のを待つしかない 運用してみて:課題 コンソールからもバックフィル以外にできることがない...

Slide 30

Slide 30 text

❏ 完全性を確認することが難しくなった 運用してみて:課題 旧データ基盤では、DataLakeのデータとDataSourceのデータを比較することで完全性を確認できた

Slide 31

Slide 31 text

積極採用中です! https://hrmos.co/pages/timee/jobs/1682251404118319115 DREもアナリティクスエンジニアも募集中です! ぜひお力をお貸しください!