Slide 1

Slide 1 text

機密・専有情報 株式会社Luupによる個別の明示的な承諾を得ることなく、この資料を使用することを固く禁じます。 株式会社Luup 河野匠真 2024-03-26 位置情報データをコスト最適化しつつ 分析に活かすための データ管理と運用方法について

Slide 2

Slide 2 text

Luup, Inc. - Confidential and Proprietary 2 Speaker COO室 Data Team Data Engineer 河野 匠真 • 2022年 Luupに入社 • データ基盤の構築から運用、整備 • データ基盤の0→1開発が完了し、直近では データガバナンス周りの強化を行っている

Slide 3

Slide 3 text

概要 Company


Slide 4

Slide 4 text

Luup, Inc. - Confidential and Proprietary 4 提供サービス「LUUP」 アプリ内で好きな電動マイクロモビリティを選択し、 好きなポートで乗り降りできる シェアサービス 専用アプリをダウンロード。 利用登録後、ライドしたいポート を探します。 STEP1
 STEP2
 STEP3
 STEP4
 ポートを見つけて、電動キック ボードや電動アシスト自転車を 選びます。 車両のQRコードを読み取り ロックを解除します。 降りるポートを予約、ライド開始。

Slide 5

Slide 5 text

Luup, Inc. - Confidential and Proprietary 5 現在は2種類の車両を提供しており、将来的にはユニバーサルな車両を構想 研究開発中の車両イメージ 全年齢に対応した、安心・安全でユニバーサルな車両 電動キックボード (特定小型原付) 電動アシスト自転車 超少子高齢化の中、ワンマイルの移動手段が 不十分であることによる買い物難民の増加や 高齢者の自動車事故が課題となっていく中で このワンマイルを結ぶための取組みは不可欠です。 全世代が安心・安全に使えるモビリティの 研究開発を進めていきます Luupが目指す将来像 ※開発イメージ 多様なニーズに応えるべく、 電動アシスト自転車と電動キックボードを 用いてサービス提供中

Slide 6

Slide 6 text

Luup, Inc. - Confidential and Proprietary 6 展開エリア 全国ポート数
 6,400
 箇所以上
 展開都市
 東京
 横浜
 神戸
 京都
 大阪
 名古屋
 宇都宮
 東京
 大阪
 横浜
 京都
 名古屋
 神戸
 宇都宮
 ※2024年3月時点
 広島
 仙台
 福岡
 ※2024年2月28日リリース
 ※2024年3月27日リリース
 仙台


Slide 7

Slide 7 text

データの種類 Data Type


Slide 8

Slide 8 text

Luup, Inc. - Confidential and Proprietary 8 データの種類 ユーザー向けアプリ 
 ● ユーザー ● 位置情報 ● 走行(位置情報) ● 決済 ● ポート ● 車両 ● 返却車両画像 etc 車両
 ● 位置情報 ● 乗車速度 ● 制限速度 ● PDOP(位置情報精度低下率) ● HDOP(水平精度低下率) ● VDOP(垂直精度低下率) ● 移動距離 ● バッテリー残量 ● 転倒フラグ ● 歩道走行モードフラグ etc

Slide 9

Slide 9 text

Luup, Inc. - Confidential and Proprietary 9 データの種類 ユーザー向けアプリ 
 ● ユーザー ● 位置情報 ● 走行(位置情報) ● 決済 ● ポート ● 車両 ● 返却車両画像 etc 車両
 ● 位置情報 ● 乗車速度 ● 制限速度 ● PDOP(位置情報精度低下率) ● HDOP(水平精度低下率) ● VDOP(垂直精度低下率) ● 移動距離 ● バッテリー残量 ● 転倒フラグ ● 歩道走行モードフラグ etc

Slide 10

Slide 10 text

位置情報データ 取得方法について How to get


Slide 11

Slide 11 text

Luup, Inc. - Confidential and Proprietary 11 位置情報データの取得方法について ユーザー向けアプリ 
 ● ライド中 = ユーザーが乗車している時 車両
 ● ライド中 = ユーザーが乗車している時 ● 非ライド中 = 誰も乗車していない時 取得タイミング
 取得頻度
 ● ライド中 =高頻度 ● ライド中 =高頻度 ● 非ライド中 =低頻度 格納先


Slide 12

Slide 12 text

Luup, Inc. - Confidential and Proprietary 12 位置情報データの取得方法について ユーザー向けアプリ 
 ● ライド中 = ユーザーが乗車している時 車両
 ● ライド中 = ユーザーが乗車している時 ● 非ライド中 = 誰も乗車していない時 取得タイミング
 取得頻度
 ● ライド中 =高頻度 ● ライド中 =高頻度 ● 非ライド中 =低頻度 格納先


Slide 13

Slide 13 text

