首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 数据库开发 >

某特大型互联网公司 DW 数据仓库 试题

2013-04-09 
某大型互联网公司 DW 数据仓库 试题题目开始:下表是用户访问网站的日志表TRLOG,每一条记录,代表者一个平台

某大型互联网公司 DW 数据仓库 试题
题目开始:
下表是用户访问网站的日志表TRLOG,每一条记录,代表者一个平台(PLATFORM)上的一个用户(USER_ID)在某一时间(CLICK_TIME)的一次页面访问(CLICK_URL):
PLATFORMUSER_IDCLICK_TIMECLICK_URL
WEB123323212013-03-21 13:48:31.324/home/
WEB123323212013-03-21 13:48:32.954/selectcat/er/
WEB123323212013-03-21 13:48:46.365/er/viewad/12.html
WEB123323212013-03-21 13:48:53.651/er/viewad/13.html
WEB123323212013-03-21 13:49:13.435/er/viewad/24.html
WEB123323212013-03-21 13:49:35.876/selectcat/che/
WEB123323212013-03-21 13:49:56.398/che/viewad/93.html
WEB123323212013-03-21 13:50:03.143/che/viewad/10.html
WEB123323212013-03-21 13:50:34.265/home/
WAP324839232013-03-21 23:58:41.123/m/home/
WAP324839232013-03-21 23:59:16.123/m/selectcat/fang/
WAP324839232013-03-21 23:59:45.123/m/fang/33.html
WAP324839232013-03-22 00:00:23.984/m/fang/54.html
WAP324839232013-03-22 00:00:54.043/m/selectcat/er/
WAP324839232013-03-22 00:01:16.576/m/er/49.html
……………………
为了使题目叙述清晰,我们在上表中以用户12332321和32483923举例,将他们的访问按时间排了序,但实际的访问日志不是这样有序的,而是来一次访问就增加一条,平台、用户等等都是交错的,你懂的。
这个访问日志表积攒了若干天的用户访问记录,目前大约有20亿条数据,占用存储空间1TB。为了某些分析需求,我们需要把上述数据处理为如下结构的表ALLOG:
PLATFORMUSER_IDSEQFROM_URLTO_URL
WEB123323211NULL/home/
WEB123323212/home//selectcat/er/
WEB123323213/selectcat/er//er/viewad/12.html
WEB123323214/er/viewad/12.html/er/viewad/13.html
WEB123323215/er/viewad/13.html/er/viewad/24.html
WEB123323216/er/viewad/24.html/selectcat/che/
WEB123323217/selectcat/che//che/viewad/93.html
WEB123323218/che/viewad/93.html/che/viewad/10.html
WEB123323219/che/viewad/10.html/home/
WAP324839231NULL/m/home/
WAP324839232/m/home//m/selectcat/fang/
WAP324839233/m/selectcat/fang//m/fang/33.html
WAP324839234/m/fang/33.html/m/fang/54.html
WAP324839235/m/fang/54.html/m/selectcat/er/
WAP324839236/m/selectcat/er//m/er/49.html
……………………
PLATFORM和USER_ID还是代表平台和用户ID;SEQ字段代表用户按时间排序后的访问顺序,FROM_URL和TO_URL分别代表用户从哪一页跳转到哪一页。对于某个平台上某个用户的第一条访问记录,其FROM_URL是NULL(空值)。
假设软硬件环境是:2个DataNode节点的实验用Hadoop 1.0.x集群,存储空间 6TB,Replication Factor为2;安装有Hive 0.90版本,数据表以逗号分隔的Delimited Text格式存储于HDFS。
为了实现上述需求,请你:
(1)实现基于纯Hive SQL的ETL过程,从TRLOG表生成ALLOG表;(结果是一套SQL)
(2)实现一个能加速上述处理过程的Hive Generic UDF,并给出使用此UDF实现ETL过程的Hive SQL;(结果是一个Hive Generic UDF的源文件,和一套SQL)
(3)你还有没有其他的方法实现这个 ETL?如果有,请任选一个方法,并提交代码。(结果是你找到的方法的代码,如果没有找到更好的方法,请回答“无”)
题目完。



如题,大家集思广益。发表下想法吧。! hive dw hadoop 数据仓库
[解决办法]
呵呵,点击流

mr就用单表关联吧
hive 也就是join 
[解决办法]
晕,这个帖子的题目和你的一样啊
http://bbs.csdn.net/topics/390414342
LZ,看看我的答案你能永不

热点排行