分享

求助:同一个hive sql 执行多次,结果不同

songy 发表于 2015-12-15 19:57:07 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 4 14567
如题:
同一个hive sql(统计各来自渠道的日活跃用户),统计的是11号的数据,已经没有数据写入,可是,统计结果会变动:

SELECT l.group_id,l.channel_id,COUNT(DISTINCT l.`user_id`) AS `num` FROM log.`user_login` l WHERE l.login_time BETWEEN UNIX_TIMESTAMP("2015-12-11 00:00:00") AND UNIX_TIMESTAMP("2015-12-11 23:59:59") group by l.group_id,l.channel_id order by `num` desc;

会得到不同结果:

3

3

2

2


1

1




已有(4)人评论

跳转到指定楼层
arsenduan 发表于 2015-12-15 21:19:32
COUNT(DISTINCT l.`user_id`) AS `num`
变化的是这个。也就是说数据的行数在变动。
先总体查询下(count下)是否变化。多次执行。


回复

使用道具 举报

songy 发表于 2015-12-15 21:43:10
arsenduan 发表于 2015-12-15 21:19
COUNT(DISTINCT l.`user_id`) AS `num`
变化的是这个。也就是说数据的行数在变动。
先总体查询下(count ...

你好,应该不是你说的总行数在变得情况。因为我多次执行相同的那个sql,有好几个结果在交替出现,但看一个num,有时变多有时变少。我的hadoop数据写了3份,我怀疑是不是这3份数据在各个节点变得不一致了,但是不知道怎么验证。

回复

使用道具 举报

cowboy2014 发表于 2015-12-16 21:18:53
这个正是在CAP理论中所说的,三者不可兼得。hadoop所体现的是,高可用性和分区容错性,一致性出现问题是难免的。
CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼 。
回复

使用道具 举报

chyeers 发表于 2016-3-21 20:19:15
这是什么客户端么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条