数据需求一

来源:互联网 发布:香港淘宝集运 编辑:程序博客网 时间:2024/06/10 22:39

作者加入数据部门以来,日常的工作就是做数据需求,总结一下常见的数据需求。

数据需求来自mysql或者日志文件,困难一点的就是需要关联这两者,仅仅是涉及到mysql的,较为简单,一般进行表关联,获取感兴趣的数据。

-----------------------------------------------------------------------mysql和日志文件-----------------------------

mysql常用到的sql语句。

1、比如我们要排重,取得最新的值,比如工作经历这个,有id,uid,name,start_time,end_time等信息。

第一步:max(end_time)得到id,将其倒入到一张临时表中。

第二步:关联源表和临时表,获取信息。

2、group by 与聚合函数使用,注意select 中出现的字段,必须在group by后出现。

3、如下case when 也常常被使用到 case when filed = value1 then result1 when filed = value2 then result2 else result3 end 

一定要理解数据库中的操作都是面向记录的。

日志中的统计:

往往用shell中的awk工具,获取符合条件的字段,通过管道用wc -l|uniq 等命令来统计。

两者结合的统计:

比如需要得到访问某个页面的用户信息,用户id是通过日志中得来,用户的信息则存储在数据库中。这样情况我们会把数据库中得信息导入到文件中,再通过文件与文件的关联得到信息。

-----------------------------------------------------------------------hive---------------------------------------------

当我们把mysql数据和日志文件都存储在hive时,这样我们所有的操作都可以通过hive这种类sql来做了,就变得简单了。

hive和mysql的操作有一些不同,在用shell得到各指标数字时,我们会用到insert into 或者replace into到某张表中。而hive中一般是通过union all这种方式, 把记录集转换成多个列。

---------------------------------------------------------------------------------------------------------------------------

暂时想到这些,以后继续补充。



0 0