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的时候当这个 度量列聚合量很大的时候就 超出这个字段类型长度。任务就会失败。 谢谢
