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_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