《KyLin学习理解》-03-KyLin的坑总结

来源:互联网 发布:淘宝怎么游戏交易 编辑:程序博客网 时间:2024/06/06 01:51

坑1:KyLin中不能使用 != 不等于符合,否则会报错,但是某些业务需要用不等于,kylin中也不能使用 <> 不等于,用or的话,可能会短路。
解决:新建一个字段区分,不等于的两种状态。

坑2:KyLin中不能使用 双引号,否则保错

Error while executing SQL "select myview.*,mycase.*,wb.*,hotel.*,p_status from myview inner join mycase on myview.v_code=mycase.c_code inner join wb on myview.v_w_id=wb.w_id inner join hotel on myview.v_h_id=hotel.h_id inner join p_case on myview.v_code=p_case.p_code where p_isend = 1 and v_code="A3402024100002011120248" LIMIT 50000": From line 1, column 274 to line 1, column 298: Column 'A3402024100002011120248' not found in any table

解决:使用单引号

坑3:假设有一段数据

1         2006/6/21 14:15  姚姗家被盗案 2         2006/6/22 14:15  姚姗家被盗案 3         2006/6/23 14:15  姚姗家被盗案 4         2006/6/24 14:15  姚姗家被盗案 5         2006/6/25 14:15  暂无           6         2006/6/26 14:15  暂无           

如果有业务:求第三条数据的前后两天的数据。我们需要计算,把第三条的数据先查询出来时间,然后进行运算,然后,再查询,如果时间格式是这样的是没办法实现的,我们可以,在hive里多加1个字段存储时间戳
变成如下格式:

1         2006/6/21 14:15 1150956900000 姚姗家被盗案 2         2006/6/22 14:15 1150956900000 姚姗家被盗案 3         2006/6/23 14:15 1150956900000 姚姗家被盗案 4         2006/6/24 14:15 1150956900000 姚姗家被盗案 5         2006/6/25 14:15 1150956900000 暂无          6         2006/6/26 14:15 1150956900000 暂无      

然后查询的时候

select * from 表名  where ( 字段-86400000 * 天数 )< 字段 and 字段< (字段+ 86400000*天数 ) ;

时间问题就解决了。

原创粉丝点击