Hello Chenglong, I tried to reproduce this CHAR type length change after importing from Hive issue on Kylin 2.1 but I cannot reproduce it. Can you please let me know your Kylin version and the complete DDL you used to create these tables?
在 2017年10月18日 上午11:34,chenglong.fu <[email protected]>写道: > > > hello everyone: > > > > 因为之前附件没有转发和图片太大显示不全,我重新发送一封邮件,打扰见谅。 > > 我在使用kylin的时候遇到了字段类型变化导致的问题,所有想寻求一下大家的帮助。 > > 问题的描述: > > 1. hive表导入kylin后字段类型发生变化 > > > > hive 中NSL_DIM_PROPPSER_INFO原表类型(截取部分):、 > > 75 > > is_scene > > char(2) > > 客户是否在现场 > > 76 > > reference_code > > varchar(50) > > 推荐人代码 > > 77 > > reference_jgcode > > varchar(50) > > 推荐人机构代码 > > 78 > > applicationagreementbarcode > > varchar(50) > > 领用合约代码 > > 79 > > remakes > > varchar(1000) > > 备注信息 > > 80 > > data_idn > > char(1) > > 数据标示C-渠道,D-直销 > > 81 > > source_type > > varchar(20) > > 源系统 > > 82 > > lst_up_time > > timestamp > > 上一次更新日期 > > 83 > > data_date > > date > > 数据日期 > > > > 导入kylin后显示的类型:Table Schema:NSL_DIM_PROPPSER_INFO > > > > 62 > > IS_CERT_ALL > > char(256) > > 2 > > 63 > > IS_SCENE > > char(256) > > 4 > > 客户是否在现场 > > 64 > > REFERENCE_CODE > > varchar(256) > > 33 > > 推荐人代码 > > 65 > > REFERENCE_JGCODE > > varchar(256) > > 16 > > 推荐人机构代码 > > 66 > > APPLICATIONAGREEMENTBARCODE > > varchar(256) > > 12504 > > 领用合约代码 > > 67 > > REMAKES > > varchar(256) > > 2 > > 备注信息 > > 68 > > DATA_IDN > > char(256) > > 2 > > 数据标示C-渠道,D-直销 > > 69 > > SOURCE_TYPE > > varchar(256) > > 2 > > 源系统 > > 70 > > LST_UP_TIME > > timestamp > > 1 > > 上一次更新日期 > > 71 > > DATA_DATE > > date > > 1 > > 数据日期 > > > > > > Hive中NSL_FACT_APP_INFO 类型(部分) > > > > 124 > > lat > > varchar(50) > > 维度 > > 125 > > lng > > varchar(50) > > 经度 > > 126 > > imei > > varchar(50) > > 国际移动设备身份码 > > 127 > > imsi > > varchar(50) > > 国际移动用户识别码 > > 128 > > uuid > > varchar(50) > > iphone的uuid > > 129 > > user_id > > int > > 创建用户编码 > > 130 > > user_name > > varchar(20) > > 创建用户名称 > > 131 > > data_idn > > char(1) > > 数据标示 C-渠道,D-直销 > > 132 > > source_type > > varchar(20) > > 源系统 > > 133 > > lst_up_time > > timestamp > > 上一次更新日期 > > 134 > > data_date > > date > > 数据日期 > > > > > > Kylin中 Table Schema:NSL_FACT_APP_INFO > > > > 124 > > LAT > > varchar(256) > > 69144 > > 维度 > > 125 > > LNG > > varchar(256) > > 76679 > > 经度 > > 126 > > IMEI > > varchar(256) > > 3918 > > 国际移动设备身份码 > > 127 > > IMSI > > varchar(256) > > 2 > > 国际移动用户识别码 > > 128 > > UUID > > varchar(256) > > 2 > > iphone的uuid > > 129 > > USER_ID > > integer > > 1473 > > 创建用户编码 > > 130 > > USER_NAME > > varchar(256) > > 1667 > > 创建用户名称 > > 131 > > DATA_IDN > > char(256) > > 2 > > 数据标示 C-渠道,D-直销 > > 132 > > SOURCE_TYPE > > varchar(256) > > 3 > > 源系统 > > 133 > > LST_UP_TIME > > timestamp > > 1 > > 上一次更新日期 > > 134 > > DATA_DATE > > date > > 1 > > 数据日期 > > > > 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_intermediate_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_cd1448 > > 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 > 的时候当这个 度量列聚合量很大的时候就超出这个字段类型长度。任务就会失败。 > > > > 谢谢 > > >
