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

More Related Content

Similar to Tc 09-tokyo-summit-2015

株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。naokomukoyama
 
メンバーズデータアドベンチャー新規部門事業計画書
メンバーズデータアドベンチャー新規部門事業計画書メンバーズデータアドベンチャー新規部門事業計画書
メンバーズデータアドベンチャー新規部門事業計画書白井 恵里
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」Cybozucommunity
 
Biz card名刺取込みマニュアル
Biz card名刺取込みマニュアルBiz card名刺取込みマニュアル
Biz card名刺取込みマニュアルe-sales-support
 
≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~
≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~ ≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~
≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~ Brocade
 
【JAWS DAYS 2013】ランサーズを支えるAWS
【JAWS DAYS 2013】ランサーズを支えるAWS【JAWS DAYS 2013】ランサーズを支えるAWS
【JAWS DAYS 2013】ランサーズを支えるAWSKei Kinoshita
 
【ゼンリンデータコム】株式発行トレンドマップ企画案
【ゼンリンデータコム】株式発行トレンドマップ企画案【ゼンリンデータコム】株式発行トレンドマップ企画案
【ゼンリンデータコム】株式発行トレンドマップ企画案東証ソーシャルかぶコン
 
Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介
Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介
Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介Kenji Hara
 
Microsoft の深層学習への取り組み
Microsoft の深層学習への取り組みMicrosoft の深層学習への取り組み
Microsoft の深層学習への取り組みHirono Jumpei
 
【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性Koji Asaga
 
セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵Sapporo Sparkle k.k.
 
地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけて
地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけて地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけて
地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけてNobuo Kawaguchi
 
LiBRA 09.2020 / 総集編 2/2
LiBRA 09.2020 / 総集編 2/2LiBRA 09.2020 / 総集編 2/2
LiBRA 09.2020 / 総集編 2/2Masanori Saito
 
GCE を利用した Sansan マイクロサービス移行とそのメリット
GCE を利用した Sansan マイクロサービス移行とそのメリットGCE を利用した Sansan マイクロサービス移行とそのメリット
GCE を利用した Sansan マイクロサービス移行とそのメリットShimpei Nagai
 
insideAR 2013 報告会(技術編)
insideAR 2013 報告会(技術編)insideAR 2013 報告会(技術編)
insideAR 2013 報告会(技術編)Daisuke Nishioka
 
まだ何も始めていない会社での第一歩
まだ何も始めていない会社での第一歩まだ何も始めていない会社での第一歩
まだ何も始めていない会社での第一歩Kou Nakajima
 
Company Profile 2013 recruit
Company Profile 2013 recruitCompany Profile 2013 recruit
Company Profile 2013 recruitSatoshi Matsumoto
 
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Daisuke Masubuchi
 
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Azure 相談センター
 

Similar to Tc 09-tokyo-summit-2015 (20)

株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
 
メンバーズデータアドベンチャー新規部門事業計画書
メンバーズデータアドベンチャー新規部門事業計画書メンバーズデータアドベンチャー新規部門事業計画書
メンバーズデータアドベンチャー新規部門事業計画書
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」
 
Biz card名刺取込みマニュアル
Biz card名刺取込みマニュアルBiz card名刺取込みマニュアル
Biz card名刺取込みマニュアル
 
≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~
≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~ ≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~
≪インテル x ブロケード 特別対談≫ 2020年。どうなる?車とデータセンタの関係 ~SDxの、その先へ~
 
【JAWS DAYS 2013】ランサーズを支えるAWS
【JAWS DAYS 2013】ランサーズを支えるAWS【JAWS DAYS 2013】ランサーズを支えるAWS
【JAWS DAYS 2013】ランサーズを支えるAWS
 
【ゼンリンデータコム】株式発行トレンドマップ企画案
【ゼンリンデータコム】株式発行トレンドマップ企画案【ゼンリンデータコム】株式発行トレンドマップ企画案
【ゼンリンデータコム】株式発行トレンドマップ企画案
 
Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介
Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介
Hadoop Conference Japan 2011 Fall: マーケティング向け大規模ログ解析事例紹介
 
Microsoft の深層学習への取り組み
Microsoft の深層学習への取り組みMicrosoft の深層学習への取り組み
Microsoft の深層学習への取り組み
 
【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性
 
セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵
 
地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけて
地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけて地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけて
地理空間情報ボランティアを支える枠組みの提案:Lisra設立にむけて
 
03_AWS IoTのDRを考える
03_AWS IoTのDRを考える03_AWS IoTのDRを考える
03_AWS IoTのDRを考える
 
LiBRA 09.2020 / 総集編 2/2
LiBRA 09.2020 / 総集編 2/2LiBRA 09.2020 / 総集編 2/2
LiBRA 09.2020 / 総集編 2/2
 
GCE を利用した Sansan マイクロサービス移行とそのメリット
GCE を利用した Sansan マイクロサービス移行とそのメリットGCE を利用した Sansan マイクロサービス移行とそのメリット
GCE を利用した Sansan マイクロサービス移行とそのメリット
 
insideAR 2013 報告会(技術編)
insideAR 2013 報告会(技術編)insideAR 2013 報告会(技術編)
insideAR 2013 報告会(技術編)
 
まだ何も始めていない会社での第一歩
まだ何も始めていない会社での第一歩まだ何も始めていない会社での第一歩
まだ何も始めていない会社での第一歩
 
Company Profile 2013 recruit
Company Profile 2013 recruitCompany Profile 2013 recruit
Company Profile 2013 recruit
 
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
 
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
 

Tc 09-tokyo-summit-2015

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