博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
游戏数仓分析
阅读量:3960 次
发布时间:2019-05-24

本文共 1067 字,大约阅读时间需要 3 分钟。

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格式

然后创表:

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] IsLogin from 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;

转自  

转载地址:http://baazi.baihongyu.com/

你可能感兴趣的文章
linux tar 解压缩zip文件报错的解决
查看>>
vim,ctag和Taglist
查看>>
Ubuntu的apt命令详解
查看>>
Ubuntu Server 设置sshd
查看>>
sort,uniq命令的使用。
查看>>
linux下md5加密(使用openssl库C实现)
查看>>
openssl、MD5的linux安装方法
查看>>
DevC++ 工程没有调试信息的解决办法
查看>>
http消息长度的确定
查看>>
手机和电脑如何连接蓝牙
查看>>
HTTP协议参数
查看>>
wireshark检索命令
查看>>
五人分鱼问题(附答案)
查看>>
linux查看文件有多少行
查看>>
error:previous declartion of "XXX" is here的解决方法
查看>>
sha1的几个函数的使用
查看>>
为什么int型的数组用memset不能清零(memset的使用规范)
查看>>
<转>CRC校验、MD5、SHA1算法的概念和可靠性现状
查看>>
linux杀死进程详解
查看>>
字符串表示的IP地址与点分式表示的IP地址间的相互转化
查看>>