Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ナビタイムジャパンに集まる移動ビッグデータの分析基盤
Search
NAVITIME JAPAN
PRO
July 27, 2020
Technology
0
170
ナビタイムジャパンに集まる移動ビッグデータの分析基盤
2020/07/27開催されたTech-on MeetUp Online#02「もしエンタープライズのエンジニアがデータ分析をやることになったら」にて発表した資料です。
NAVITIME JAPAN
PRO
July 27, 2020
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
2
150
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
19
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
2k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.1k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
150
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.1k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.2k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
7
5k
こうしてふりかえりは終わってしまった / A Demise of a retrospective
navitimejapan
PRO
44
28k
Other Decks in Technology
See All in Technology
『GRANBLUE FANTASY Relink』キャラクターの魅力を支えるリグ・シミュレーション制作事例
cygames
0
170
開発生産性を始める前に開発チームができること / optim-improve-development-productivity.pdf
optim
0
150
『GRANBLUE FANTASY Relink』ソフトウェアラスタライザによる実践的なオクルージョンカリング
cygames
0
180
Next.js のページ遷移を全力で止める
ypresto
9
3.5k
GC24 Recap: Interface Internals
task4233
0
260
Jetpack Compose Modifier 徹底解説 / Jetpack Compose Modifier
wiroha
0
210
たった1人からはじめる【Agile Community of Practice】~ソース原理とFearless Changeを添えて~
ktc_corporate_it
1
510
Mocking in Rust Applications
taiki45
2
420
再考 アクターモデル/ reconsider actor model
ytake
0
370
LLVM/ASMを使った有限体の高速実装
herumi
0
120
Analytics-Backed App Widget Development - Served with Jetpack Glance
miyabigouji
0
630
Developer Experienceを向上させる基盤づくりの取り組み事例集
coconala_engineer
0
160
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Optimizing for Happiness
mojombo
375
69k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Adopting Sorbet at Scale
ufuk
73
8.9k
It's Worth the Effort
3n
182
27k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Designing for humans not robots
tammielis
248
25k
Transcript
©NAVITIME JAPAN ナビタイムジャパンに集まる 移動ビッグデータの分析基盤 2020/7/27 株式会社ナビタイムジャパン 新立 和広
©NAVITIME JAPAN 自己紹介 新立 和広(しんたて かずひろ) 株式会社ナビタイムジャパン • 2009年入社 •
2014年~2017年までログデータ分析業務に従事 • 現在はデータ分析基盤の設計・構築に従事
©NAVITIME JAPAN 発表内容 • 会社紹介 • ログデータの活用事例 • データ分析基盤の構成 •
ログデータの収集 • 分析用データへの加工 • 分析系サービスの活用
©NAVITIME JAPAN 会社紹介
©NAVITIME JAPAN 会社概要 事業内容 ナビゲーションサイト・アプリの運営・開発 経路探索エンジンのライセンス事業 法人向け経路付地図配信ASP事業 ビジネスナビタイム事業 法人向けソリューション事業 メディア事業
テレマティクス事業 交通コンサルティング事業 海外事業 インバウンド事業 トラベル事業 MaaS事業 会社名 株式会社ナビタイムジャパン 設立 2000年3月 社員数 約500名(2019年3月現在) 5 ナビタイムジャパンの南青山オフィス
©NAVITIME JAPAN あらゆる移動手段、移動のシーンへの対応を目指しています ナビタイムジャパンのコンシューマサービス一覧 有料課金ユーザー数 約480万人 月間ユニークユーザー数 約5,100万人 ※2018年12月末時点 ※2018年12月末時点
6
©NAVITIME JAPAN サービスから集まるログデータ コンシューマサービス NAVITIME 乗換NAVITIME バスNAVITIME カーナビタイム トラックカーナビ 自転車NAVITIME
ツーリングサポーター ➢ 施策の検討 ➢ サービスへの活用 ➢ データ活用ビジネス 移動実績 検索履歴 口コミ情報 匿名化 抽出 分析
©NAVITIME JAPAN ログデータの活用事例
©NAVITIME JAPAN サービスへの活用 NT-FILTER 渋滞予測 ユーザーが走行した道路を地図に反映 道路・時間帯別の混雑度を予測
©NAVITIME JAPAN サービスへの活用 運転傾向に合わせた「推奨ルート」 Travel レコメンド 類似のユーザの検索履歴を参考に お勧めの観光地を提案 過去の走行データを分析し 運転傾向に合わせた
推奨ルートを提案
©NAVITIME JAPAN サービスへの活用 1列車・1停車駅ごとの混雑度を予測 電車・駅混雑予測 混雑エリアマップ 現在の混雑状況を9段階で地図上に表示
©NAVITIME JAPAN データ活用ビジネス:交通コンサルティング事業 信号制御分析システム用 民間プローブデータ提供 混雑予報をテレビ提供 2015年度『データなび』他 2016年度『ニュースチェック11』他 平成26年度 訪日外国人動向調査事業
ゴールデンルートにおける移動の分析 および各都市間での移動を分析
©NAVITIME JAPAN データ活用ビジネス:交通コンサルティング事業 ウェブ上で簡単に道路交通に関する各種分析ができるWeb分析システム リンク旅行速度 断面交通流 プロファイリング 道路分析システム『道路プロファイラー』 区間所要時間
©NAVITIME JAPAN 新型コロナウィルスの影響分析 http://consulting.navitime.biz/example/2020/07/03/post_6.html 緊急事態宣言による交通量および目的地検索の変化を分析
©NAVITIME JAPAN データ分析基盤の構成
©NAVITIME JAPAN データ分析基盤の全体像 データセン ター データ分析環境 データレイク 分析用データ EMR EMR
オフィス GCP AWS Athena Web サイト Glue Glue Data Catalog アプリケーション
©NAVITIME JAPAN データ分析基盤の全体像 データセン ター データ分析環境 データレイク 分析用データ EMR EMR
オフィス GCP AWS Athena Web サイト Glue Glue Data Catalog アプリケーション 収集 加工 分析
©NAVITIME JAPAN ログデータの収集
©NAVITIME JAPAN ログデータの収集 データセン ター データ分析環境 データレイク 分析用データ EMR EMR
オフィス GCP AWS Athena Web サイト Glue Glue Data Catalog アプリケーション 収集
©NAVITIME JAPAN 分析目的で収集・保管しているデータ • サーバーのログ • アクセスログ • 一部のレスポンスデータ(経路情報) など
• ユーザーの行動・操作ログ • 位置情報 • アプリケーション上でのユーザ操作 など • データベースからの定期抽出 • ユーザデータ • マスターデータ • 地図データ • 施設・住所データ など
©NAVITIME JAPAN サーバーログの収集 fluentd – Kinesis Data Streamsによる収集 • 耐障害性やスループット向上
• 用途別の後続処理 AWS GCP データセンター データ分析環境 Kinesis Data Streams Lambda Kinesis Client データレイク リアルタイム分析 一定間隔で保存 ・生のテキストデータ ・適切なサイズ(数MB~100MB)に集約 ・gzip圧縮
©NAVITIME JAPAN 行動・操作ログの収集 Amazon Cognitoで認証し、 Web/モバイルアプリからKinesisに直接送信 Cognito Kinesis Data Streams
Kinesis Data Firehose データレイク 一定間隔で保存 認証 送信 効果測定や流入・流出の分析にはFirebase Analyticsを利用する事も多い • 解析ソリューションであり、構築コストが低い • 別のデータとの紐づけができず、深掘りした分析が困難なのが課題 ・生のテキストデータ ・適切なサイズ(数MB~100MB)に集約 ・gzip圧縮
©NAVITIME JAPAN 分析用データへの加工
©NAVITIME JAPAN 分析用データへの加工 データセン ター データ分析環境 データレイク 分析用データ EMR EMR
オフィス GCP AWS Athena Web サイト Glue Glue Data Catalog アプリケーション 加工
©NAVITIME JAPAN 加工する目的 • パフォーマンス最適化 • 10MB~100MBにファイル集約 • Parquet/ORCなどの列指向フォーマットへの変換 •
データを適切な階層構造に分割(パーティショニング) など • データの整形 • 生データを構造化データへと整形して扱いやすく • ユーザーに紐づく情報の匿名化・除去 など
©NAVITIME JAPAN 加工に用いるAWSサービス • EMR(Elastic MapReduce) • マネージド型のHadoopクラスタ • MapRecudeやSparkのプログラムによる分散処理
• Glue • AWSが提供するETLサービス • データのクロールによるスキーマ(カタログ)の自動認識 • SparkSQLベースの単純なETLコードの自動生成 ナビタイムでは、EMRを利用するケースが多い • バイナリデータのパース • Protocol BuffersやMessage Packなど • データの順序を考慮した変換処理 • 位置情報の異常値除去やマップマッチングなど
©NAVITIME JAPAN 分析系サービスの活用
©NAVITIME JAPAN 分析系サービスの活用 データセン ター データ分析環境 データレイク 分析用データ EMR EMR
オフィス GCP AWS Athena Web サイト Glue Glue Data Catalog アプリケーション 分析
©NAVITIME JAPAN 利用している分析系サービス • SQLだけでは不可能な分析 • EMR • SQLによる分析 •
Athena • BI/ダッシュボードツール • Tableau • re:dash • データプラットフォーム • Arm Treasure Data
©NAVITIME JAPAN Amazon Athenaとは • データ分析用途のSQLエンジン • S3上のデータを標準SQLを用いて直接解析できる • Mysql/PostgresなどRDBと比較して高速・大容量
• 従量課金であり多くのケースで安価
©NAVITIME JAPAN ナビタイムでのAthenaの活用方法 • 開発者によるインタラクティブなSQL実行 • たまに失敗してもリカバリが効く集計処理 現在はRedshift等は利用せず、Athenaで分析している • CREATE
TABLE AS/INSERT INTOなど、テーブルの作成・ 更新もAthena上で可能になった • 近日中にUDFもリリースされる・・・はず
©NAVITIME JAPAN Athenaによる準リアルタイム集計 AWS GCP データセンター データ分析環境 Kinesis Data Streams
Kinesis Client S3 1分間隔で 保存 Athena Athena 5分間隔で集計 15分間隔で集計 混雑エリアマップ 駅混雑予報 たまに失敗する事を前提に、本番サービスでも活用中 • 考慮すべき事項 • リトライ処理 • 失敗時は直近の結果を利用
©NAVITIME JAPAN BI/ダッシュボードツール • 導入の背景 • 分析結果を広く共有 • 巨大なエクセル・スプレッドシートからの脱却 •
発散しているデータ・情報の集約 • re:dash • ダッシュボードツール • KPIダッシュボードなど共有用途 • re:dashでは限界の場合にTableauを利用 • Tableau(Server) • BIツール • 高度な分析用途
©NAVITIME JAPAN BI/ダッシュボードツール • re:dashはAthenaと直接接続 • クエリは利用者が記述する為、適切なクエリを発行可能 • Tableauは一次集計結果を格納したDBと接続 •
Tableauが非効率的なクエリを発行する為、Athenaとの直接接続を禁止 • 内部DBへのデータの抽出を徹底できるなら接続できるが・・・ 分析用データ Athena RDS SQL JDBC接続 一次集計結果
©NAVITIME JAPAN Arm Treasure Data • Treasure Dataの特徴 • フルマネージドのデータ分析基盤
• 安定性が高いHiveと高速なPrestoを選択可能 • 入出力の連携先が豊富 • GUIでワークフローを作成可能 ⇒AWSのサービスを組み合わせるよりも、構築・運用の敷居が低い • WEBサイトのデータ分析基盤として活用 • Webページからのイベントログの収集 • 他社データとの連携 • データ分析 • 大量の定期集計業務 など
©NAVITIME JAPAN 現在の課題 • クラウドは歯止めが利かない • 高速化やチューニングを怠ってマシンリソースで解決しがち • 油断するとどんどん増えていくS3サイズ •
終わりなきAthenaの悪質クエリ指導 • パーティションを指定せずに全スキャン • 長期集計の乱発 • データの発散 • Firebase AnalyticsやTreasure Dataなど • これらのソリューションを使う事自体は問題ないので、 有用なデータは最終的にS3に蓄積できるようにしたい
©NAVITIME JAPAN 今後の取り組み • Amazon QuickSightの導入 • 分析がWeb上・マネージドサービス上で完結する • 安価な料金体系
• 機械学習系サービスの活用 • Sage Maker • Amazon Personalize • Amazon Forecast • AWS以外のクラウドベンダーの活用 • 現在はAWS中心になっている • GCP/Azureなど他の選択肢も増やしていきたい
©NAVITIME JAPAN ご清聴ありがとうございました