Upgrade to Pro — share decks privately, control downloads, hide ads and more …

位置情報データをコスト最適化しつつ 分析に活かすための データ管理と運用方法について

位置情報データをコスト最適化しつつ 分析に活かすための データ管理と運用方法について

Takuma Kouno

November 10, 2024
Tweet

More Decks by Takuma Kouno

Other Decks in Technology

Transcript

  1. Luup, Inc. - Confidential and Proprietary 2 Speaker COO室 Data

    Team Data Engineer 河野 匠真 • 2022年 Luupに入社 • データ基盤の構築から運用、整備 • データ基盤の0→1開発が完了し、直近では データガバナンス周りの強化を行っている
  2. Luup, Inc. - Confidential and Proprietary 4 提供サービス「 LUUP」 アプリ内で好きな電動マイクロモビリティを選択し、

    好きなポートで乗り降りできる シェアサービス 専用アプリをダウンロード。 利用登録後、ライドしたいポー トを探します。 STEP1
 STEP2
 STEP3
 STEP4
 ポートを見つけて、電動キック ボードや電動アシスト自転車を 選びます。 車両のQRコードを読み取り ロックを解除します。 降りるポートを予約、ライド開始。
  3. Luup, Inc. - Confidential and Proprietary 5 現在は2種類の車両を提供しており、将来的にはユニバーサルな車両を構想 研究開発中の車両イメージ 全年齢に対応した、安心・安全でユニバーサルな車両

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


    箇所以上 
 展開都市
 東京
 横浜
 神戸
 京都
 大阪
 名古屋
 宇都宮
 東京
 大阪
 横浜
 京都
 名古屋 
 神戸
 宇都宮 
 ※2024年3月時点
 広島
 仙台
 福岡
 ※2024年2月28日リリース
 ※2024年3月27日リリース
 仙台

  5. Luup, Inc. - Confidential and Proprietary 8 データの種類 ユーザー向けアプリ 


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


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

    ライド中 = ユーザーが乗車している時 車両
 • ライド中 = ユーザーが乗車している時 • 非ライド中 = 誰も乗車していない時 取得タイミング 
 取得頻度 
 • ライド中 =高頻度 • ライド中 =高頻度 • 非ライド中 =低頻度 格納先 

  8. Luup, Inc. - Confidential and Proprietary 12 位置情報データの取得方法について ユーザー向けアプリ
 •

    ライド中 = ユーザーが乗車している時 車両
 • ライド中 = ユーザーが乗車している時 • 非ライド中 = 誰も乗車していない時 取得タイミング 
 取得頻度 
 • ライド中 =高頻度 • ライド中 =高頻度 • 非ライド中 =低頻度 格納先 

  9. 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レコードずつ追加されていく 

  10. Luup, Inc. - Confidential and Proprietary 16 当初の課題 データ量が多すぎる スキャンコスト

    • ある日のあるユーザーのライド経路を見たいだけでも、多くのスキャン量が必要だった • ライド実績だけを見たい場合 (経路以外)でも同様
  11. 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
  12. Luup, Inc. - Confidential and Proprietary 18 当初の課題 スキャン量 ラ

    イド 数 ※数値はあくまで仮の数値であり、正値ではない 5,000 200GB 50,000 2TB dwh rides_latestのスキャン量推移 500,000 20TB
  13. Luup, Inc. - Confidential and Proprietary 23 対応方法 • 1.

    ライド終了時にライド経路の位置情報データのみを BigQueryへ送る 2. ライド経路の位置情報を除いたライド実績のみ見れる DWHテーブルを作成 する
  14. 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
  15. 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程度のスキャン量に削減
  16. Luup, Inc. - Confidential and Proprietary 27 結果 旧ロジック
 コスト

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

    コストを軽視しない ◦ リリース時点では数GBだから問題なくても、数年後には数 TB、数PBになる ◦ その時点でOKではなく、長期的にコスト最適化を考える • 手のつけられない程の負債になる前に対処する