游戏数仓分析(一)数据准备阶段
生活随笔
收集整理的這篇文章主要介紹了
游戏数仓分析(一)数据准备阶段
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這各項目中有大量的指標,這里先只做一個進行分析?,后續再更。
1.分析指標
每日登陸人數
用戶在N天內每日的登陸人數。
2.靜態分析數據
靜態觀察CharacterLogin中的2014-10-27.txt數據文件,結合xml文件,發現有兩個字段很有用,分別是LogTime和IsLogin。這里的IsLogin表示登陸和登出,無論取什么值,都可以看作登錄。也就是說,有用的字段實際上只有2個。
3.基礎層數據分析
- 1.先把全部數據導入到hdfs中
執行
hdfs dfs -put /GameData /數據就導入到hdfs的根目錄下
- 2.創建一個外部臨時表【臨時表的作用是中轉】,把數據導入到hive中
- 3.測試分割的語法,比如分割一行的內容 select split(line, '\\|') from t2 limit 1?
- 4.取出自己需要的值,建立表
在建表之前,考慮到需求中的日期格式,所以
在hive中對日期數據進行處理,毫秒級時間轉化為yyyy-MM-dd格式
https://georgedage.blog.csdn.net/article/details/103263588
然后創表:
create table CLogin as select split(line,"\\|")[5] as AccountID, split(line,"\\|")[6] CharacterID, from_unixtime(cast(substr(split(line,"\\|")[8],0,10) as bigint),"yyyy-MM-dd") LogTime, split(line,"\\|")[10] IsLoginfrom t2;使用查詢語句進行驗證:
select * from clogin limit 1;?
因為要統計每日的登陸人數,所以再次做出測試:
select count(accountid),LogTime from CLogin group by LogTime limit 1;- 5.在這里我們已經可以進行初步的計算每日,不過由于需要進行表格展示給用戶,所以我們使用了可視化工具echarts。
計算好的數據:
create table n_days_stat as select count(accountid), LogTime from CLogin group by LogTime;進行檢驗:
select * from n_days_stat limit 10;我來更新了:
- 使用sqoop將數據導入到mysql中
https://georgedage.blog.csdn.net/article/details/103265732
然后再來條sql語句,【注我們統計7日內的每日用戶數】
select logtime from n_days_stat where TO_DAYS("2015-06-01")> TO_DAYS(logtime) and TO_DAYS("2015-06-01")- TO_DAYS(logtime)<=7 ORDER BY logtime desc;然后:https://www.echartsjs.com/examples/zh/editor.html?c=line-simple
這里沒有直接做一個web頁面,后續會再次更新!!!
總結
以上是生活随笔為你收集整理的游戏数仓分析(一)数据准备阶段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在hive中对日期数据进行处理,毫秒级时
- 下一篇: tar中的zxvf都是什么?