年初的時候進入了遊戲行業,一直在作遊戲邏輯相關的開發,如今回過頭來搞遊戲分析相關的東西,咱們如今的需求主要是用戶流失相關的分析。玩家哪些功能比較經常使用,某個功能玩家的使用頻率的分析,對這些進行建模,之前咱們經常使用ELK作一些日誌的存儲之類的功能,如今拿ELK做分析不知道會怎麼樣php
ELK搭建html
數據導入git
數據建模github
以前寫過一篇ELK日誌的搭建文章 ELK結合logback搭建日誌中心,
這樣作其實有點太慢了,爲了先驗證想法,先使用docker搭建ELK 所用的docker,搭建起來的端口
5000: Logstash TCP input.
9200: Elasticsearch HTTP
9300: Elasticsearch TCP transport
5601: Kibanadocker
因爲咱們並非日誌收集系統,因此logstash的做用其實並不大,並且使用起來也不是靈活,因此我果斷把logstash這層直接沒用使用,使用的是Elastaicsearch的Restful接口導入數據,這樣可使咱們靈活的處理各類本身的數據,只須要把數據轉換成json便可shell
ES 的一大特色,就是全 RESTful 接口處理 JSON 請求。因此,數據寫入很是簡單:json
# curl -XPOST http://127.0.0.1:9200/logstash-2015.06.21/testlog -d '{ "date" : "1434966686000", "user" : "chenlin7", "mesg" : "first message into Elasticsearch" }'
命令返回響應結果爲:segmentfault
{"_index":"logstash-2015.06.21","_type":"testlog","_id":"AU4ew3h2nBE6n0qcyVJK","_version":1,"created":true}
其餘具體的CRUD就不介紹了主要-->使用方法api
首先使用 discover 功能過濾相應的數據服務器
簡單的文本搜索,直接輸入文本字符串。好比,若是你在搜索網站服務器日誌,你能夠輸入 safari 來搜索各字段中的 safari 單詞。
要搜索特定字段中的值,則在值前加上字段名。好比,你能夠輸入 status:200 來限制搜索結果都是在 status 字段裏有 200 內容。
要搜索一個值的範圍,你能夠用範圍查詢語法,[START_VALUE TO END_VALUE]。好比,要查找 4xx 的狀態碼,你能夠輸入 status:[400 TO 499]。
要指定更復雜的搜索標準,你能夠用布爾操做符 AND, OR, 和 NOT。好比,要查找 4xx 的狀態碼,仍是 php 或 html 結尾的數據,你能夠輸入 status:[400 TO 499] AND (extension:php OR extension:html)。
而後經過Visualize 功能進行圖標聚合
這塊須要對你目標的數據進行過濾篩選,而後聚合,須要根據相應的模型進行整理。
以下圖:
玩家行爲分析: