Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ZENRIN DataCom CO., LTD. | Confidential and Proprietary ZENRIN DataCom | Confidential and Proprietary
株式会社ゼンリンデータコム 高山 敏典/...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
会社紹介
株式会社ゼンリンデータコム(略称 ZDC)
業務内容
地図配信(API/SDK、地図切り出し、住宅地図関連)
ナビアプリ、...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
アジェンダ
位置情報サービスとは
ZDCで行っている行動分析
ZDCの行動分析の歴史
マネージドサービスを活用した行動
分析
質疑応...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
位置情報サービスとは
3
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
位置情報サービス(LBS)とは
「位置情報サービス(いちじょうほうサービス、
英: location-based service, ...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
位置情報サービスの構成要素
地図
タイル形式
ベクター形式
検索
施設検索
経路探索
ジオコーディング
行動分析
分析処理
統計処理...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
位置情報サービスの構成要素
地図
タイル形式
ベクター形式
検索
施設検索
経路探索
ジオコーディング
行動分析
分析処理
統計処理...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
位置情報サービスの構成要素
地図
タイル形式
ベクター形式
検索
施設検索
経路探索
ジオコーディング
行動分析
分析処理
統計処理...
ZDCの行動分析
8
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
【分析処理】
ZDCの行動分析の概要
【地図情報】
(glid)
住所、道路、鉄道
路線、店舗など
【リアルタイム分析】
今、移動体...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
glidって?
glid(グリッド)
汎用逆ジオコーダ
緯度経度→地図データ
KVS的なもの
さまざまなデータを取得
可能
付近の施...
ZDCの行動分析の歴史
(2010~)
11
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
共有ディスク
第1世代 オンプレで自前システム(2010-)
構成
測位点列を受信してID毎に共有ストレージに保管(ファイルベース)...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
第1世代 オンプレで自前システム 課題
システム性能を向上させるための時間をかけてた
ファイルシステムあれこれ変えたりinode調整...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
第2世代 オンプレでHadoop(2011-)
構成
測位点列を受信してID毎に共有ストレージに保管(hbase)
バッチ実行の分析...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
第2世代 オンプレでHadoop 課題
並列化部分は楽になった
Hadoopに丸投げできるようになった
台数を増やすことがプログラム...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
第3世代 とりあえずクラウド(2012-)
構成
第2世代の構成のままAWSに移行
16
データベース
分析結果取得
配信など
HB...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
第3世代 とりあえずクラウド 課題
サーバ調達は楽になった
移行はスムーズだった(サーバをec2に変更するだけ)
サーバの納期は早く...
マネージドサービスを活用した
行動分析(2013-)
18
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
第4世代 マネージドサービスを活用した行動分析
基本方針
とにかく疎結合
複雑性を小さくするために、とにかく単体のシステムを小さく少...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
Glid(位置情報DB)(EC2)
測位データ(S3)
分析ロジック(EMR)
分析結果(S3)
コントローラ(EC2)
1
2 4...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
1、EMRのメリット(トータルで安い!)
測位データ(S3) 分析結果(S3)
コントローラ(EC2)
1
2 4
3
処理するとき...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
測位データ(S3) 分析結果(S3)
コントローラ(EC2)
1
2 4
35
5
消える前にログを投げる
2、EMRで気を付けるこ...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
Glid(位置情報DB)(EC2)
分析ロジック(EMR)
バッチ処理の台数
は都度ログを参照
のうえ、比率、台数
決めてます
2、...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
Glid(位置情報DB)(EC2)
地図データ
分析ロジック(EMR)
コントローラ(EC2)
1
2 3
施設ごとに処理してエリア...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
4、SQS+dynamoDBでリアルタイム分析(ロジックの共有)
未確定情報
(dynamoDB)
確定情報(
dynamoDB)
...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
未確定情報(
dynamoDB)
確定情報(
dynamoDB)
Glid(位置情報DB)(
EC2)
SQS
Getter(分析ロ...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
SQS
Getter(分析ロジック)(EC2)
600秒後にまた処理させて!
6、SQS+dynamoDBで便利なこと(再実行)
6...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
未確定情報(dynamoDB)
確定情報(dynamoDB)
Glid(位置情報DB)(EC2)
SQS
Getter(分析ロジック...
まとめ
29
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
現状の評価
柔軟な計算資源調達が可能になった
システム側の都合でビジネスを止めずに済む
需要予測が難しい要件でも最小コストで対応可能...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
今後の展望
性能を最適化してコスト削減
スポットインスタンス、リザーブドインスタンス
レッドシフト、ラムダなどの活用検討
より高度な...
ZENRIN DataCom CO., LTD. | Confidential and Proprietary
ご清聴ありがとうございました
32
Upcoming SlideShare
Loading in …5
×

Tc 09-tokyo-summit-2015

1,978 views

Published on

地図情報を利用して解析する位置情報の「文脈」 (AWS Summit Tokyo 2015 | TC-09)

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Tc 09-tokyo-summit-2015

  1. 1. ZENRIN DataCom CO., LTD. | Confidential and Proprietary ZENRIN DataCom | Confidential and Proprietary 株式会社ゼンリンデータコム 高山 敏典/鈴木順一郎 地図情報を利用して解析する 位置情報の「文脈」 0
  2. 2. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 会社紹介 株式会社ゼンリンデータコム(略称 ZDC) 業務内容 地図配信(API/SDK、地図切り出し、住宅地図関連) ナビアプリ、カーナビアプリ(スマホ向け、車載向け) その他コンシューマ向けアプリ 店舗案内ASP 動態管理ASP ブラウザ向け地図サイト 位置情報関連のシステム開発・運用委託 and more.. →位置情報サービス全般の提供 1
  3. 3. ZENRIN DataCom CO., LTD. | Confidential and Proprietary アジェンダ 位置情報サービスとは ZDCで行っている行動分析 ZDCの行動分析の歴史 マネージドサービスを活用した行動 分析 質疑応答 2
  4. 4. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 位置情報サービスとは 3
  5. 5. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 位置情報サービス(LBS)とは 「位置情報サービス(いちじょうほうサービス、 英: location-based service, LBS)とは、携帯機器など により利用者が今いる位置を取得し、それに応じた 情報を提供するサービスである。」 ウィキペディア「位置情報サービス」より引用 4 例) 地図やナビのアプリ 位置情報ゲーム Siri iphoneを探す
  6. 6. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 位置情報サービスの構成要素 地図 タイル形式 ベクター形式 検索 施設検索 経路探索 ジオコーディング 行動分析 分析処理 統計処理 汎用 課金・認証 各種キャッシュ プッシュ通知 5
  7. 7. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 位置情報サービスの構成要素 地図 タイル形式 ベクター形式 検索 施設検索 経路探索 ジオコーディング 行動分析 分析処理 統計処理 汎用 課金・認証 各種キャッシュ プッシュ通知 6
  8. 8. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 位置情報サービスの構成要素 地図 タイル形式 ベクター形式 検索 施設検索 経路探索 ジオコーディング 行動分析 分析処理 統計処理 汎用 課金・認証 各種キャッシュ プッシュ通知 7
  9. 9. ZDCの行動分析 8
  10. 10. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 【分析処理】 ZDCの行動分析の概要 【地図情報】 (glid) 住所、道路、鉄道 路線、店舗など 【リアルタイム分析】 今、移動体がどういう状態(文 脈)にあるか判定、イベントを 通知する 【過去履歴分析】 移動体の行動履歴を分析 【統計分析】 移動体の行動履歴を行動パタ ーン毎に分類、集計 【連続位置情報】 さまざまな移動体 がさまざまな間隔 で送信する時刻付 き位置情報 【リアルタイムデータ】 メール配信 プッシュ通知 APIによる状態取得 【統計データ】 混雑データ 渋滞データ 【履歴データ】 走行実績 滞在実績 9 ※「統計データ」とは、利用許諾を得た上で送信される位置情報を、委託により当社 が個人が特定されないよう集計・処理したものです
  11. 11. ZENRIN DataCom CO., LTD. | Confidential and Proprietary glidって? glid(グリッド) 汎用逆ジオコーダ 緯度経度→地図データ KVS的なもの さまざまなデータを取得 可能 付近の施設 郵便番号 最寄り駅 住所 付近の道路、鉄道路線 実装事例 地図から住所検索 http://lab.its-mo.com/glid-addr/ 10
  12. 12. ZDCの行動分析の歴史 (2010~) 11
  13. 13. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 共有ディスク 第1世代 オンプレで自前システム(2010-) 構成 測位点列を受信してID毎に共有ストレージに保管(ファイルベース) 分析結果をRDBMSに格納 分析結果を集計、加工 12 受信 分析 データベース 分析結果取得 生ログ保存 ログ蓄積 ストレージ 配信 リアルタイム 点列データ バッチ処理用 点列データ 分析結果 1 3 2 4 5 6 7
  14. 14. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 第1世代 オンプレで自前システム 課題 システム性能を向上させるための時間をかけてた ファイルシステムあれこれ変えたりinode調整したり 並列化、冗長化が難しい(共有ディスクって難しい) Cで書いたマルチスレッドプログラムで分析処理してたが並列化に限界があっ た(バグの原因が特定しづらい) ハードウェア障害の原因特定に時間をかけてた 共有ディスクのベンダに問い合わせしたり、いろんなパターンでテストしたり。 いまとなってはよく覚えてない 13 ボトルネックの解消や障害対策に時間がかかって いて、ロジック開発に専念できず。
  15. 15. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 第2世代 オンプレでHadoop(2011-) 構成 測位点列を受信してID毎に共有ストレージに保管(hbase) バッチ実行の分析結果をRDBMS、KVSに格納 分析結果を集計、加工 14 受信 Hadoop クラスタ データベース 分析結果取得 配信など HBase API他システム 分析結果取得 1 3 2 4 5 67
  16. 16. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 第2世代 オンプレでHadoop 課題 並列化部分は楽になった Hadoopに丸投げできるようになった 台数を増やすことがプログラムを変えずにできるようになった 人よりも計算機のスケジュール管理が大変だった時代 マシンの手配がつかないために依頼を断ることも 仕事の依頼があってからサーバ発注しても間に合わない 故障したせいでデータ生成スケジュールがリスケに 暇なときはまったく稼働しない日もあった 15 計算資源の調達や運用が非効率。分散システム の運用の難しさに直面。
  17. 17. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 第3世代 とりあえずクラウド(2012-) 構成 第2世代の構成のままAWSに移行 16 データベース 分析結果取得 配信など HBase API他システム 分析結果取得 受信 Hadoop クラスタ(EC2) 1 3 2 4 5 67
  18. 18. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 第3世代 とりあえずクラウド 課題 サーバ調達は楽になった 移行はスムーズだった(サーバをec2に変更するだけ) サーバの納期は早くなった そのまま移行するだけではコスト的にメリットなし EC2の利用時間を限定したりリザーブドインスタンス契約をしなければコスト 削減にはならない。Hadoopクラスタについてはいつ必要になるかわからない ので台数固定は変わらず。 AWSに関する知識不足に因る問題 ELBと既存のロードバランサの微妙な違いにつまづく等 17 AWSの恩恵は受けられつつあるが、第2世代の課 題解決には至らず。
  19. 19. マネージドサービスを活用した 行動分析(2013-) 18
  20. 20. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 第4世代 マネージドサービスを活用した行動分析 基本方針 とにかく疎結合 複雑性を小さくするために、とにかく単体のシステムを小さく少なくする。 使えるものを使い倒す ( EMR、SQS、 DynamoDB、SNS ) 適応範囲の広い厳選したものをとことん使う。 実行時間は太く短くメリハリつけて どんなバッチ処理も2時間以内を目途に台数を調整。 X2large1台よりもXlarge2台で増減させる。 細かいことは気にしない エラーがでても最小単位で再実行。欠損データでストップしない。 単体の性能向上よりも並列化が実現できてればOK。 19
  21. 21. ZENRIN DataCom CO., LTD. | Confidential and Proprietary Glid(位置情報DB)(EC2) 測位データ(S3) 分析ロジック(EMR) 分析結果(S3) コントローラ(EC2) 1 2 4 3 1、EMRのメリット(高速化) 12台で20時間が120台で2時間で終了! 平日の時間帯でも処理がながせるようになった。 20
  22. 22. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 1、EMRのメリット(トータルで安い!) 測位データ(S3) 分析結果(S3) コントローラ(EC2) 1 2 4 3 処理するときに立ち上げて 処理が済んだら落とす。 分析ロジック(EMR) Glid(位置情報DB)(EC2) 120台使っても2時間で終われば3万円! 処理が終了したら使ったものはきちんと落としておく(落とさないと週末で80万円くらい損する!)。 時間がかかるとそれだけ損するので処理の高速化に気を使うようになった。 21
  23. 23. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 測位データ(S3) 分析結果(S3) コントローラ(EC2) 1 2 4 35 5 消える前にログを投げる 2、EMRで気を付けること(ログの回収) ログをうけとったらサマリを 作成 Glid(位置情報DB)(EC2) 分析ロジック(EMR) ログの回収は忘れずに マシンを落としてしまえばログは消えてしまいます。なぜ失敗したのか、なぜ実行時間が余分にかかった のかがわからなければ余分に費用が掛かることになります。一台ごとのログと全体サマリどっちも重要で す。 22
  24. 24. ZENRIN DataCom CO., LTD. | Confidential and Proprietary Glid(位置情報DB)(EC2) 分析ロジック(EMR) バッチ処理の台数 は都度ログを参照 のうえ、比率、台数 決めてます 2、EMRで気を付けること(ボトルネックの把握) ボトルネックを常に把握 バッチ処理に関わっている各サーバでCPUが忙しいのかメモリがいっぱいなのか、DBが忙しいのか分 析サーバが忙しいのか。データや処理の追加や削除、分析対象の変化によって常に変化しています。処 理時間が伸びてきたらログで確認して台数の比率やm/cのタイプを変更しています。 23
  25. 25. ZENRIN DataCom CO., LTD. | Confidential and Proprietary Glid(位置情報DB)(EC2) 地図データ 分析ロジック(EMR) コントローラ(EC2) 1 2 3 施設ごとに処理してエリア毎にまとめる。 3、EMR処理の活用(Glidデータ生成) マスタデータの編集もEMRへ 領域の確定部分をmap,重なり部分の処理を一部reduceに割り振ることで並列化を実現しています。 実行時間が一桁以上削減する見込みです。 24
  26. 26. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 4、SQS+dynamoDBでリアルタイム分析(ロジックの共有) 未確定情報 (dynamoDB) 確定情報( dynamoDB) Glid(位置情報DB) (EC2) SQS Getter(分析ロジック)(EC2) 情報取得CGI測位点受信CGI SNS 未確定情報 (dynamoDB) 分析ロジックはEMRと同一 イベント通知はSNS EMRでは入力データが確定していないと処理がはじめられません。リアルタイムでデータ処理をするた めにSQSをつかった並列処理システムを構築しています。分析ロジックはglidへの問い合わせ含めてEMR と同一です。イベント発生時はSNS経由で別システムへ通知されます。 25
  27. 27. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 未確定情報( dynamoDB) 確定情報( dynamoDB) Glid(位置情報DB)( EC2) SQS Getter(分析ロジック)(EC2) 情報取得CGI測位点受信CGI オートスケール オートスケール オートスケール オートスケール 5、SQS+dynamoDBで最適化(オートスケール+ログ分析) 処理量に応じて台数を最適化 SQSで待ってる処理量や負荷に応じて処理能力を変えてます。 SQSがボトルネックになったり障害発生点になったことはない(SQS最高)。 ログの確認による手動での調整も必要です。 26
  28. 28. ZENRIN DataCom CO., LTD. | Confidential and Proprietary SQS Getter(分析ロジック)(EC2) 600秒後にまた処理させて! 6、SQS+dynamoDBで便利なこと(再実行) 600秒後にならないと判断できない。 必要があれば指定時間後に再実行 Delay seconds を設定して再投入することで任意の秒数後にSQSからレコードを受け取ることができる。 (Visibility timeoutだと転送中メッセージ数に12000の上限がある。) ID毎にタイマーをgetterサーバ側で設定するなんて不可能。 27
  29. 29. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 未確定情報(dynamoDB) 確定情報(dynamoDB) Glid(位置情報DB)(EC2) SQS Getter(分析ロジック)(EC2) 6、SQS+dynamoDBで便利なこと(バッチ処理も可能) fluentd バッチ処理も実行可能 過去データをfluentd経由で流し込むことでバッチ処理的な処理も実行することができます。ただし、未確 定状態のデータをどう処理するかは決めておく必要があります。 28
  30. 30. まとめ 29
  31. 31. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 現状の評価 柔軟な計算資源調達が可能になった システム側の都合でビジネスを止めずに済む 需要予測が難しい要件でも最小コストで対応可能に ロジック開発に集中できるようになった チューニングの対象がビジネスロジック中心になった。 ハードウェア、ミドルウェアはAWSにまかせる。 30
  32. 32. ZENRIN DataCom CO., LTD. | Confidential and Proprietary 今後の展望 性能を最適化してコスト削減 スポットインスタンス、リザーブドインスタンス レッドシフト、ラムダなどの活用検討 より高度な分析 統計データのリアルタイム生成 未来予測 特異現象発生の自動検出 31
  33. 33. ZENRIN DataCom CO., LTD. | Confidential and Proprietary ご清聴ありがとうございました 32

×