日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

游戏数仓分析(一)数据准备阶段

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 游戏数仓分析(一)数据准备阶段 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這各項目中有大量的指標,這里先只做一個進行分析?,后續再更。

1.分析指標

每日登陸人數

用戶在N天內每日的登陸人數。

2.靜態分析數據

靜態觀察CharacterLogin中的2014-10-27.txt數據文件,結合xml文件,發現有兩個字段很有用,分別是LogTime和IsLogin。這里的IsLogin表示登陸和登出,無論取什么值,都可以看作登錄。也就是說,有用的字段實際上只有2個。

3.基礎層數據分析

  • 1.先把全部數據導入到hdfs中

執行

hdfs dfs -put /GameData /

數據就導入到hdfs的根目錄下

  • 2.創建一個外部臨時表【臨時表的作用是中轉】,把數據導入到hive中
create external table t2(line string) location "/GameData/2015-6-12/0001/0007/CharacterLogin";
  • 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頁面,后續會再次更新!!!

總結

以上是生活随笔為你收集整理的游戏数仓分析(一)数据准备阶段的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。