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

Reply via email to