Luup, Inc. - Confidential and Proprietary 13 位置情報データの取得方法について ライド終了
 ライド開始
 v ..., "routePoints":[{"location":{"_latitude": xxxx,"_longitude":xxxx},"timeStamp": {"_seconds":xxxx,"_nanoseconds":x xxx}},...], ... ..., "routePoints":[{"location":{"_latitude": xxxx,"_longitude":xxxx},"timeStamp": {"_seconds":xxxx,"_nanoseconds":x xxx}},...], ... 1レコードずつ追加されていく 


Slide 14

Slide 14 text

当初の課題 Issue


Slide 15

Slide 15 text

Luup, Inc. - Confidential and Proprietary 15 当初の課題 分析・活用するためには高いコストをかける必要がある

Slide 16

Slide 16 text

Luup, Inc. - Confidential and Proprietary 16 当初の課題 データ量が多すぎる スキャンコスト ● ある日のあるユーザーのライド経路を見たいだけでも、多くのスキャン量が必要だった ● ライド実績だけを見たい場合(経路以外)でも同様

Slide 17

Slide 17 text

Luup, Inc. - Confidential and Proprietary 17 当初の課題 ● Source 過去
 firestore_export. rides_raw Data Warehouse dwh.rides_latest Data mart tableA tableB tableC ● ライド実績とライド経路(位置情報)全てを含んだDWHテーブル「rides_latest」を作成 ○ ライド実績でも経路でも数百GB~数TBのスキャン量が必要 過去3日分を毎日取得しMerge

Slide 18

Slide 18 text

Luup, Inc. - Confidential and Proprietary 18 当初の課題 スキャン量 ライ ド 数 ※数値はあくまで仮の数値であり、正値ではない 5,000 200GB 50,000 2TB dwh rides_latestのスキャン量推移 500,000 20TB

Slide 19

Slide 19 text

Luup, Inc. - Confidential and Proprietary 19 当初の課題 いい解決案が見つからず・・・ 現状は大丈夫だからその時に考えよう・・・

Slide 20

Slide 20 text

Luup, Inc. - Confidential and Proprietary 20 当初の課題 いい解決案が見つからず・・・ 現状は大丈夫だからその時に考えよう・・・

Slide 21

Slide 21 text

Luup, Inc. - Confidential and Proprietary 21 当初の課題 ライドデータは会社を成長させるための最重要データ 手のつけられない程の負債になる前にコスト最適化を検討

Slide 22

Slide 22 text

対応方法 How to respond


Slide 23

Slide 23 text

Luup, Inc. - Confidential and Proprietary 23 対応方法 ● 1. ライド終了時にライド経路の位置情報データのみをBigQueryへ送る 2. ライド経路の位置情報を除いたライド実績のみ見れるDWHテーブルを作成す る

Slide 24

Slide 24 text

Luup, Inc. - Confidential and Proprietary 24 対応方法 ● Source 過去(再掲)
 firestore_export. rides_raw Data Warehouse dwh.rides_latest Data mart tableA tableB tableC ● ライド実績とライド経路(位置情報)全てを含んだDWHテーブル「rides_latest」を作成 ○ ライド実績でも経路でも数百GB~数TBのスキャン量が必要 過去3日分を毎日取得しMerge

Slide 25

Slide 25 text

Luup, Inc. - Confidential and Proprietary 25 対応方法 ● 現在
 firestore_export. rides_raw Data Lake datalake.except_route points_rides_raw Server app_log. rides_routepoints Source Data Warehouse dwh.rides_latest dwh. rides_routepoints Data mart tableA tableB tableC ① ② ● ライド実績とライド経路(位置情報)を分けてDWHテーブルを作成 ○ 数GB程度のスキャン量に削減

Slide 26

Slide 26 text

結果 Result


Slide 27

Slide 27 text

Luup, Inc. - Confidential and Proprietary 27 結果 旧ロジック
 コスト
 新ロジック
 ● 数百GB~数TB ● 数GB 活用レベル
 ● ライド実績はコストかけて抽出 ● ライド経路はコスト懸念でほぼ可視化 / 分析できない、されない ● データ分離、コストが削減されたこと で、多くのメンバーがより手軽に可視化 /分析をするようになる

Slide 28

Slide 28 text

まとめ(教訓) Result


Slide 29

Slide 29 text

Luup, Inc. - Confidential and Proprietary 29 まとめ(教訓) ● ● コストを軽視しない ○ リリース時点では数GBだから問題なくても、数年後には数 TB、数PBになる ○ その時点でOKではなく、長期的にコスト最適化を考える ● 手のつけられない程の負債になる前に対処する

Slide 30

Slide 30 text

https://recruit.luup.sc/ ご清聴ありがとうございました アナリスト / データエンジニア 募集中です 詳細は採用ページをご覧ください

Slide 31

Slide 31 text

No content