hello everyone:

 

   我在使用kylin的时候遇到了字段类型变化导致的问题,所有想寻求一下大家的帮
助。

   问题的描述:

 

1.       hive表导入kylin后字段类型发生变化

 

hive 中NSL_DIM_PROPPSER_INFO原表类型(截取部分):、



导入kylin后显示的类型:

Table Schema:NSL_DIM_PROPPSER_INFO



 

Hive中NSL_FACT_APP_INFO 类型(部分)



Kylin中 Table Schema:NSL_FACT_APP_INFO



 

 

 

2.     因为字段发生变化导致 Create Intermediate Flat Hive Table 失败

 

上面的2张表在model中关联关系

 NSL_FACT_APP_INFO.DATA_IDN = NSL_DIM_PROPPSER_INFO.DATA_IDN 

NSL_FACT_APP_INFO.PROPPSER_ID = NSL_DIM_PROPPSER_INFO.PROPPSER_ID



 

构建cube的时候,在Create Intermediate Flat Hive Table 时候报

 

 

 

INFO  : OK
No rows affected (0.137 seconds)
0: jdbc:hive2://10.8.49.171:10000> CREATE EXTERNAL TABLE IF NOT EXISTS
kylin_int 
ermediate_nsl_cube_cd1448f2_0b32_48bc_a4fb_3be505b5c135
. . . . . . . . . . . . . . . . .> (
. . . . . . . . . . . . . . . . .> NSL_FACT_APP_INFO_DATA_IDN char(256)
. . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_PROPPSER_ID string
. . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_A_SECURE_FEE
decimal(19,4) 
. . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_A_INIT_PAYMENT
decimal(19, 
4)
. . . . . . . . . . . . . . . . .> )
. . . . . . . . . . . . . . . . .> STORED AS SEQUENCEFILE
. . . . . . . . . . . . . . . . .> LOCATION
'hdfs:///user/dmp/kylin/kylin_metada 
ta/kylin-c5e7ed64-d408-4804-b4a0-2efb1192b099/kylin_intermediate_nsl_cube_cd
1448 
f2_0b32_48bc_a4fb_3be505b5c135';
Error: Error while compiling statement: FAILED: RuntimeException Char length
256 out of allowed range [1, 255] (state=42000,code=40000)

 

Hive 表中的DATA_IDN是char(1)  导入kylin 显示char(256)  报错 Char length 256
out of allowed range [1, 255]

 

 

3.     选择度量的时候因为字段类型导致 mapreduce 构建cubid 任务失败

在创建Measure的时候 Return Type的时候是自动根据前面kylin中表的字段类型自动生
成的,又不能修改,所以在后面跑mapreduce的时候当这个 度量列聚合量很大的时候就
超出这个字段类型长度。任务就会失败。



 

谢谢

 

 

Reply via email to