Kylin构建Cube的时候老是报错,说是有空值,其实源数据中是不存在空值的。为什么建Cube的时候会有呢?
执行完毕后使用Hive查询发现多了好几行全部是null的行。
这在源数据中是不存在的。分析可能的原因是文本类型中存在特殊字符,例如 Tab,回车,换行字符。所以在抽取源数据中增加过滤。
Sql中的特殊字符
char(9) 水平制表符
char(10)换行键
char(13)回车键
原来的SQL
select FItemID,FParentID ,FNumber ,FName from 表名
换成
select FItemID,FParentID ,replace(replace(replace(FNumber,char(9),''),char(10),''),char(13),'') FNumber ,replace(replace(replace(FName,char(9),''),char(10),''),char(13),'') FName from 表名
修改完毕后重新抽取数据,建模OK。