云梯数据测试的小陷阱——NULL值问题
上一篇 /
下一篇 2012-08-07 09:43:23
/ 个人分类:杂谈
1D@X"Z
Ja`n0 最近在测试开发同学产出的一份新的算法数据时,遇到了这样一个奇怪现象,追寻了一下其中原因,感觉有点小收获,写一篇blog记录一下,并分享给需要的同学。
r+q@5u r1m\,T]0n+e+ce2YYG0 问题描述:
k/k)a [#k"HTj!H051Testing软件测试网!@E;s8J
T(Z:}8v
算法同学在构建基于用户购买力的决策模型时,产出了一份基础数据,用来计算一周内,登录淘宝的cookie信息和其浏览的宝贝数据。在测试的过程中发
现,这份数据存在关键key(用户登录淘宝网的cookie)为空的情况。查看开发的代码发现,在算法处理时,并没有对原始表进行脏数据的清理。随后,我
想验证一下云梯上每日用户浏览信息这份基础数据到底有多少cookie记录为空的情况,就写了一条hive语句:“select count(1)
from r_***_log where pt=*** and mid is
null;"执行后惊奇的发现,居然一条结果都没有。但是执行"select * from r_***_log where pt=***
limit 100;" 是能看到一些key=cookie的空记录.再次换了一条计算hive"select count(1)from
r_***_log where pt=*** and mid ='
';结果是可以查询到的。这就让我联想到一个问题,null值在云梯上到底是如何存储的呢?为什么所见不为所得呢?
/O4va0\:v0&s(ZSY)oY0 做了一个小实验证明了下我的猜测:51Testing软件测试网K})X&?&h'q
51Testing软件测试网S)PW ^Z Iy6V 1:在云梯生成一张临时表,并插入一条空记录
r!X#ajSdR05i7B.Y8sV0 drop table t_minyi_tmptest;51Testing软件测试网E_.N!?oqU8o create table if not exists t_minyi_tmptest (51Testing软件测试网$A6{)]|d cookie string51Testing软件测试网(l8E0~1Z,o%p FtZ^P )51Testing软件测试网 [BM&O\[? row format delimited51Testing软件测试网+z5l5?sU4PVR.RxX fields terminated by '\t'
|